[Eisfair] eisfair-1 Xen DomU Kernelupdate

Helmut Backhaus helmut.backhaus at gmx.de
Mi Jan 27 23:16:25 CET 2016


Hallo Alex!

Am 25.01.2016 um 21:24 schrieb Alexander Dahl:
> Hallo Helmut,
>
> Helmut Backhaus schrieb Montag, 25. Januar 2016, 18:52 (CET):
>>> Ich bin jetzt grob wie folgt vorgegangen: ein neues eisfair in einer
>>> neuen virtuellen Maschine (KVM) auf meinem Desktop installiert, Updates
>>> bis zur aktuellen base und aktuellem eiskernel-virt (testing).
>>
>> Die Beschreibung ist aber *sehr* grob. ;-)
>> Ansonsten habe ich es genauso gemacht nur eben in einer Vbox.
>
> Naja was soll ich an der Stelle groß beschreiben? Ganz normale
> eisfair-Installation und bei KVM geht eh nur Vollvirtualisierung.

Das war ja auch nicht sooo ernst gemeint!

>
>>> In der Xen DomU den Inhalt von /boot der KVM-VM kopiert, ebenso die
>>> relevanten Sachen unterhalb von /lib/modules. Dann hab ich mir auf der
>>> Xen DomU nochmal den tarball vom eiskernel Paket angeschaut und die
>>> Sachen von unterhalb /var/install kopiert.
>>
>> Das ist mir nicht klar, dass kann doch nicht alles sein, oder?
>
> Mehr war es nicht. Kernel-Image und das initrd oder initramfs o.ä.
> liegen in /boot und die Module unterhalb von /lib/modules.
> Bootloaderkram brauch ich nicht bzw. sind schon auf dem Zielsystem
> gewesen.
>
>> Es muss doch auch / irgend wo herkommen oder?
>
> Die Ziel-VM lief ja schon, war wie gesagt noch aus eisxen Zeiten.

OK, das hatte ich übersehen, dann ist das klar!

>
>> Auch ist mir nicht ganz klar, was Du wann gemacht hast. ;-)
>> Ich habe mir "boot" und "/" aus der Vbox heraus kopiert.
>
> / brauchte ich ja nicht kopieren, s.o.
>
>>> Dann /etc/fstab und /etc/inittab geändert auf /dev/xvda[123], ebenso die
>>> /etc/lilo.conf.
>>
>> Da habe ich noch das eine oder andere Verständnis Problem, aber ich
>> werde meine Einrichtung unten drunter Zeigen.
>> Auch muss da ja noch ein "lilo" zu irgend einem Zeitpunkt ausgeführt
>> werden oder?
>
> Eigentlich nicht, lilo wird ja überhaupt nicht benutzt. Der einzige
> Grund lilo zufriedenzustellen ist ein späteres Installieren des
> eiskernel-virt Pakets zu ermöglichen, das bei der Installation `lilo -t`
> aufruft und bei einem Fehler abbricht.

Das wäre aber noch mal interessant, ich habe gelesen das pygrub auch 
LILO booten können soll. Das will ich noch mal probieren.

>
>>> Dann hab ich /boot/grub/menu.lst angelegt und so
>>> gefüllt:
>>>
>>>       default 0
>>>       timeout 5
>>>
>>>       title   eisfair-1
>>>       root    (hd0,0)
>>>       kernel  /boot/kernel root=/dev/xvda1 ro
>>>       initrd  /boot/initrd.gz
>>>
>>>       title   eisfair-1 (old)
>>>       root    (hd0,0)
>>>       kernel  /boot/old-kernel root=/dev/xvda1 ro
>>>       initrd  /boot/old-initrd.gz
>>>
>>
>> Das habe ich genauso, ob es richtig war / ist? Ich weiß es nicht...
>
> Wenn es funktioniert, ist es dann richtig? ;-)
>

Ich hab das jetzt zu einer Partition zusammengefasst, jetzt geht es!
Warum habe ich aber noch nicht verstanden, aus meiner Sicht müsste das 
auch mit einer separaten /boot Partition gehen. Aber das werde ich noch 
mal probieren. Ich hatte zu viele mögliche Stellschrauben. Jetzt weiß 
ich wenigstens, was zwingend erforderlich ist.

>>> Xen DomU runtergefahren und im host die config angepasst, sieht jetzt so
>>> aus:
>>>
>>>       bootloader = '/usr/lib/xen-4.4/bin/pygrub'
>>>       memory  = 256
>>>       vcpus   = 1
>>>       root    = '/dev/xvda1 ro'
>>>       boot    = 'c'
>>>       extra   = 'ro quiet xencons=tty1 console=hvc0'
>>>       disk    = [
>>>               'format=raw, vdev=xvda1, target=/dev/heaven/methusalix_root',
>>>               'format=raw, vdev=xvda2, target=/dev/heaven/methusalix_swap',
>>>               'format=raw, vdev=xvda3, target=/dev/heaven/methusalix_home',
>>>       ]
>>>       name    = 'methusalix'
>>>       vif  = [ 'mac=00:16:3e:2e:a3:4b, bridge=xenbr0' ]
>>>       on_poweroff = 'destroy'
>>>       on_reboot   = 'restart'
>>>       on_crash    = 'restart'
>>>
>>> DomU neu gestartet, läuft. Ich hätte mit mehr Schwierigkeiten gerechnet.
>>> ;-)
>>
>> Du glücklicher!
>>
>> OK, das Starten mit "pygrub" bekomme ich nicht hin.
>> Hier jetzt mal meine Daten:
>
> Du kannst pygrub auch direkt aufrufen und damit sehen wie weit er kommt.
> Oder Du gibst beim Starten der DomU -c mit, damit Du sofort
> Konsolenausgaben siehst:
>
>      xl create -c /path/to/mydomu.cfg
>

