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.