2013-05-03 20:11:23 +0000 2013-05-03 20:11:23 +0000
50
50

Wie erstellt man einen bootfähigen USB aus einem bootfähigen ISO mit der Kommandozeile unter Linux?

Ich habe eine CD, die aus einer ISO-Datei erstellt wurde, die ich zur Installation einer benutzerdefinierten Version von Ubuntu über plop linux verwende.

Die CD funktioniert gut, aber ich würde stattdessen gerne ein bootfähiges USB-Laufwerk verwenden. Ich habe den Befehl dd verwendet, um zu versuchen, das bootfähige USB-Laufwerk zu erstellen:

dd if=filename.iso of=/dev/sdb1 bs=4k

Das kopiert die Dateien und macht das USB-Laufwerk bootfähig, aber ich erhalte die Fehlermeldung “Fehlendes Betriebssystem”

Irgendwelche Ideen?

Antworten (4)

58
58
58
2013-05-07 16:46:56 +0000

Ok, nach einiger Recherche habe ich eine Lösung gefunden, und ich werde sie Schritt für Schritt durchgehen. Das Problem war zweigeteilt.

  1. Stecken Sie das USB-Flash-Laufwerk ein und ermitteln Sie das Gerät, an dem es angeschlossen ist, mit dem Befehl:

  2. Hängen Sie das Gerät um

  3. Ich bin nicht sicher, ob es notwendig ist, aber ich habe das Laufwerk in FAT32 formatiert, nur für den Fall

  4. Nun benutzte mein ISO isolinux und nicht syslinux. Ich wußte, daß es mit CDs funktioniert, also fand ich heraus, daß ich den Befehl isohybrid aufrufen mußte, der es ermöglicht, daß ein ISO von einer Festplatte vom BIOS erkannt wird.

  5. Der nächste Schritt ist das Kopieren der iso. Mein zweites Problem lag hier, wo ich auf die Partition, sdc1, kopiert habe, nicht auf das Gerät, sdc.

3
3
3
2013-05-03 20:25:22 +0000

Dies ist ein häufiges Problem mit SanDisk-USB-Sticks oder Sticks, die nicht in FAT32 formatiert sind.

Wenn dies nicht der Fall ist, liegt es höchstwahrscheinlich an der Partitionsreihenfolge Ihres Sticks oder an der Datei syslinux.cfg.

1
1
1
2016-01-20 13:42:39 +0000

isohybrid funktioniert vielleicht nicht immer. Ich hatte z.B. eine .iso mit FreeDOS und isohybrid war nicht in der Lage, einige wichtige Dateien dort zu finden (ich weiß nicht, ob sie von syslinux, das ich auch benutzt habe, dorthin gelegt worden sein sollten, oder etwas anderes). Ich schlage hier mehrere Alternativen vor.

1) Installieren Sie dort einen anderen Bootloader wie z.B. GRUB. Es wird hier erklärt:

“Nehmen Sie an, die erste Partition Ihres USB-Sticks ist FAT32 und seine Partition ist /dev/sdy1” (ich hatte grub2 auf meinem Fedora Core, also habe ich die Befehle etwas geändert):

# mkdir -p /mnt/usb ; mount /dev/sdy1 /mnt/usb
# grub2-install --target=i386-pc --recheck --debug --boot-directory=/mnt/usb/boot /dev/sdy
# grub2-mkconfig -o /mnt/usb/boot/grub2/grub.cfg

# optional, backup config files of grub.cfg
# mkdir -p /mnt/usb/etc/default
# cp /etc/default/grub /mnt/usb/etc/default
# cp -a /etc/grub.d /mnt/usb/etc

# sync; umount /mnt/usb

2) FreeDOS wiki bietet eine zusammengesetzte Methode mit GRUB und syslinux an hier (obwohl ich nicht verstehe, wie sie grub> gestartet haben - ich konnte bis zu diesem Zeitpunkt nicht vom usb booten).

3) hier ist ein Beitrag, der vielleicht nützlich ist - er sagt ‘Solange die Dateien command.com, kernel.sys, syslinux.cfg, ldlinux.sys und fat32lba.bss im Stammverzeichnis des Laufwerks liegen und der MBR und der Bootsektor nicht neu geschrieben werden, sollte das Laufwerk bootfähig bleiben.’

4) Hier wird erklärt, wie man eine bootfähige .iso-Datei mit einem syslinux-Bootloader erzeugt. Dabei wird nicht einmal isohybrid verwendet. Leider hat mir das nicht geholfen (vielleicht liegt es an syslinux).

5*) Verwenden Sie ein Windows-Programm über wine. Ich habe rufus ausprobiert, aber das hat nicht funktioniert, es konnte das Gerät nicht finden.

Ich warne Sie, dass ich dieses Problem leider nicht lösen konnte, mein Gerät war nicht bootfähig, aber ich hoffe, dass dies für andere Leute nützlich sein kann (auch für diejenigen, die kein Linux auf dem usb installieren wollen). Das von chtaube erzeugte usb-Image hat bei mir allerdings funktioniert, daher denke ich, dass diese Methoden korrekt sind.

UPD: Die 3. Methode funktioniert wirklich (mit einer Korrektur für eine eigene Installationsdatei).

UPD2: (feste Links). Das Problem mit isohybrid lag wahrscheinlich daran, dass die Versionen von isolinux.bin auf der iso und meinem System unterschiedlich waren. Habe die iso mit genisoimage neu kompiliert, wie hier vorgeschlagen:

genisoimage -l -r -J -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o fd11new.iso fd11new

Es gab auch einige Probleme, diese wurden durch die Methode hier vor genisoimage gelöst:

cp /boot/extlinux/*.c32 fd11new/isolinux/
extlinux --install /boot/isolinux

== Ende UPD2 ==

0
0
0
2018-04-09 23:44:32 +0000

Sie könnten bootiso Utility verwenden, das genau das tut, und zwar auf sichere Weise:

bootiso -d /dev/sdb filename.iso

bootiso prüft, ob das ausgewählte Gerät /dev/sdb über USB angeschlossen ist und schlägt fehl, wenn dies nicht der Fall ist, was ein großes Sicherheitsplus darstellt. Es erkennt auch automatisch das USB-Gerät, wenn genau ein USB-Laufwerk an Ihr System angeschlossen ist, sehen Sie es in Aktion:

Wenn Sie den syslinux-Bootloader installieren wollen, um die von @xsdf erwähnten Probleme zu umgehen, verwenden Sie die Option -b:

bootiso -b -d /dev/sdb filename.iso

Um ihn zu installieren:

curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O
chmod +x bootiso