Aber da habe ich nur gesehen, "ich find nix" ;-)

>> Laufwerke -LVM Hostsystem -
>> root at deb-64-fsi:~# lvs | grep testeis1
>>     testeis1-boot      vg0  -wi-ao----  52,00m
>>
>>     testeis1-data      vg0  -wi-ao----   8,00g
>>
>>     testeis1-root      vg0  -wi-ao----   2,00g
>>
>>     testeis1-swap      vg0  -wi-ao---- 128,00m
>>
>> /etc/xen/testeis1.cfg - Hostsystem -
>> root at deb-64-fsi:~# cat /etc/xen/testeis1.cfg
>> name = "testeis1"
>> kernel = "/eis-kern/kernel"
>> ramdisk = "/eis-kern/initrd.gz"
>
> kernel und ramdisk brauchst Du für pygrub nicht, ansonsten musst Du sie
> im Xen Host natürlich irgendwo hin packen, das muss auch nicht direkt in
> / sein.

Das ist klar, aber es war für mich eine Möglichkeit zu booten um etwas 
zu ändern bzw. zu probieren.

>
>> extra = "ro quiet xencons=tty1 console=hvc0"
>> # bootloader = "/usr/lib/xen-4.4/bin/pygrub"
>> # bootargs = '--kernel=/boot/kernel --ramdisk=/boot/initrd.gz'
>> memory = 512
>>
>> boot        = 'c'
>> root = "/dev/xvda3 ro"
>> disk = [
>> 	"phy:/dev/vg0/testeis1-boot,xvda1,w",
>>           "phy:/dev/vg0/testeis1-swap,xvda2,w",
>>           "phy:/dev/vg0/testeis1-root,xvda3,w",
>>           "phy:/dev/vg0/testeis1-data,xvda4,w",
>> 	 ]
>
> Das ist noch die alte Xen Syntax, versuch mal die aktuelle zur
> Definition der disks.

Danke für den Hinweis! Ich werde das mal umbauen, aber es soll (ist) 
auch so noch zulässig (laut Beschreibung)

>
>> /etc/fstab - Gast -
>> /dev/xvda3 / ext4 defaults,errors=remount-ro 0 1
>> /dev/xvda1 /boot ext4 defaults,errors=remount-ro 0 1
>> /dev/xvda2 none swap sw 0 0
>> /dev/xvda4 /data ext4 defaults 0 2
>
> Hmm Du hast /boot extra, bei mir ist das Teil von /, ggf. brauchst Du
> auf Deiner boot-Partition noch einen Symlink namens boot auf sich
> selbst, also geh auf die gemountete boot-Partition und einmal:
>
>      ln -s . boot
>

Hatte ich probiert, brachte aber auch nichts. (viele Stellschrauben)

>> /boot/grub/menu.lst - Gast -
>> testeis1 # cat /boot/grub/menu.lst
>>       default 0
>>       timeout 5
>>
>>       title   eisfair-1
>>       root    (hd0,0)
>>       kernel  /kernel root=/dev/xvda3 rootdelay=10 panic=10 ro
>>       initrd  /initrd.gz
>>
>>       title   eisfair-1 (old)
>>       root    (hd0,0)
>>       kernel  /old-kernel root=/dev/xvda3 rootdelay=10 panic=10 ro
>>       initrd  /old-initrd.gz
>>
>> Wobei ich hier nicht Sicher bin, ob dass so stimmt.
>
> Spontan sieht's nicht schlecht aus.

Dachte ich auch...

>
>> Dann habe ich noch die Netzwerkkarte angepasst.
>> Wie bereits beschrieben lässt sich die DomU mit dem Kernel von außen
>> problemlos Booten mit pygrub aber nicht. Zu Anfang konnte ich die
>> Einträge von Grub auch schon sehen, dass geht nach der vielen Testerei
>> jetzt aber auch nicht mehr. Ich habe das Gefühl, dass ich irgend etwas
>> komplett verdreht habe, aber was?
>
> Immerhin geht's schonmal von außen.

Richtig, und dass hätte mir auch gereicht. So weit war ich noch nie! Nur 
mal mit einer alten DomU aus eisxen, aber da konnte man den Kernel nicht 
updaten. Deshalb ja dieser Aufriss.

>
>> Wenn noch irgend etwas fehlt werde ich es gern nachliefern!!
>
> Spontan bin ich überfragt. Versuch mal die Debug-Möglichkeiten von Xen
> und pygrub besser zu nutzen.
>

Habe ich gemacht, hat aber nicht weiter geholfen. Zumindest mir nicht!

Jetzt werde ich mal gezielt versuchen das auch mit einer separaten Boot 
Partition zum Laufen zu bringen.

Aber danke für Deine Unterstützung!

Wenn ich einen sauberen zum einbringen in XEN Habe werde ich sie auch 
aufschreiben und ein Howto draus machen und veröffentlichen.

Aber ich würde schon gerne eine 1 zu 1 Übernahme aus einer 
Physikalischen Installation in eine DomU beschreiben wollen (haben wollen).

Vielleicht bekomme ich hier ja noch den einen oder anderen Tipp, was ich 
falsch gemacht haben könnte.


-- 
Gruß,
Helmut



Mehr Informationen über die Mailingliste Eisfair