Domanda Come creare un'unità flash USB Ubuntu avviabile dal terminale?


C'è un modo per creare un'unità flash USB Ubuntu avviabile dal terminale senza utilizzare applicazioni di terze parti come YUMI, UNetbootin, Startup Disk Creator, eccetera.

Ho provato a creare una chiavetta USB avviabile con dd metodo,

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M

Crea file sul disco USB, ma quando provo ad avviare il disco USB mostra un Operating System Not Found errore.


263
2017-11-15 17:29


origine


Devi assicurarti che la tua chiavetta USB NON sia montata. Controlla con lsblk. Se necessario, eseguire sudo umount / dev / sdb (probabilmente sdb1, sdb2). Aggiungi; echo $? dopo il comando dd copy. Quindi: sudo dd if = ... of = ... bs = 4M; echo $? Se il comando termina, il valore restituito dovrebbe essere 0.
ho seguito i tuoi passi, ma crea anche gli stessi file di sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M crea. Non crea nessuno ubninit,ldlinux.sys,etc file che sono principalmente importanti per l'avvio di un sistema operativo Linux. - Avinash Raj
Vorrei installare grub sull'MBR del disco USB come passaggio finale. - Elder Geek
Il più semplice utilizzare gli strumenti integrati che utilizzano il terminale dd come descritto qui. Funziona con tutti i file ISO ibridi. Ma dd è uno strumento pericoloso perché fa quello che gli dici di fare senza domande. Quindi, se lo dici per cancellare le foto di famiglia ... ed è un piccolo errore di battitura. Molti strumenti sono più sicuri. Ti aiutano a identificare e selezionare il disco di destinazione e a fornire un checkpoint finale, dove è possibile ricontrollare, che si scriverà sull'unità corretta. Molti di questi sono strumenti GUI, alcuni possono funzionare anche in modalità testo, ad es. mkusb-dus. - sudodus
Il seguente collegamento mostra un esempio, in cui l'unità interna è stata sovrascritta per errore, quando una riga di comando con dd è stato utilizzato per creare una chiavetta USB avviabile Ubuntu, askubuntu.com/questions/982552/accidentally-did-dd-dev-sda - sudodus


risposte:


Puoi usare dd.

 sudo umount /dev/sd<?><?>  

dove <?><?> è una lettera seguita da un numero, cercalo. Quindi, il prossimo:

 sudo dd bs=4M if=input.iso of=/dev/sd<?> conv=fdatasync

dove input.iso è il file di input e /dev/sd<?> è il dispositivo USB su cui stai scrivendo (esegui lsblk per vedere tutte le unità per scoprire cosa <?> è per la tua USB).

Questo metodo è veloce e non mi ha mai deluso.


EDIT: per quelli su un Mac che finiscono qui, usa il carattere minuscolo per bs=4m:

sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync

EDIT: Se l'unità USB non si avvia (questo è successo a me), è perché la destinazione è una partizione particolare sull'unità anziché l'unità. Quindi l'obiettivo deve essere / dev / sdc e non dev / sdc <?> Per me era / dev / sdb.

Riferimento: https://superuser.com/a/407327 e https://askubuntu.com/a/579615/669976


302
2017-11-13 11:51



non funziona per me. - Avinash Raj
Veramente? Sei sicuro di avere il corretto nome del file .iso incluso il percorso e il corretto / dev per l'unità USB? Come fallisce? C'è un messaggio di errore, o non riesce proprio ad avviarsi? Sei sicuro che il .iso non sia corrotto? - Marc
Potresti avere un .iso corrotto. L'hai controllato? Sei sicuro che il .iso sia in realtà una copia di qualcosa è avviabile? - Marc
La domanda originale e la risposta più promossa è la stessa persona che ha affermato che questo metodo non funziona per lui. ;-) Per me la risposta approvata non funziona e questo lo fa. :-) Upvoting. - Drachenfels
uso df -lh per controllare cosa dev/sdc è tuo /media/user/XXXX-YYY (il nome dell'interfaccia dell'USB) - Peter Krauss


Creazione di un'unità flash USB Ubuntu avviabile dal terminale

  • Posiziona il ubuntu.iso file in qualsiasi partizione del disco rigido.

  • Quindi montare il ubuntu.iso file con i seguenti comandi nel terminale:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Inserisci la tua chiavetta USB. La mia guida è /dev/sdd. Ecco uno screenshot:

GParted screenshot

  • L'unità può essere montata automaticamente all'interno /media/. Supponiamo che sia stato montato in /media/xxx/.

  • Copia tutti i file da /media/iso/ alla tua unità flash USB montata eseguendo il comando seguente (assicurati di includere il punto):

    cp -a /media/iso/. /media/xxx/
    
  • Successivamente, è necessario il ldlinux.sys file nella chiavetta USB per rendere USB avviabile. La mia partizione USB è /dev/sdd1; accedere lsblk per vedere cosa è tuo. Esegui i seguenti comandi:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • Vai a /media/xxx montare la cartella e rinominare il isolinux directory a syslinux. Quindi vai nella cartella rinominata e rinomina il file isolinux.cfg a syslinux.cfg.

  • Riavvia il PC e modifica l'ordine di avvio nel BIOS per consentire l'avvio da un'unità USB. Ora la tua chiavetta USB Ubuntu si avvierà e potrai installarla.

