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

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

 



Hi Andrei,

Udevd is running.
The problem is that disk has no partitions before initqueue/online starts and has a full OS installed when initqueue/finished is called.
The partitions in /dev are correctly created when initialized and installed by me.(systemimager)
The /dev/disk/by-uuid and /dev/disk/by-path are correctly created but /dev/disk/by-label isn't.
The udev rule 60-persistent-storage.rules to create this entry exists and seems correct.
Blkid sees the label
I tried udevadm control restart
I tried systemctl daemon-reload
But none did trigger the rule. It behave just like udev is not aware of the partition label.
If I reboot with the same partitions, udev sees the label and the entry is correctly created.
So it's a matter of informing kernel? Udev? System? That /dev/sda4 has a label.
Mount LABEL=root /sysroot works fine
(/dracut-state.sh is up to date and /etc/cmdline.d/root contains block:LABEL=root so getarg root= returns block:LABEL=root (and this works fine)

Udev sees every partition I create as it creates the device entries, but it seems, unaware of a label set with mkfs -t xfs -L root /dev/sda4
Udevadm trigger hangs (is it normal behavior in emergency shell? Some lock?)

If I mount /sysroot and if I remove the initqueue/finished script, the system loads normally (when I quit rd.break shell) and the links are created in /dev/disk.
So I'm sure that a solution exists to inform udev/systemd/... that a new label is set on /dev/sda4.

Olivier.

Le 04/02/2019 19:02, « Andrei Borzenkov » <arvidjaar@xxxxxxxxx> a écrit :

    04.02.2019 19:15, LAHAYE Olivier пишет:
    > 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...
    > 
    
    Is udevd running? Do you have any other link for other devices? Do you
    have udev rules in initrd?
    
    > (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 ?
    > 
    





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

  Powered by Linux