From: Hannes Reinecke <hare-l3A5Bk7waGM@public.gmane.org>
To: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: initramfs <initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: check_finished() syntax weirdness
Date: Tue, 20 May 2014 11:18:48 +0200 [thread overview]
Message-ID: <537B1DF8.9010207@suse.de> (raw)
In-Reply-To: <537B1677.9050402-l3A5Bk7waGM@public.gmane.org>
On 05/20/2014 10:46 AM, Hannes Reinecke wrote:
> On 05/13/2014 04:32 PM, Harald Hoyer wrote:
>> On 13.05.2014 16:21, Hannes Reinecke wrote:
>>> On 05/13/2014 02:10 PM, Harald Hoyer wrote:
>>>> On 13.05.2014 12:42, Hannes Reinecke wrote:
>>>>> On 05/13/2014 12:39 PM, Harald Hoyer wrote:
>>>>>>
>>>>>> for systemd:
>>>>>> modules.d/98systemd/rootfs-generator.sh:
>>>>>> [ "${root%%:*}" = "block" ] && generator_wait_for_dev
>>>>>> "${root#block:}"
>>>>>>
>>>>>> for non-systemd:
>>>>>> modules.d/95rootfs-block/parse-block.sh:
>>>>>> [ "${root%%:*}" = "block" ] && wait_for_dev "${root#block:}"
>>>>>>
>>>>>>
>>>>>> What is your kernel command line?
>>>>>>
>>>>> BOOT_IMAGE=/boot/vmlinuz-3.12.18-4-default \
>>>>> root=UUID=7b90aa11-62ba-4260-81c6-bcf43914e97e \
>>>>> console=tty0 console=ttyS1,57600 sysrq_always_enabled \
>>>>> panic=100 ignore_loglevel unknown_nmi_panic \
>>>>> resume=/dev/disk/by-uuid/7be10c24-f0fe-4ecd-b04f-c307b0370c48 \
>>>>> splash=silent quiet showopts crashkernel=166M-:83M \
>>>>> rd.break=pre-mount
>>>>>
>>>>> (The pre-mount thingie is inserted by me so that I have a
>>>>> chance to debug & fix
>>>>> things)
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Hannes
>>>>
>>>> do a rd.break=initqueue and look in the
>>>> /lib/dracut/hooks/initqueue/finished
>>>> directory.
>>>>
>>>> If you use systemd in the initramfs, you should have:
>>>>
>>>> /usr/lib/systemd/system-generators/dracut-rootfs-generator
>>>>
>>>> in the initramfs, which transforms root=UUID=... into the
>>>> finished hook.
>>>>
>>>> You should be able to test it in the dracut shell with:
>>>>
>>>> # bash -x
>>>> /usr/lib/systemd/system-generators/dracut-rootfs-generator
>>>
>>> Which seems to be the problem; the generator is present, but
>>> apparently not
>>> called.
>>> Once I execute the above line the 'finished' entry for the root
>>> fs is there.
>>> From which I surmise that the generator hasn't been called.
>>>
>>> Hmm.
>>>
>>
>> Does it have the executable bits set?
>
> Argl. Totally stupid.
>
> Look at modules.d/99base/module_setup.sh:
>
> ## save host_devs which we need bring up
> if [[ $hostonly_cmdline == "yes" ]]; then
> if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || !
> dracut_module_included "systemd"; then
> (
> if dracut_module_included "systemd"; then
> DRACUT_SYSTEMD=1
> fi
> PREFIX="$initdir"
>
> . "$moddir/dracut-lib.sh"
>
> for _dev in ${host_devs[@]}; do
> [[ "$_dev" == "$root_dev" ]] && continue
> _pdev=$(get_persistent_dev $_dev)
>
> case "$_pdev" in
> /dev/?*) wait_for_dev $_pdev;;
> *) ;;
> esac
> done
> )
> fi
> fi
>
> So if /etc/fstab contains just the root device (or if the swap
> device resides on a different device which is initialized earlier)
> the initqueue will _never_ run, and the worker scripts will never
> be executed.
> Once I remove the '[[ "$_dev" == "$root_dev" ]] && continue'
> line the system boots.
>
Which is actually wrong.
However, the _real_ issue is even more stupid.
At one point systemd switched over to /usr/lib instead of /lib,
and all scripts got moved to the new location.
Well, nearly all:
diff --git a/modules.d/98systemd/module-setup.sh
b/modules.d/98systemd/module-setup.sh
index e14ce39..4516b9a 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -192,7 +192,7 @@ install() {
inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
- inst_script "$moddir/rootfs-generator.sh"
/lib/systemd/system-generators/dracut-rootfs-generator
+ inst_script "$moddir/rootfs-generator.sh"
$systemdutildir/system-generators/dracut-rootfs-generator
inst_binary true
ln_r $(type -P true) "/usr/bin/loginctl"
and surprisingly the system boots.
I'll be sending a proper patch.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare-l3A5Bk7waGM@public.gmane.org +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
prev parent reply other threads:[~2014-05-20 9:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-13 9:44 check_finished() syntax weirdness Hannes Reinecke
[not found] ` <5371E992.1080802-l3A5Bk7waGM@public.gmane.org>
2014-05-13 9:48 ` Harald Hoyer
[not found] ` <5371EA56.3000203-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-05-13 9:55 ` Hannes Reinecke
[not found] ` <5371EC2E.4020209-l3A5Bk7waGM@public.gmane.org>
2014-05-13 10:22 ` Harald Hoyer
[not found] ` <5371F250.9040708-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-05-13 10:30 ` Hannes Reinecke
[not found] ` <5371F448.5030208-l3A5Bk7waGM@public.gmane.org>
2014-05-13 10:39 ` Harald Hoyer
[not found] ` <5371F645.3080309-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-05-13 10:42 ` Hannes Reinecke
[not found] ` <5371F729.2000100-l3A5Bk7waGM@public.gmane.org>
2014-05-13 12:10 ` Harald Hoyer
[not found] ` <53720BCF.5080806-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-05-13 14:21 ` Hannes Reinecke
[not found] ` <53722A84.7080205-l3A5Bk7waGM@public.gmane.org>
2014-05-13 14:32 ` Harald Hoyer
[not found] ` <53722CFC.6060500-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-05-20 8:46 ` Hannes Reinecke
[not found] ` <537B1677.9050402-l3A5Bk7waGM@public.gmane.org>
2014-05-20 9:18 ` Hannes Reinecke [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=537B1DF8.9010207@suse.de \
--to=hare-l3a5bk7wagm@public.gmane.org \
--cc=harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox