Perché 'dd' non funziona per la creazione di USB avviabile?


36

Recentemente ho voluto creare un USB avviabile di Linux conio. Ho scoperto che c'erano molti consigli / esperienze contrastanti sul fatto che il comando 'dd' potesse essere usato per creare un USB avviabile. Ho deciso di scaricare un ISO e provare. Mentre dd ha sicuramente messo l'immagine sulla chiavetta USB, non era avviabile. Quindi la mia domanda è: qual è l'ingrediente magico che farà funzionare questo o perché questo approccio ha persistito se non funziona?

Questo è il comando che ho usato,

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

@sawdust mentre affermi che le risposte inviate sono "no go", questo articolo ( community.linuxmint.com/tutorial/view/744 ) indica che questa è la procedura corretta.
Dave G,

1
@DaveG - Interessante, apparentemente 'dd' è un comando utilizzabile se il file sorgente è "Immagine ISO ibrida". Ma non è una procedura generica per ogni iso . Forse questa distinzione è la ragione del conflitto che il jumper di consulenza ha incontrato.
segatura

@sawdust grazie per il chiarimento aggiuntivo in merito.
Dave G,

È possibile che si disponga di un sistema on-the-stick che deve essere utilizzato in un sistema di avvio EFI, ma la macchina è configurata per utilizzare l'avvio "classico". Così visto con una chiavetta USB Linux Mint.
David Tonhofer,

Ecco una soluzione semplice / geniale per le immagini iso recalcitranti (basate su Ubuntu Live ISO): 1) Formato stick in modo che vi sia un filesystem su (diciamo) "/ dev / sdX1", 2) Montare stick come "/ mnt / usb "ad esempio, 3) Installa grub2 su stick:, grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Copia l'immagine ISO precedentemente scaricata (ad esempio" foolinux.iso ") su stick: cp foolinux.iso /mnt/usb/5) Crea" /mnt/usb/boot/grub2/grub.cfg "che avvia linux dall'immagine ISO presente sullo stick (cont)
David Tonhofer

Risposte:


32

Stai scrivendo l'immagine nella partizione 1 di / dev / sdb

Cambia questo con il seguente comando:

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

questa informazione è stata acquisita da qui


2
Sto facendo: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso di = / dev / rdisk3 bs = 1m e non è avviabile, qualche idea?
Yusufk,

Avrei rdisk3 una partizione o un disco non elaborato? Stai tentando di scrivere l'immagine in una partizione specifica
Dave G,

1
sto facendo / dev / sdb e non è ancora avviabile
holms

rdisk3 è il 3o disco su un mac afaik. Ho lo stesso problema di Yusufk. È necessario verificare se è correlato a UEFI.
gavit,

11

Hai copiato l'immagine nella prima partizione. Prova a copiare su / dev / sdb anziché su / dev / sdb1.

Il meccanismo effettivo varia leggermente a seconda del tipo di immagine che si sta utilizzando, ma per le immagini DOS / MBR semplici è necessario ottenere una tabella delle partizioni corretta (con la partizione di avvio contrassegnata come avviabile e l'MBR - la parte del 512 byte iniziali che non è la tabella delle partizioni - contenente il codice di avvio iniziale.


Vorrei notare che invece di provare a copiare di nuovo l'intero ISO su un'altra partizione, è sufficiente impostare semplicemente il flag di avvio sulla partizione in cui hai copiato originariamente l'immagine (come accennato in questa risposta)
GrayedFox


1

Potrebbe essere necessario avere un BPB scritto nel bootloader. Vedi il post di Dex del Ven 24 aprile 2009 alle 9:06 a http://f.osdev.org/viewtopic.php?f=1&t=19681

L'essenza è che "se [il tuo firmware USB] usa l'emulazione floppy e non hai un BPB, NON si avvierà"

Grazie a quel consiglio, sono stato in grado di risolvere questo problema. Uso Linux, quindi il mio comando dd era:

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

Ti consigliamo di sostituire sdb con il tuo dispositivo USB. Puoi trovarlo correndo

ls -l /dev/ | grep sd

prima e dopo aver inserito l'USB mentre Linux è in esecuzione. Se ottieni ad esempio sdb1 e sdb, scegli l'opzione non indicizzata.


0

Hai verificato che la scheda madre sia impostata per l'avvio dal dispositivo USB prima che tenti di avviarsi dall'HDD? Immagino che questo potrebbe essere il tuo unico problema: non c'è molto da usare ddcome puoi vedere.


1
Questo era un problema a cui avevo pensato, soprattutto perché stavo lavorando su un vecchio computer. Quindi, quando non ha funzionato sul mio computer di destinazione, ho impostato l'ordine di avvio sul mio laptop wifes (shh, non dirglielo) e non si è nemmeno avviato da quello.

0

Ho riscontrato anche questo problema alcune volte.

Quello che ho scoperto che funziona per me la maggior parte del tempo è prima di riempire zero l'unità.

  1. Cambia X nella lettera o nel numero dell'unità, per trovarlo:

    • Mac: diskutil list
    • Linux: lsblk
  2. Azzera il riempimento dell'unità

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd di nuovo la tua immagine

(Le dimensioni dei blocchi di 4meg sembrano essere le più veloci per me)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.