Forum: PC Hard- und Software syslinux (genauer extlinux) als bootloader für live Linux Distro nutzen


von Robert (Gast)


Lesenswert?

Hi,

ich würde gerne eine .iso eines Linux Live OS auf einen USB-Stick 
schreiben.
Bei Rufus funktioniert es nur im iso-Modus, im dd-Modus kann ich nicht 
booten.

Da ich gerne einmal syslinux bzw. aufgrund des ext4 Dateisystems 
extlinux zum booten nutzen würde, muss ich die iso ja irgendwie zusammen 
mit dem Bootloader auf den Stick schreiben. Wie gehe ich dazu vor? 
Enthält die .iso bereits einen Bootloader, den ich ersetzen muss?

Ich habe keinen Plan, wie ich den syslinux bootloader
1. bei einem UEFI (keine Kompabilität mit BIOS, kein Legacy support) 
(Secure boot deaktiviert)
2. bei einem Livesystem (Änderungen werden ja nicht gespeichert wenn ich 
aus dem laufenden System den bootloader in syslinux ändere)
einrichte. Im Internet habe ich bisher nichts gefunden, was eine "uefi 
extlinux live iso" Installation zeigt, bzw. wie man diese durchführt.

Wäre es bei einer richtigen Installation (nicht live) einfacher?

Robert

von Robert (Gast)


Lesenswert?

ich habe sowohl Linux (sehr viele auf Live Miltiboot DVD, installiert 
Mint&Lubuntu) als auch Windows 10/XP zur Verfügung.
Kennt sich niemand mit syslinux aus?

Ich hätte auch nichts gegen Multiboot. z.B. 3 verschiedene Linuxe auf 
einem Stick. Nur die Frage ist, wie man das mit einer gpt tabelle macht. 
Warum gibt es nirgendwo eine Anleitung dafür?

von Robert (Gast)


Lesenswert?

ist es wirklich so schwer, ein Linux live OS auf einen Stick zu packen, 
dass niemand hier das kann? Oder nutzt ihr immer nur das fertig 
installierte OEM Windows und beschäftigt euch nicht mit Linux?

von DPA (Gast)


Lesenswert?

Robert schrieb:
> ich würde gerne eine .iso eines Linux Live OS auf einen USB-Stick
> schreiben.
> Bei Rufus funktioniert es nur im iso-Modus, im dd-Modus kann ich nicht
> booten.
>
> Da ich gerne einmal syslinux

Mit syslinux hab ich nur kurz mal experimentiert. Schau mal das unter 
der markierten Zeile an:
https://gist.github.com/Daniel-Abrecht/b745fab790fc6354ce7267e58e91d579#file-my_hello_world_distro-sh-L361

Die letzte Zeile macht das ding auf USB-Sticks bootbar ist. Ich glaube 
der EFI part funktioniert aber nicht richtig... Ist aber nur bei ISOs 
(CD images im ISO 9660 format. (Obwohl, eventuell wäre mit UDF noch was 
machbar.)) relevant. Wenn man nur USB Sticks unterstützen will, macht 
man das anders.

Robert schrieb:
> bzw. aufgrund des ext4 Dateisystems extlinux zum booten nutzen würde, muss ich 
die iso ja irgendwie zusammen
> mit dem Bootloader auf den Stick schreiben.

Bei hybrid isos, mit dd. Geht aber nur mit einem image, und muss Direckt 
auf den Stick, nicht auf ne Partition, sonst kann man allerhand 
merkwürdige Fehler bekommen.

Andernfalls musst du dich selbst um das Entpacken und den Bootloader 
kümmern, den der der ISO kann dann nur CDs starten. Das geht dann aber 
nur bei OSn, die keinen bestimmten Bootloader voraussetzen, das solte 
bei ner Linux ISO kein Problem sein.

> Wie gehe ich dazu vor?
> Enthält die .iso bereits einen Bootloader, den ich ersetzen muss?

Wenn isohybrid nicht hilft, vergiss den Bootloader der ISO erstmal. 
Zunächst muss einer auf den Stick, der geht. Bei dem teil kann ich dir 
auch nicht groß weiterhelfen.

Robert schrieb:
> aufgrund des ext4 Dateisystems extlinux zum booten nutzen würde

Das müsste glaub ich auch im syslinux Repo vorhanden sein? Also sourcen: 
https://repo.or.cz/syslinux.git oder 
https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.tar.gz 
und wie im github gist von oben make ausführen. Oder schauen, ob es die 
Binaries schon irgendwoher fertig gibt.

Die EFI Dateien müssen auf eine FAT32 Formatierte Partition. Nutze GPT, 
nenn es ESP, und setze den Partitionstyp auf EFI. Theoretisch müsste es 
genügen, das richtige .efi Datei dann nach EFI/boot/bootx64.efi, bzw. 
EFI/boot/bootia32.efi auf die Partition zu kopieren. Bei sys/extlinux 
brauchts noch die Config und ein paar andere Dateien noch (wie im github 
gist.). Bei kaputten EFI Systemen suchen diese eventuell statt nach 
bootx64.efi nach der Windows bootloader efi Datei, wie auch immer die 
hiess, muss man dann entsprechend umbenennen/kopieren. Und manche x64 
Systeme akzeptieren nur ia32 statt x64. Und Secureboot kann auch ein 
Problem sein.

Bisher hab ich aber immer nur Grub2 auf ein Image/Stick von einem debian 
chroot aus getan, wie das bei syslinux macht, oder wie man grub von 
anderen Umgebungen aus drauf bekommt, weiss ich auch nicht.

Das Partitionieren des Stick kannst du mit gdisk/sfdisk, "mkfs.vfat -F 
32" und "mkfs.ext4" partitionieren und dann formatieren. Alternativ geht 
auch gparted. Danach die fat Partition mounten und den bootloader drauf, 
und dann die ext partition mounten und die ISO darauf entpacken. 
Eventuell noch die /etc/fstab anpassen. Ich habe leider kein beispiel 
dafür. Ich hab grad nur was images für u-boot + imx8 arm64 Boards, wo 
der bootprozess etwas anders läuft, aber eventuell bringt es ja ein paar 
ideen: 
https://github.com/Daniel-Abrecht/librem5-image-builder/blob/master/script/assemble_image.sh#L23

Robert schrieb:
> 2. bei einem Livesystem (Änderungen werden ja nicht gespeichert wenn ich
> aus dem laufenden System den bootloader in syslinux ändere)

Nunja, man ändert ihn ja nicht wirklich, man installiert einen neuen, 
kopiert die Dateien des Rootfs und sagt dem Bootloader, wo der Kernel 
ist. Ist halt bei jedem Bootloader wieder etwas anders.

Robert schrieb:
> Wäre es bei einer richtigen Installation (nicht live) einfacher?

Eine normale Installation auf einen USB-Stick ist schon einfacher, falls 
das gemeint ist, ja. Bringt einem bei EFI aber die Bootreihenfolge 
durcheinanderbringen, wenn man keine Vorkehrungen trifft, sofern das EFI 
des PC nicht sowieso schrott ist.

Tools wie z.B. unetbootin machen das alles schon automatisch, man 
bekommt damit dann aber halt nur eine Distro auf den Stick.

Und bei Windows ist noch zu beachten, das das OS bei mehreren 
Partitionen auf einem USB Stick komplett durcheinander kommt. Glaub der 
Anzeige der Festplattenverwaltung (oder wie auch immer es hies) und dem 
Laufwerks Namen dort nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.