Come / perché cat scrive un ISO avviabile su un dispositivo


15

Recentemente ho scoperto che posso creare una chiave USB avviabile da un file ISO semplicemente usando cat(o dd).

Non riesco a trovare alcuna informazione su come funziona. Perché sarebbe:

cat my.iso > /dev/sdb && sync

prendere quel file e scrivere tutti i file che contiene, in formato di avvio, su un dispositivo?


Non ho mai pensato di usarlo catal posto di ddcreare liveUSB
Rob

3
Era nelle istruzioni per "Tails", l'immagine Tor live. Ho fatto un po 'di googling (prima di chiedere qui) e sembra che dd fosse quello che la gente usava per questo genere di cose, ma il gatto sembra essere lo strumento preferito ora. Immagino sia più semplice in quanto non devi preoccuparti di specificare i parametri con nome per i dettagli di input / output.

Risposte:


14

Un file ISO è un'immagine di file system completa e formattata. Tutto cato ddfa è fare una copia bit per bit di tale immagine del file system sul supporto di destinazione.

Non c'è magia dietro le quinte. La preparazione del filesystem ISO è stata effettuata in anticipo (spesso da uno strumento specializzato). Tutto catciò che fa è scrivere quella raccolta di byte. Non interpreta .isoaffatto, né capisce che sta cercando di creare affatto un supporto rimovibile di avvio.
Richiede il supporto adeguato dal kernel e dal driver del dispositivo per far writefunzionare s su quel supporto. Un po 'di "magia" continua lì, poiché i supporti ottici scrivibili non funzionano esattamente allo stesso modo dei dischi rigidi convenzionali. Ma quella magia non implica l'interpretazione del contenuto del file ISO.

È possibile montare il .isofile direttamente senza masterizzarlo utilizzando un montaggio in loop (se tale cosa è disponibile sul sistema operativo). Allo stesso modo, è possibile creare un file che contiene ad esempio un ext4filesystem e farlo catsu una partizione.


1
e poi assicurati semplicemente che i dati ti abbiano davvero scritto sulla partizione (invece che solo su bufferrata)
yuyichao,

La sincronizzazione @yuyichao dovrebbe coprire questo, giusto? Modifica: ho appena realizzato di aver risposto a un commento di 6 anni
Manchineel,

5

Questo funziona perché l'immagine iso è stata elaborata con isohybrid, che installa un normale caricatore di avvio syslinux nell'immagine iso. Ciò è possibile perché iso9660 normalmente non utilizza i primi settori dell'immagine, quindi è possibile posizionare lì un caricatore di avvio del disco rigido più o meno normale. Quando viene masterizzato su un disco ottico, viene ignorato e il BIOS avvia il disco utilizzando il metodo di avvio cdrom el torito convenzionale. Quando l'immagine viene posizionata su un'unità flash, viene caricato il settore di avvio di syslinux.

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.