Questo metodo funzionerà con qualsiasi distribuzione Linux, non solo con Ubuntu. Non è necessario installare alcun software di terze parti per creare una chiavetta USB Linux.


84
2017-11-07 18:19



Ci sto provando in questo momento, potresti specificare cosa / perché usi: cp -a piuttosto che cp -r - moldovean
Hai bisogno sudo per il syslinux comando. - Cammy_the_block
Questo metodo non ha funzionato per me. Cp -a fornisce: 'cp: impossibile creare il collegamento simbolico' /media/xxx/./ubuntu ': operazione non consentita' e altri simili, poiché l'obiettivo è fat32. Ho provato a ignorarlo ... non ha funzionato - sheß
Importante notare che il usb deve essere un filesystem fat32, altrimenti syslinux non funzionerà - Ricardo BRGWeb
La console mi mostra lo stesso errore di @ sheß. Ho verificato il filesystem (FAT32) e il flag BOOT. - Chofoteddy


Sei quasi lì con ddma ti manca un passaggio.

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

dove sdX è il tuo dispositivo USB (questo può essere verificato con lsblk).

Il sync il bit è importante come dd può tornare prima che l'operazione di scrittura termini.


77



+1 per menzionarlo sync. Senza di esso, non hai idea se il contenuto sia stato effettivamente copiato. Inoltre, se non hai fretta, dovresti md5sum entrambi i file solo per essere doppiamente sicuri. - Dave
Forse vale la pena menzionare l'USB potrebbe essere necessario (ri) formattato come FAT32 con sudo mkfs.msdos -F 32 /dev/sdX primo? - Nemo
@Nemo, è possibile che faccia la differenza? dd in / dev / sdX sovrascriverà qualsiasi file system esistente. - mwfearnley
sync è inutile qui. Influisce solo sulle operazioni del file system. - punund
conv=fdatasync - scrivere fisicamente i dati del file di output prima di terminare dovrebbe fare attenzione alla sincronizzazione, ma una buona chiamata per assicurarsi che il dispositivo sia smontato per primo. - Johnathon Havens


Hai due scelte.

Se desideri un'interfaccia grafica, usa usb-creator (è nei repository ubuntu)

enter image description here

Se vuoi uno strumento da riga di comando, usa dd

#Replace X accordingly in both commands

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdbX bs=1M

Basta essere sicuro /dev/sdX è l'unità flash che desideri utilizzare (distruggerà i dati sull'unità flash).

Vedere https://help.ubuntu.com/community/Installation/FromUSBStickper ulteriori informazioni.


36



Voglio solo strumenti da riga di comando, non strumenti di GUI (come il creatore di dischi di avvio). Secondo il dd metodo, solo 3 cartelle e 1 file è stato creato nel mio usb.While ho cercato di avviare dice operating system not found error.File piace ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sys mancano (che sono molto importanti per avviare Ubuntu dal vivo). - Avinash Raj
Ho provato il metodo dd con ubuntu.iso e ha funzionato! anche troppo tempo per essere scritto su una USB. Mi chiedo cosa significhi bs = 1M. Ho trovato questo sito manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html. Ora mi chiedo se la modifica del valore renderà più veloce la copia USB? E quali sono i rischi ... forse qualcuno lo sa. - moldovean
Il bs è la dimensione del blocco. dd leggerà 1MB di dati nella memoria e quindi procederà a scriverlo sul disco nel suo complesso. Usando una dimensione di blocco molto piccola si otterrà un sovraccarico della CPU. L'utilizzo di una dimensione di blocco molto grande può provocare effetti collaterali imprevisti, ad es. pause più lunghe di nessuna attività del disco e / o grande utilizzo della RAM. 1M o 4M di solito è un buon valore quando si crea un disco da un ISO. Maggiori informazioni sulle dimensioni dei blocchi: stackoverflow.com/questions/6161823/... - ApolloLV
Immagino che fare una chiavetta USB sia qualcosa che faccio raramente, ma quando lo faccio, voglio farlo bene. Un blocco più piccolo potrebbe richiedere più tempo, ma è un problema? No. - Marc
@Marc - L'unico problema è la velocità, una dimensione di blocco più piccola non è più o meno soggetta a errori, quindi una dimensione di blocco più grande e quindi una dimensione di blocco più piccola! = "Fatto bene". Fatto bene significa controllare il md5sum degli iso e confermare il md5sum dell'immagine scritta. Una volta che hai confermato gli m5dsum, sai che è stato fatto bene. - Panther


Per prima cosa, smonta il dispositivo USB e poi usalo lsblk per verificare il dispositivo.

A volte (di solito i file iso più vecchi) dd non è sufficiente e la pendrive non si avvia. In questo caso, potrebbe essere necessario installare syslinux:

sudo apt-get install syslinux

