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

cramfs initrd corruption ?



I'm building kernels from SGI CVS (to get latest XFS code),
and making initrd images (using initrd-tools and make-kpkg --initrd).
I can't get the cramfs root to mount correctly.

1/ there is (IMHO) a serious bug in drivers/block/rd.c, in function
identify_ramdisk_image : it will refuse to use anything other than
a minix, ext2, romfs, or gzipped ramdisk. I had to gzip my cramfs
ramdisk to be able to mount it.

2/ there is this weird bug regarding ramdisk_blocksize. I managed
to work around it by playing with ramdisk_blocksize in my bootloader.

3/ now the real fun : my kernel messages look like
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 3416k freed
VFS: Mounted root (cramfs filesystem).
VFS: Mounted root (ext2 filesystem) readonly).
change_root: old root has d_count=2
Freeing unused kernel memory [etc.]

(I compiled in ext2+scsi support in order to boot anyway and investigate
further the problem).

my cramfs initrd looks correct (when I mount it thru a loop device,
it holds a linuxrc and a reasonable tree of files), but once my system
has booted, if I inspect /initrd, it holds only one file with a really
strange name (special characters all around the place!), and if I compare
/dev/ram0 with uncompressed initrd, well, they are not the same.

FYI, I'm using kernel 2.4.7-pre3-xfs, and had the same problem with all
versions from last week (I started playing with initrd around 2.4.6-pre-
something-xfs).

thanks by advance,

Jerome Petazzoni <skaya@enix.org>



Reply to: