Utilizzando il comando 'dd' per creare una chiavetta USB avviabile


11

Perché le immagini ISO di alcune versioni di Ubuntu possono essere messe su chiavetta USB con il comando dd e avviate correttamente, mentre altre no? Inoltre sembra che dipenda anche da una particolare chiavetta USB. Ho provato con Ubuntu standard:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

E funziona come un incantesimo, intendo: avviare e installare o eseguire Ubuntu live. Ma quando uso un'altra chiavetta USB preparata allo stesso modo, non riesce ad avviarsi con il sistema operativo non trovato errore BIOS.

Quando provo Ubuntu GNOME, semplicemente non si avvia con lo stesso errore dell'esempio precedente, indipendentemente da quale chiavetta USB utilizzi.

So che esiste un'applicazione Startup Disk Creator in Ubuntu, ma sono stato convinto che sia solo una facciata della GUI per un semplice comando dd , e posso sempre usare dd per creare una chiavetta USB avviabile, almeno per Linux. Ho sbagliato?


Personalmente uso Unetbootin e non ho mai avuto problemi.
Tim

Risposte:


5

Se esegui Startup Disk Creator, noterai che fa tre (quattro) cose:

  1. Formatta l'unità
  2. Copia sui dati dall'ISO all'unità
  3. (Aggiungi un altro file casper 1 per la persistenza, se selezionato. ddNon ti dà persistenza.)
  4. Installa un bootloader

Non è una GUI per dd(ci sono GUI per dd, ma SDC non è una di quelle). Puoi pensarlo come equivalente ai metodi manuali di Arch Linux o Gentoo . Dovresti essere in grado di creare un USB avviabile utilizzando attualmente la maggior parte delle ISO di installazione (ragionevolmente popolari) di distro. Questo non era vero circa tre o quattro anni fa, quando guardai Arch. Solo nel 2010 tutti gli ISO Arch hanno acquisito questa funzione (dove è possibile scriverla direttamente su un'unità USB) - dal 2008 al 2010 avevano immagini USB speciali.

Inoltre, se si utilizza ddun'unità direttamente, tale unità è effettivamente di sola lettura fino a quando non la si formatta o si utilizza lo spazio rimanente in qualche modo. Un disco creato da SCD è ancora utilizzabile come unità USB, anche se i contenuti non sono facilmente accessibili dall'ambiente live. Pertanto, se si dddispone di un ISO da 1 GB su un'unità USB da 8 o 16 GB, si sta effettivamente abbandonando lo spazio rimanente a meno che non vengano prese ulteriori misure.


1 In genere, la maggior parte delle immagini in diretta utilizza un file SquashFS per la partizione radice . SquashFS è di sola lettura, quindi per la persistenza, casper-rwviene creato un file /casper. Non sono sicuro delle origini di casper. Da quello che ho capito, quando avviato con l' boot=casperopzione, il kernel sovrappone il file casper (creandone uno se non esiste) sopra gli squashfs, in modo da ottenere capacità di scrittura. caspernon deve essere un file, può anche essere una partizione .


Che cos'è il "file casper"? Spiega per favore.

@ MikołajBartnicki Non sono molto sicuro di me stesso, ma ho aggiornato la risposta.
muru,

Casper è un fantasma (che tutti conoscete). Come hai detto, sovrappone alcune cartelle sul filesystem ro. L'esame del filesystem da un'immagine live in esecuzione con la persistenza abilitata mostra alcune directory 'upper' e 'lower' che esistono sia sul sistema di sola lettura che su quello di scrittura, ma appaiono come una sul sistema in esecuzione, in qualche modo simile a un mount su un già cartella esistente
oneindelijk

2

prova prima:

su -c 'mkfs.vfat /dev/sdc -I'

Per creare un disco USB avviabile da file iso usando il comando dd , il disco non può avere partizioni come / dev / sdc1 (una delle quattro possibili partizioni primarie di disk / dev / sdc ). Non è possibile clonare blocchi di file iso sulla partizione primaria, poiché anche il dvd o il cd non ne ha. Ecco perché devi creare un filesystem esattamente sul disco / dev / sdc , non nella partizione primaria.

Inoltre hai commesso alcuni errori digitando il comando dd .

Prova questo:

su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'

il tuo comando non corregge senza mkfs.vfat prima. può essere se si installa anche il bootloader e si attiva la partizione. Altre unità USB non funzionano, forse perché la porta USB può essere condivisa con un'altra porta USB o non si dispone di alimentazione per il funzionamento del sistema operativo USB live, probabilmente l'unità disco rigido funzionante e altri dischi USB che richiedono più energia del solito. Rispetto al consumo medio di energia di questo tipo di dispositivi (come i dischi hdd in custodia esterna con USB dall'adattatore SATA)


2

Puoi persino creare una chiavetta USB avviabile con cp(mi sembra molto più semplice di ddo di una GUI):

sudo cp path/to/ISO /dev/sdX


Ricordate che /dev/sdXdovrebbe essere sostituito con il nome del dispositivo a blocchi (ad esempio /dev/sdb, /dev/sdc).


1
È stato davvero nuovo per me. Insieme a progress unix.stackexchange.com/a/301329/87264 mostra anche progressi
Jonas Eberle
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.