[Eisfair] syslinux ... habs jetzt auch kapiert ;-)

Uwe Kunze u.kunze.sdh at t-online.de
Sa Jul 2 22:26:57 CEST 2022


Hallo Helmut, Marcus und alle Interessierten,

>> Ich habe hier in der Abhandlung den Faden verloren, es wäre schön wenn
>> das noch mal jemand funktionierend zusammenfassen könnte!

ein laaaanger Thread für eine recht "einfache" Lösung des Problems.

Ich wollte einen (unter MBR-Geometrie installierten) eisfair1 (mit /boot
und / auf derselben Partition) auf einen anderen Datenträger übertragen,
dabei die Zielpartitionen und deren Größen verändern.

Problem dabei war, den extlinux-Bootlader auf der neuen Platte wieder zu
aktivieren ... was aber im Grunde nicht "schwieriger" ist als vorher
dasselbe mit dem alten Bootloader "lilo" zu machen.

Wichtig ist, dass vor dem Umzug das Paket "syslinux" installiert wurde
.... das liefert eine mbr.bin mit, die später für die neue Platte
gebraucht wird.


Also ... ich habe eine neue Festplatte genommen und eine primäre
ext4-Linux-Partition darauf angelegt und aktiviert (hier: sda1)

Dann habe ich das gesamte Dateisystem des eis1 von der alten Platte
(dort war es sda2) auf die neue Platte (hier sda1) kopiert. Dazu habe
ich eine Live-CD (hier: gparted-0.18.0-2) benutzt.

Die neue Partition sda1 (auf der neuen Platte) muss dieselbe UUID wie
die alte Partition sda2 (auf der alten Platte) bekommen, weil in der
mitkopierten initrd.gz die UUID der alten Partiton "festgebacken" ist.

Daher habe ich die alte UUID mit "blkid" ausgelesen und mit "tune2fs"
auf die neue Partiton übertragen.

Jetzt kann man die alte Platte beiseite legen und mit der o.g. Live-CD
booten.

An der Konsole der Live-CD mounte ich die neue Partition (mount
/dev/sda1 /mnt). Da das Verzeichnis /mnt/dev leer ist und keine
Geräteinformationen enthält (die Partition ist ja nicht gebootet,
sondern nur eingehängt), habe ich das /dev - Verzeichnis der Live-CD an
diese Stelle übertragen.

Jetzt trete ich in das eisfair-System mit "chroot /mnt" ein und
übernehme mit "su -" die root-Rolle.

Bis hierhin ist die Vorgehensweise identisch zu der unter dem
lilo-Bootloader.

Jetzt müssen 2 Schritte erfolgen. extlinux verlangt einen (vorgegebenen)
Master-Boot-Record auf /dev/sda sowie einen weiteren Boot-Record auf
/dev/sda1.

Beide Anweisungen hat Marcus hier gepostet ... ich zitiere sie nochmal.

Der mbr wird mit dd geschrieben .... Voraussetzung ist, dass das Paket
"syslinux" schon auf der alten Platte installiert war (siehe oben):
> dd bs=440 count=1 conv=notrunc if=/usr/libexec/syslinux/mbr.bin of=/dev/sda


Der Bootsektor auf sda1 wird geschrieben mit:
> extlinux --install --device /dev/sda1 /boot/extlinux

Das wars.
Mit "exit" und nochmal "exit" das Dateisystem des eis wieder verlassen,
das originale (leere) Verzeichnis /mnt/dev wieder herstellen und die
eis-Partition unmounten.

Nach einem Neustart (ohne Live-CD) bootet der eis1 wieder mit dem
extlinux-Bootmanager.

Wenn das Bootmenü nur 1 Sekunde lang angezeigt wird, hat Helmut den
richtigen Tipp gegeben:

Der TIMEOUT in /boot/extlinux/extlinux.conf ist in Millisekunden
angegeben ! Ändere den Eintrag auf TIMEOUT=300, dann ist das Bootmenü
für 30 Sekunden verfügbar.

Danke an alle Mitwirkenden ;-)
Gruß Uwe



Mehr Informationen über die Mailingliste Eisfair