Re: [PROVENANCE INTERNET] Re: Dracut module initqueue/finished problem (called after returning 0)

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

 



More details:

Doing /sbin/blkid -o udev -p /dev/sda4
ID_FS_LABEL=root
ID_FS_LABEL_ENC=root
IF_FS_UUID=sekjhfbkejh
...
...
ID_PART_ENTRY_SCHEME=gpt
...

So apparently, blkid gives the correct informations to udev.



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

    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