[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SILO bootable cdrom troubles (second run)



Eh, I found the problem(s) :-))

Firstly, I discovered the following message displayed at boot time:

  initrd overwritten (0xf0300000 < 0xf03081a0) - disabling it.

Not very nice, isn't it :-(
It seemed my kernel was too big (1.6MB).

I then removed a few options and rebuilt a smaller kernel.  Now it is 1.4MB
and the message was changed to:

  RAMDISK: Couldn't find valid ramdisk image starting at 0.

I tracked down the problem and found why the ramdisk couldn't be loaded.
It was a big endian problem while attempting to detect the type of the
filesystem which is on the ramdisk.
In fact it is only a 2.0.35 problem.  I checked the 2.1.125 source tree and
found the fix there.

Now I can load an initial ramdisk with SILO :-))

Here is the patch for 2.0 series:

--- kernel-source-2.0.35/drivers/block/rd.c.orig	Tue Jan 19 23:39:58 1999
+++ kernel-source-2.0.35/drivers/block/rd.c	Tue Jan 19 23:40:02 1999
@@ -389,11 +389,11 @@
 	}
 
 	/* Try ext2 */
-	if (ext2sb->s_magic == EXT2_SUPER_MAGIC) {
+	if (ext2sb->s_magic == swab16(EXT2_SUPER_MAGIC)) {
 		printk(KERN_NOTICE
 		       "RAMDISK: Ext2 filesystem found at block %d\n",
 		       start_block);
-		nblocks = ext2sb->s_blocks_count;
+		nblocks = swab32(ext2sb->s_blocks_count);
 		goto done;
 	}
 	printk(KERN_NOTICE


I ran these tests with the SILO boot loader from my hard disk.  My next
attempt will be to burn a new CDROM to check whether it still works here...

Regards.

-- 
 Eric Delaunay                 | "La guerre justifie l'existence des militaires.
 delaunay@lix.polytechnique.fr | En les supprimant." Henri Jeanson (1900-1970)


Reply to: