Warum funktioniert 'dd' nicht zum Erstellen von bootfähigem USB?


36

Vor kurzem wollte ich ein bootfähiges USB von Linux Mint erstellen. Ich fand, dass es viele widersprüchliche Ratschläge / Erfahrungen darüber gab, ob der Befehl 'dd' zum Erstellen eines bootfähigen USB verwendet werden kann. Ich habe beschlossen, eine ISO herunterzuladen und zu versuchen. Während dd definitiv das Image auf den USB-Stick legte, war es nicht bootfähig. Meine Frage ist also, was die magische Zutat ist, die diese Funktion ausmacht, oder warum dieser Ansatz fortdauert, wenn er nicht funktioniert?

Dies ist der Befehl, den ich verwendet habe,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 

@sawdust Während Sie angeben, dass die Antworten "no go" sind, gibt dieser Artikel ( community.linuxmint.com/tutorial/view/744 ) an, dass dies das richtige Verfahren ist.
Dave G

1
@DaveG - Interessant, anscheinend ist 'dd' ein verwendbarer Befehl, wenn die Quelldatei ein "Hybrid-ISO-Image" ist. Es ist jedoch nicht für jede ISO ein generisches Verfahren . Möglicherweise ist diese Unterscheidung der Grund für den widersprüchlichen Ratschlag, auf den Jdowner gestoßen ist.
Sägemehl

@sawdust danke für die zusätzliche Klarstellung dazu.
Dave G

Möglicherweise verfügen Sie über ein System-on-a-Stick, das in einem EFI-Boot-System verwendet werden soll. Ihr Computer ist jedoch für die Verwendung eines "klassischen" Boot-Vorgangs konfiguriert. So gesehen mit einem Linux Mint USB Stick.
David Tonhofer

Hier ist eine einfache / geniale Abhilfemaßnahme für widersprüchliche ISO-Images (basierend auf Ubuntu Live ISO): 1) Formatieren Sie den Stick so, dass sich auf (beispielsweise) "/ dev / sdX1" ein Dateisystem befindet. 2) Laden Sie den Stick als "/ mnt / usb "Zum Beispiel: 3) Installieren Sie grub2 auf stick: grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Kopieren Sie das zuvor heruntergeladene ISO-Image (zum Beispiel" foolinux.iso ") auf stick: cp foolinux.iso /mnt/usb/5) Erstellen Sie die Datei" /mnt/usb/boot/grub2/grub.cfg " bootet Linux von dem ISO-Image auf dem Stick (Forts.)
David Tonhofer

Antworten:


32

Sie schreiben das Image auf die Partition 1 von / dev / sdb

Ändern Sie dies in den folgenden Befehl:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

Diese Informationen wurden von hier aus erfasst


2
Ich mache: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso von = / dev / rdisk3 bs = 1m und es ist nicht bootfähig, irgendwelche Ideen?
Yusufk

Ich würde eine Partition rdisk3 oder eine rohe Festplatte? Sie versuchen, das Image auf eine bestimmte Partition zu schreiben
Dave G

1
Ich mache / dev / sdb und es ist immer noch nicht bootfähig
holms

rdisk3 ist die 3. festplatte auf einem mac afaik. Ich habe das gleiche Problem wie Yusufk. Muss überprüfen, ob es mit UEFI zusammenhängt.
5.

11

Sie haben das Image auf die erste Partition kopiert. Versuchen Sie, nach / dev / sdb anstatt nach / dev / sdb1 zu kopieren.

Der tatsächliche Mechanismus hängt ein wenig vom verwendeten Image-Typ ab. Für einfache DOS / MBR-Images benötigen Sie jedoch eine korrekte Partitionstabelle (wobei die bootfähige Partition als bootfähig markiert ist und der MBR - der Teil der anfängliche 512 Bytes, die nicht die Partitionstabelle sind und den anfänglichen Startcode enthalten.


Anstatt zu versuchen, die gesamte ISO erneut auf eine andere Partition zu kopieren, reicht es möglicherweise aus, das Startflag auf der Partition zu setzen, auf die Sie das Image ursprünglich kopiert haben (wie in dieser Antwort angedeutet)
GrayedFox

2

Nach meiner Erfahrung mit einer anderen Linux-Distribution müssen Sie lediglich die Syslinux-Bootloader-Datei ändern und sie so ändern, dass sie den USB-Stick bootet. Weitere Informationen hierzu finden Sie im Syslinux-Wiki .

Siehe auch diese Google-Suche .


1

Möglicherweise muss ein BPB in Ihren Bootloader geschrieben werden. Siehe Dex 'Beitrag vom 24. April 2009, 9:06 Uhr unter http://f.osdev.org/viewtopic.php?f=1&t=19681

Das Wesentliche ist, dass "wenn [Ihre USB-Firmware] Benutzer Floppy-Emulation und Sie keinen BPB haben, wird es NICHT booten"

Mit diesem Rat konnte ich dieses Problem lösen. Ich benutze Linux, daher lautete mein Befehl dd:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Sie möchten sdb durch Ihr USB-Gerät ersetzen. Sie können es finden, indem Sie laufen

ls -l /dev/ | grep sd

vor und nach dem einstecken des usb unter linux. Wenn Sie zB sdb1 und sdb erhalten, wählen Sie die nicht indizierte Option.


0

Haben Sie sichergestellt, dass Ihr Motherboard so eingestellt ist, dass es vom USB-Gerät bootet, bevor es versucht, von Ihrer Festplatte zu booten? Ich würde vermuten, dass dies Ihr einziges Problem sein könnte - es gibt nicht viel zu verwenden, ddwie Sie sehen können.


1
Dies war ein Problem, über das ich nachgedacht hatte, insbesondere, weil ich an einem alten Computer arbeitete. Als es auf meinem Zielcomputer nicht funktionierte, habe ich die Startreihenfolge auf dem Laptop meiner Frau festgelegt (shh, sag es ihr nicht) und es wurde auch nicht von diesem Computer gestartet.

0

Ich bin auch ein paar Mal auf dieses Problem gestoßen.

Ich habe festgestellt, dass das meiste bei mir funktioniert, indem ich das Laufwerk zuerst mit Null fülle.

  1. Ändern Sie X in den Buchstaben oder die Nummer Ihres Laufwerks, um es zu finden:

    • Mac: diskutil list
    • Linux: lsblk
  2. Füllen Sie das Laufwerk auf Null

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd dein bild nochmal

(4meg Blockgrößen scheinen für mich am schnellsten zu sein)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.