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

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



On Thu, 2015-09-17 at 18:56 +0300, Ivan Shapovalov 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:
> > > > Here is some additional info:
> > > > 
> > > > A while back, I installed Debian Jessie AMD64 into a KVM virtual
> > > > machine and also included the initial non-systemd boot argument:
> > > > preseed/late_command="in-target apt-get install -y sysvinit-core"
> > > > < https://wiki.debian.org/systemd#Installing_without_systemd >
> > > > 
> > > > Afterwards a previous reiser4-patched Linux kernel 4.0.x was
> > > > installed
> > > > into the virtual machine and its root fs was subsequently
> > > > formatted
> > > > to
> > > > reiser4.. The virtual machine was working fine:
> > > > < https://pbs.twimg.com/media/CKIKgoZUAAIFx12.png:large >
> > > > 
> > > > Yesterday, I installed into the vm a newer 4.1.6 kernel built
> > > > "the
> > > > debian way" except that it was customized with the newer 4.0.1
> > > > Reiser4
> > > > patch. Upon rebooting the VM, I captured a sequence of 4
> > > > snapshots
> > > > (by
> > > > paging down) that basically recreate the fail that I experienced
> > > > priorly in the physical machine:
> > > > 
> > > > < https://metztli.it/blog/index.php/ixiptli/non-systemd-debian-si
> > > > d-re
> > > > iser4 >
> > > > 
> > > > 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.

In initramfs-tools, hook-functions has some code to handle these hidden
dependencies.  But it doesn't make a lot of sense to embed this
information there rather than in the modules themselves.

The proper way to put extra dependencies in modules is:

/* Soft module dependencies. See man modprobe.d for details.
 * Example: MODULE_SOFTDEP("pre: module-foo module-bar post: module-baz")
 */
#define MODULE_SOFTDEP(_softdep) MODULE_INFO(softdep, _softdep)

However initramfs-tools still needs to be fixed to follow these
dependencies.

Ben.

-- 
Ben Hutchings
When in doubt, use brute force. - Ken Thompson

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


Reply to: