It seem as the checkroot and/or checkfs init scripts fails if the root filesystem is reiser4. Reproducible: Always Steps to Reproduce: 1. Install a normal Gentoo system 2. Use kernel 2.6.5 with the reiser4 patches from namesys.com 3. Convert root filesystem to reiser4 (using backup, format then restore) Actual Results: Crash when the checkroot script runs. Might be related to the fsck utility that does not have any knowledge of reiser4? Expected Results: Normal startup.
What is the error message you are getting? You did emerge reiser4progs, because these have fsck.reiser4 prog that checkroot uses!
Yes, I had reiser4progs with fskck.reiser4 installed before I converted my filesystem. The error was that I got a segmentation fault/crash when the checkroot init script ran and then I got a prompt to login. I could fix this by rebooting with my backup and disable the checkroot script with "rc-update del checkroot". When I rebooted it seemed fine. I looked in the checkroot script and found that fsck was called. When I tried to run it manually it did not recognize my reiser4 partition. Perhaps it was my bad to assume it was a fault in fsck. My knowledge of these init scripts is not very large.
can you run the fsck program normally ? i'd say if it still crashes to report this upstream
I am not sure how things really work. But running "fsck /dev/hdc1" gives: # fsck /dev/hdc1 fsck 1.34 (25-Jul-2003) e2fsck 1.34 (25-Jul-2003) Couldn't find ext2 superblock, trying backup blocks... fsck.ext2: Bad magic number in super-block while trying to open /dev/hdc1 But fsck.reiser4 works. From what I understood the init scripts call fsck and not fsck.reiser4 ?
magic number == unique number for each file system the fact fsck tries to run `fsck.ext2` on the filesystem indicates that it fails to properly detect it as reiserfs4 ... what if you re-emerge e2fsprogs and try again ?
It does not work even if I re-emerge e2fsprogs.
what about `fsck -t reiser4 /dev/hdc1` ?
It does work, howerver I cannot see that the checkroot script does call fsck -t reiser4, but only call fsck -C -T -a I might be wrong of course...
i assume your /etc/fstab has the filesystem type set correctly ?
My appologies. I was testing with a disk that was not in fstab at all. It does work with disks available in fstab. Still does not explain why my checkroot script failed when I had converted my root from reiserfs to reiser4... Perhaps the scripts has been updated since then.
the current fsck code autodetects reiserfs but it doesnt have anything for reiser4 ... i believe if it cant detect from the list it'll use the entry in fstab to determine the appropriate 'fsck.<type>' to run ... otherwise it'll default to ext2 because ... well fsck is part of the e2fsutils package :)