e quindi eseguire i seguenti comandi:

sudo mkfs -t vfat -I /dev/sdX

Si desidera eseguire l'ultimo comando su /dev/sdX e non  /dev/sdX1.

Quindi, procedere con i seguenti comandi:

isohybrid /path/to/file.iso --entry 4 --type 0x1c
dd if='/path/to/file.iso' of=/dev/sdX bs=8M

o, per vedere i progressi della scrittura dell'immagine:

pv -tpreb /path/to/file.iso | dd of=/dev/sdX bs=8M

o invece di dd, Puoi usare cat anziché:

sudo -s
cat /path/to/file.iso > /dev/sdX

Ricordare di emettere il comando di sincronizzazione per svuotare la cache di scrittura

sync

web.archive.org/web/20140327085331/https://tails.boum.org/doc/first_steps/installation/manual/linux/index.en.html


23



Devo dire che per me tutto il resto è fallito, ma questo ha funzionato - ho optato per il cat comando. - Digital Dracula
Per quelli che lo insistono dd da solo è sufficiente, ho anche bisogno di questo per funzionare. - GuiRitter
Se vuoi uno strumento che usi dd quando ISO è ibrido e monta, copia il file ISO + installa SYSLINUX quando ISO non lo è, usa bootiso anziché. - Jules Randolph


$ dd if=ubuntu-14.04.1-desktop-amd64.iso of=/dev/sdX bs=1MB

Non usare il percorso per mordere.

  1. Usa il cd comando per arrivare alla cartella che contiene il file .iso
  2. usa il comando dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Attendi fino a quando l'output della console non assomigli a questo:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Avvio da USB.

Nota: assicurati di scrivere sul dispositivo corretto una chiavetta USB non sarà sempre montata su: dev/sdX dove X può essere qualsiasi lettera.


6



qual è il significato di bs = 1MB nel comando dd ??? - juggernaut1996
@ juggernaut1996 nessuno. È la dimensione del blocco da utilizzare durante la copia. Poiché non è stato fornito alcun argomento di conteggio, verrà copiato l'intero input in blocchi da 1 MB. Potrebbe essere rimosso. - sjbx
Il "Non utilizzare il percorso per bit" è una disinformazione. Il processo stesso non inserisce i componenti del percorso nell'immagine copiata in alcun passaggio, quindi è irrilevante se si naviga nella directory che contiene l'immagine ISO o si fornisce solo il percorso completo. Inoltre, dd può accettare input anche da stdin, quindi puoi semplicemente inserire due dd l'uno nell'altro per assicurarti che non vi sia alcun percorso nell'immagine. - Gabor Garami
Questo funzionerà solo con gli ISO ibridi, che riempiono oggi la maggior parte dei casi, ma ci sono eccezioni apprezzabili come UltimateBootCD. Uso bootiso anziché. - Jules Randolph


Se per "terze parti" intendi "gui", Suggerisco uno script leggero chiamato bootiso dopo Avinash Raj risposta, perché dd non funziona sempre Il grande vantaggio è che è molto sicuro (esegue molti controlli di sicurezza per non rovinare il sistema), facile da installare e portatile.

Anche, bootiso ispezionerà il file ISO per scegliere tra due modalità: image-copy (dd) quando il file ISO è ibrido, ovvero USB-friendly. E modalità mount-rsync quando il file ISO non è ibrido, nel qual caso verrà installato automaticamente un bootloader SYSLINUX se supportato [maggiori dettagli sul comportamento automatico].

Come usarlo

Prima opzione, basta fornire l'ISO come primo argomento e ti verrà richiesto di selezionare un'unità tra una lista estratta da lsblk:

bootiso myfile.iso

O fornire esplicitamente il dispositivo USB:

bootiso -d /dev/sde myfile.iso

Installazione rapida

curl -L https://git.io/bootiso -O
chmod +x bootiso

Guardalo in azione:


5



Sono d'accordo, questo è uno script molto carino che prende i bit spaventosi fuori dal processo. Maggiori dettagli qui: tecmint.com/create-bootable-usb-in-linux-commandline - kr37


Prova questo e non mi hai mai mancato per più di 100 volte:

Formatta la carta:

$ sudo mkfs.vfat -F32 /dev/sdx

Monta l'immagine ISO:

$ sudo mount ubuntu.iso /mnt

Copia i contenuti sulla carta:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

Poi:

  • rinominare isolinux cartella in syslinux
  • rinominare syslinux/isolinux.cfg a syslinux/syslinux.cfg
  • rinominare syslinux/isolinux.bin a syslinux/syslinux.bin
  • correre syslinux -s /dev/sdx

-4



-1. Hai provato anche questo? sudo cp -rvf /mnt/* /dev/sdx non funzionerà (o almeno non farà ciò che intendi). Non si copiano i file su un dispositivo raw (/dev/). Invece, dovresti montare la scheda e copiare il contenuto del file ISO sulla scheda (punto di montaggio sul punto di montaggio). E cosa c'è di sbagliato nell'attuale risposta accettata che ha lo stesso approccio. - gertvdijk