Re: Dracut module initqueue/finished problem (called after returning 0)

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

 



Progressing in diagnostic, still need more help.
A temporary script named devexists-\x2fdev\x2fdisk\x2fby-label\x2froot.sh has been created in /lib/dracut/hook/initqueue/finished by rootfs-generator.sh.
It tests the existence of /dev/disk/by-label/root (normal behavior)

PROBLEM: /dev/disk/by-label doesn't exists (thus the script always return 1, thus the finish hook loops forever)

blkid lists all partitions including the LABEL=root one (after reporting an error on fd0)
/dev/sda4: LABEL="root" UUID="xydfkjhzkfghzv" TYPE="xfs" PARTLABEL="primary" PARTUUID="ssdfighuskdjfhb"

I can mount LABEL=root /sysroot with success.

In the dmesg I have blk_update_request: I/O error, dev fd0, sector 0

I tried udevadm trigger, but this didn't help. /dev/disk/by-label still missing...

(I'm using CentOS-7, kernel 3.10.0-957.1.3.el7.x86_64)

Am I facing a kernel bug or is there something I'm doing wrong? (I'm creating the partition table and I format them in the initqueue). Is there something I need to do to inform the kernel that it has to update /dev/disk ?

Many thanks for any tips.

Cheers,

Olivier.

Le 04/02/2019 10:40, « initramfs-owner@xxxxxxxxxxxxxxx au nom de LAHAYE Olivier » <initramfs-owner@xxxxxxxxxxxxxxx au nom de olivier.lahaye@xxxxxx> a écrit :

    Hi,
     
    I’m writing a module that requires initqueue/finished test, so I’ve added a script that exits 1 while main initqueue scripts are doing the job and that exits 0 when done (I’ve also tried return instead of exit).
     
    Sometime it works perfectly, and sometimes initqueue/finished/myscript is called indefinitely even if I return/exit 0
     
    What could be the reason for Dracut to loop/ignore the /lib/dracut/initqueue/finished/my_script exit code?!?!
     
    I’ve tried to remove myself at second run doing rm -f $f and then the system hangs…
     
    Wired. I must admit I’m lost. I’ve looked at /sbin/dracut-initqueue (started by systemd) and I don’t understand how this can happen. It looks like systemd somehow restarts dracut-initqueue. Is that possible? What could trigger that?
     
    Any idea on how I could track down the problem (rd.debug is way too much verbose)
     
    Module code is visible here: https://github.com/finley/SystemImager/tree/initrd-from-imageserver-and-dont-package-initrd/lib/dracut/modules.d/51systemimager
     
    Finished script is the following one:
    https://github.com/finley/SystemImager/blob/initrd-from-imageserver-and-dont-package-initrd/lib/dracut/modules.d/51systemimager/systemimager-wait-imaging.sh
     
    Note: I’m using bash in initrd (not dash)
     
    Any hint wpould be greatly appreciated.
    
    -- 
    Olivier LAHAYE
    CID & ASSI - DRT Saclay
     
    
    





[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux