[Eisfair] dracut / lvm/2

D. Oezbilen oezbilen at gmx.net
Di Jun 28 00:58:57 CEST 2022


Hallo @all,

damit nicht jemand das Rad neu erfindet, will ich hier Loesungen fuer 
die Eis-Plattform beschreiben, sofern man mit lvm hantiert.

In

	/etc/init.d/udevin

gibt es folgende Zeilen, die abgeschaltet waren:

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

Diese Zeilen ermoeglichen, dass man ein /home auf LVM per /etc/fstab 
einbinden kann.

Es ist mir auch gelungen mit dem Kernel-Parameter

	rng_core.default_quality=1000
	(oder < 1000)

auch aus der initrd ein vgchange -ay abzusetzen, was auch positiv 
quittiert wird. Einzig, der Parameter hat Einfluss (nur beim Boot?) auf 
den RNG. Ich kann das hier nicht bewerten, eher denke ich, dass es 
*nicht* OK ist. Denn solange urandom nicht initialisiert ist, wird der 
Befehl nicht ausgefuehrt.

Muesste es selbst mit diesen Ergebnissen angehen, ob dann auch ein /root 
aus LVM gestartet wird, dann auch nur mit grub.

Die initrd habe ich folgendermassen modifiziert:

...
# pre-mount happens before we try to mount the root filesystem,
# and happens once.
make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab'
getarg 'rd.break=pre-mount' -d 'rdbreak=pre-mount' && emergency_shell -n 
pre-mount "Break pre-mount"
source_hook pre-mount

echo "--------------------------!!!!!!!!!!!!!!!!!!"
/usr/sbin/vgchange -ay
echo "!!!!!!!!!!!!!!!!!!--------------------------"
...

Beim boot konnte ich dies abgreifen, funkt also:

--------------------------!!!!!!!!!!!!!!!!!!
random: vgchange: uninitialized urandom read (4 bytes read)
   WARNING: locking_type (4) is deprecated, using --sysinit --readonly.
   Allowing activation with --readorandom: vgchange: uninitialized 
urandom read (2 bytes read)
nly --sysinit.
   5 logical volume(s) in volume group "lvm0" now active
!!!!!!!!!!!!!!!!!!--------------------------

   5 logical volume(s) in volume group "lvm0" now active
sind also aus der initrd aktiviert. gut.

Was eigenartig ist, dass der Lauf

       dracut --force --modules lvm --lvmvonf
zu einer dysfunktionalen initrd (mit 1/2 der Groesse einer initrd) 
fuehrt, jedoch im Gegensatz zur funktional den Parameter

	    rootdelay=5

wie hier unten aufgefuehrt respektiert. Aber nicht die alte, funktionale 
initrd respektiert den P. nicht. Ahhhh.

> #--- das ist aus der cmd uebernommen (die 5s), sprich die richtige 
> (neue) initrd wird geladen.
> Waiting 5 sec before mounting root device...

Sprich, weill -wie hier im Thread dargestellt- die Aktivierung der LVMs 
paar Sekunden braucht, waere dieser Stop/die Pause notwendig, wenn auch 
/root aus der LVM gestartet wird, wenn sie - ohne Pause (zu spaet 
aktiviert) - je gefunden wird.

Es bleiben trotz paar Fortschritte Fragen, dass dracut kaputte initrd 
baut(?), die faktisch nicht booten, auch warum die alte initrd dass 
rootdelay nicht annimmt, aber dafuer die dysfunktionale, neue 
dracut-initrd. Ebenso der Kernelparameter mit Einfluss auf RNG ist 
fraglich, evtl. gar stuemperhaft. :-( :-/
Ein gutes Gefuehl stellt sich nicht ein. :-( :-( :-(

Insgesamt fehlt mir hier ein Skript (oder es existiert, heisst 
anders(?)), wie man es auf deb-linux kennt: update-initramfs.
Zudem da das Problem der lvm-Aktivierung aus der initrd *nicht* gegeben 
ist, einzig rootdelay=5 ist ein Muss, sonst klappt es auch da nicht (man 
landet dann auf der shell).

Danke vorab fuer sachdienliche Hinweise auf die oben gestellten Fragen, pls.

Gruss
Derya


Mehr Informationen über die Mailingliste Eisfair