[pkg-cryptsetup-devel] Bug#507721: cryptsetup: Sometimes initrd ends up missing conf/conf.d/cryptroot file in it
Christian Jaeger
christian at jaeger.mine.nu
Thu Dec 11 11:25:30 UTC 2008
Christian Jaeger wrote:
> Yves-Alexis Perez wrote:
>
>> On jeu, 2008-12-11 at 01:37 +0100, Christian Jaeger wrote:
>>
>>
>>> Ok, so I've taken a stab at debugging this thing and got it to work;
>>> see
>>> the attached patches; some of them also contain changes which I needed
>>> to be able to run the script with set -eu. I think it would make sense
>>> to apply these, too, so I'm attaching them as well. I'm not squashing
>>> together the patches 1 and 5, and patches 6 and 8, since I think it
>>> may show the difficulties more clear.
>>>
>>>
>> I don't know initramfs really well so I won't comment all the patches,
>> but, basically what you are saying is that the problem lies in the
>> dm-mod.ko naming. Sometimes it's dm-mod.ko and sometimes dm_mod.ko and
>> that it breaks the search?
>>
>
> No, that was just a followup problem.
To reinforce that the "-" vs "_" naming is not *generally* the culprit,
here is what it looks in my kernels:
chris at novo:/lib/modules$ find -name "dm?mod*"|xargs ls -lrt
-rw-r--r-- 1 root root 97260 2008-04-27 22:18 ./2.6.22.19/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 97686 2008-06-11 10:37 ./2.6.25.6/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 97686 2008-06-22 18:56 ./2.6.25.8/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 98216 2008-07-03 22:17 ./2.6.25.10/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-07-19 20:31 ./2.6.26/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-09-11 23:03 ./2.6.26.3/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-09-12 00:23 ./2.6.26.5/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 95154 2008-10-16 16:46 ./2.6.27.1/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-10-30 13:33 ./2.6.26.7.1_ramsch/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-10-30 14:04 ./2.6.26.6/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 94554 2008-11-08 11:48 ./2.6.26.7/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 95202 2008-11-08 13:12 ./2.6.27.5/kernel/drivers/md/dm-mod.ko
-rw-r--r-- 1 root root 95202 2008-12-03 20:40 ./2.6.27.7/kernel/drivers/md/dm-mod.ko
So, it was consistently dash.
So, why was it not failing before I introduced the recursive crypto search?
manual_add_modules seems to be using modprobe to resolve the name first,
before using find on the resolved name (and it's dependencies). This
would explain why underscores are not a problem.
Whereas add_crypto_modules is calling find directly. Why was this not a
problem until now? Maybe crypto modules didn't have underscores? Note
that apart from the tr _ - thingie, I had to add the kernel/drivers/
path. So, the recursive code should probably be calling
manual_add_modules for the dm_mod case; I may ask, why does
add_crypto_modules exist at all and not manual_add_modules is being
called consistently? It looks like the recursive crypto search code
would otherwise have to differentiate between crypto and non crypto
modules, which would seem to be weird; also I wonder if since
add_crypto_modules does not check for dependencies, it is waiting for
another bug turning up in the future anyway (i.e. if a crypto module
happens to get a dependency in the future, which will then, as it seems,
not be added).
Christian.
More information about the pkg-cryptsetup-devel
mailing list