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: