[Eisfair] dracut / lvm/2

D. Oezbilen oezbilen at gmx.net
Do Jun 30 00:22:05 CEST 2022


Hallo Holger,

> mkinitrd erzeugt dir dann eine neue initrd, dass steht auch in der Doku.
OK, das passt jetzt besser, die Groesse ist aehnlich.

but, does not function, why?

Ich habe den udev Eintrag wieder _AB_geschaltet, denn, wenn ich eis auf 
LVM (nicht nur home) booten will, muesste die Aktivierung der LVMs 
direkt aus der initrd erfolgen.
Das funktioniert leider nicht.

Unter

	/etc/dracut.conf.d

sind

-rwxr-xr-x 1 root root  487 Jan 23 00:06 parse-lvm.sh
-rwxr-xr-x 1 root root 5421 Jan 23 00:06 module-setup.sh
-rwxr-xr-x 1 root root 3688 Jan 23 00:06 lvm_scan.sh
-rw-r--r-- 1 root root  775 Jan 23 00:06 64-lvm.rules
-rw-r--r-- 1 root root  154 May 17 18:27 02-dracut-lvm.conf

auch, wenn es conf heisst, habe ich alles, was ich unter

	/usr/lib/dracut/modules.d/90lvm

fand kopiert. Sure, error a. trial.
	Die initrd hat einen aktuellen Zeitstempel und ist so aehnlich gross 
wie die alte initrd. Ein Reboot fuehrt jetzt nicht dazu, dass diese 
initrd alle LVMs aus der initrd aktiviert.

...
random: fast init done
urandom_read: 4 callbacks suppressed
random: lvm: uninitialized urandom read (4 bytes read)
...

Wie vorher, da RND nicht initialisiert ist, kann lvm nichts biegen, 
keine Aktivierung, d.h. der Zustand ist nicht verbessert, veraendert.

OHne den Parameter

	rng_core.default_quality=1000

mitzugeben - also  keine Wuergarounds - erwartete ich, dass alles OK 
sein sollte, alle LVMs schon aktiv.

GAR fuehrt das nicht mal zu einer Zwangspause, die ich mit rootdelay dem 
Kernel mitgebe. Aber ... die /dev/ttySx Umleitung ist aktiv, nicht 
rootdelay.
Gegenprobe: Parameter der Ausgabenumleitung (console=ttyS0,115200n8) 
rausgenommen, seriell ist jetzt alles still. Sprich die Parameter werden 
angezogen, aber nicht root-delay. :-(

Das hier gebe ich allen Kerneln mit:

         linux   /kernel-XYZ root=UUID=[UUID] \
          ro  console=tty0  consoleblank=0 rootdelay=5 \
           intel_iommu=on,relax_rmrr iommu=pt 
vfio_iommu_type1.allow_unsafe_interrupts=1


Die Parameter sind, wie ersichtlich um devs durchzureichen und mit einem 
Patch (fuer HP-Server mit doofem Bios :-/), aber auch das rootdelay=5 
Sekunden, denn, wie ich vorher erwaehnte, alle debs 
(LDME4/UbuntsSrv/deb10/deb11) laufen gegen die Wand, wenn sie selbst auf 
LVM sind, aber dieses rootdelay *nicht* inkludiert ist. Dies gesagt, 
belegt auch, dass diese Kernelparametrisierung auf den o.a. BSs funkt, 
weil damit auch eine PCIe SAT Karte einwandfrei in der KVM Umgebung 
ansprechbar ist.

BTW: die Patches sind fuer Kernel 5.x, das tut hier aber nix, weil ich 
ohne Umleitung und auch ohne die anderen Paramter gebootet habe.

Sprich, das ist meine Referenz, die ich mehrmals auf verschiedenen BSs 
funktional einsetze(n)/kann.

BTW: Wie Uwe bin ich bei der Portierung eisx64 von einer defekten HD auf 
eine andere gegen die Wand gelaufen, dass (egal/was/wie) das extlinux 
die HD nicht bootbar machen konnte, gptmbr draufgespielt, mehr geht auch 
nicht.
	Deswegen boote ich (in Kombination mit den anderen BSs) eisx64 aus 
grub/2, was ich auf eisx64 kompiliert und installiert habe.
Soviel zur Umgebung.

Ergebnis: Sprich, ohne den udev Eingriff

       # If any LVM based partitions are on the system, ensure they
       # are activated so they can be used.
#################
#      if [ -x /sbin/vgchange ]
#      then
#          /sbin/vgchange -a y
#          #>/dev/null
#      fi
#      evaluate_retval


kann man  -konnte ich - mit dracut/neuer initrd aus der initrd kein LVM 
aktivieren, nicht mal das /home, geschweige dass ich so /root aus LVM 
booten koennte. F ...


> was landet denn alles in der initrd?

	/usr/bin/mkinitrd -f -v

fuehrt zu:


Creating: /boot/initrd-4.9.261-eisfair-64-VIRT.gz|4.9.261-eisfair-64-VIRT
dracut: Executing: /usr/bin/dracut --force --verbose 
/boot/initrd-4.9.261-eisfair-64-VIRT.gz 4.9.261-eisfair-64-VIRT
dracut: *** Including module: dash ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: lvm ***
dracut: Skipping program /usr/bin/systemd-run using in udev rule 
69-dm-lvm-metad.rules as it cannot be found
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 56-lvm.rules
dracut: Skipping udev rule: 60-persistent-storage-lvm.rules
dracut: *** Including module: eisfair-modules ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: Skipping udev rule: 70-persistent-net.rules
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing GenuineIntel.bin ***
dracut: *** Store current command line parameters ***
dracut: Stored kernel commandline:
dracut:  root=UUID=[UUID] rootfstype=ext4 
rootflags=rw,relatime,errors=remount-ro,data=ordered
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file 
'/boot/initrd-4.9.261-eisfair-64-VIRT.gz' ***
dracut: Image: /var/tmp/dracut.iQaWIM/initramfs.img: 8.7M
dracut: 
========================================================================
dracut: Early CPIO image
dracut: 
========================================================================
dracut: drwxr-xr-x   3 root     root            0 Jun 29 23:38 .
dracut: -rw-r--r--   1 root     root            2 Jun 29 23:38 early_cpio
dracut: drwxr-xr-x   3 root     root            0 Jun 29 23:38 kernel
dracut: drwxr-xr-x   3 root     root            0 Jun 29 23:38 kernel/x86
dracut: drwxr-xr-x   2 root     root            0 Jun 29 23:38 
kernel/x86/microcode
dracut: -rw-r--r--   1 root     root        14336 Jun 29 23:38 
kernel/x86/microcode/GenuineIntel.bin
dracut: 
========================================================================
dracut: Version: dracut-055
dracut:
dracut: Arguments:  --force --verbose
dracut:
dracut: dracut modules:
dracut: dash
dracut: dm
dracut: kernel-modules
dracut: lvm
dracut: eisfair-modules
dracut: rootfs-block
dracut: udev-rules
dracut: base
dracut: fs-lib
dracut: 
========================================================================
dracut: drwxr-xr-x  16 root     root            0 Jun 29 23:38 .
dracut: crw-r--r--   1 root     root       5,   1 Jun 29 23:38 dev/console
dracut: crw-r--r--   1 root     root       1,  11 Jun 29 23:38 dev/kmsg
dracut: crw-r--r--   1 root     root       1,   3 Jun 29 23:38 dev/null
dracut: crw-r--r--   1 root     root       1,   8 Jun 29 23:38 dev/random
dracut: crw-r--r--   1 root     root       1,   9 Jun 29 23:38 dev/urandom
...

Eben die Fileliste, was gepackt, verpackt wurde.

Ich weiss jetzt hier nicht so richtig weiter, was ich noch tun koennte, 
dass ich aus der Initrd (nicht ueber udev) die LVMs aktivieren kann. Wie 
ich vorher geschrieben habe, mein Wueraround mit 
rng_core.default_quality=1000   schafft das(?).
Doch ich erwartete, dass dracut das init so erweitert, dass es in 
Abhaegigkeit v. gefundenen LVMs diese auch sogleich aktiviert werden.

Hast Du jetzt noch eine Idee?

Gruss
Derya


Mehr Informationen über die Mailingliste Eisfair