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

Re: Reiser4: Format 4.0.1: Meta(data) checksums



On 2015-09-20 at 06:48 -0700, Jose R R wrote:
> On Thu, Sep 17, 2015 at 8:56 AM, Ivan Shapovalov <
> intelfx100@gmail.com> wrote:
> > On 2015-09-17 at 05:10 -0700, Jose R R wrote:
> > > On Sun, Sep 13, 2015 at 6:06 AM, Ivan Shapovalov <
> > > intelfx100@gmail.com> wrote:
> > > > On 2015-09-13 at 05:57 -0700, Jose R R wrote:
> > > > > [...]
> > > > > 
> > > > > Accordingly, seems the *lack of systemd* is enough for a
> > > > > Debian
> > > > > Sid
> > > > > instance to create a bad initrd.img. I have no idea if issue
> > > > > only
> > > > > appears with Reiser4 root fs or if it includes other file
> > > > > systems
> > > > > as
> > > > > root. Work in progress...
> > > > 
> > > > It's presence/absence of crc32c module that matters. Reiser4
> > > > does
> > > > not
> > > > specify that it needs one.
> > > > 
> > > Applied your 3 patches
> > > 1/3 < http://marc.info/?l=reiserfs-devel&m=144218573602435&w=2 >
> > > 2/3 < http://marc.info/?l=reiserfs-devel&m=144218573602436&w=2 >
> > > 3/3 < http://marc.info/?l=reiserfs-devel&m=144218573702437&w=2 >
> > > 
> > > into kernel.org Linux Kernel 4.1.7, but Non-systemd Debian still
> > > boots
> > > into an emergency shell
> > > [...]
> > > mount: mounting /dev/sdaX on /root failed: no such file or
> > > directory
> > > Target fileystem doesn't have requested /sbin/init
> > > mount: mounting /dev on /root/dev failed: no such file or
> > > directory
> > > No init found. Try passing init= bootarg.
> > > [...]
> > 
> > Correct; it's now a "cleanly" reported error instead of an oops.
> > You will have to manually add crc32c or crc32c_intel module to the
> > initramfs, though. I could not find a way to express an explicit
> > intermodule dependency in the code (to make module reiser4 depend
> > on
> > module crc32c).
> > 
> > Edward's patch selects module crc32c when reiser4 is selected in
> > the
> > build config, but it does not make sure that crc32c will end up in
> > the
> > initramfs if reiser4 is there (that is, modules.dep will not be
> > altered). I'm still wondering how to do that properly.
> > 
> I applied Ed's patch, as well
> < http://marc.info/?l=reiserfs-devel&m=144250028326153&w=2 >
> but the non-systemd Debian instance continued to generate a bad
> initrd.img-.
> 
> Notwithstanding, based on your suggestions, Ivan, the solution that
> works for non-systemd system is to include module directive
> crc32c_intel right *before* module reiser4 directive in debian's
> /etc/initramfs-tools/modules file, thus:
> [...]
> crc32c_intel
> reiser4
> [...]

Good. So, it's indeed lack of hard dependency between reiser4 and
crc32c that caused this error. There are softdeps, as Ben advised, but
indeed they are not taken into account by common initramfs building
tools.

I guess that this fact needs to be added to READMEs: one has to add
crc32c to their initramfs manually if one uses reiser4 on their root
partition and it is built as a module.

BTW, how is this solved in other filesystems which need some crypto or
checksum algorithms for their operation? Say, ext4?

-- 
Ivan Shapovalov / intelfx /

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: