[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