Creare un’immagine di un disco USB… senza disco USB.

7

Eccoci ancora qui con un altro tutorial semplice semplice ma, in alcuni casi, molto utile. Il problema di oggi è stato il seguente: devo montare su una lama HP l’immagine di un disco USB per poter caricare dei file su un sistema “live” (quindi con lettore cd occupato) senza dover configurare la rete (e quindi,…

linux

Eccoci ancora qui con un altro tutorial semplice semplice ma, in alcuni casi, molto utile.

Il problema di oggi è stato il seguente: devo montare su una lama HP l’immagine di un disco USB per poter caricare dei file su un sistema “live” (quindi con lettore cd occupato) senza dover configurare la rete (e quindi, far riconfigurare la porta degli switch).

Le soluzioni sono 2:
1) Prendere una chiavetta USB, caricare i file, fare un’immagine e collegarla
2) Creare direttamente da sistema l’immagine di una chiavetta USB, caricare i file, e collegarla.

Dato che la prima soluzione prevede comunque di avere una chiavetta di dimensione “trasportabile” via rete (personalmente ho un pendrive da 16GB: per due file da 2mb l’uno, farmi un’immagine da 16GB e spostarla via rete è assurdo), la seconda è molto più malleabile in termine di dimensioni dell’immagine che si andrà a creare.

Ma, andiamo a cominciare: per prima cosa ci interessa creare un file (che altro non sarà che l’immagine della nostra chiavetta) di una dimensione particolare; nel mio caso, 10mb sono più che sufficienti.
Mano al buon, vecchio dd e dunque:

$ dd if=/dev/zero of=usbDisk.img bs=1024 count=10000

Quindi, partendo dal device “zero” (contenente, ovviamente, solo 0) creo un file “usbDisk.img” di dimensione 1024byte x 10000 = 1kb x 10000 = 10mb

Terminata la creazione, scatta la magia: andiamo a collegare questo file ad un device facendolo, in effetti, vedere al sistema come un dispositivo fisicamente collegato alla macchina:

$ losetup -f usbDisk.img

Questo comando prende il file usbDisk.img e lo collega al device /dev/loop0

Ora, come ogni disco che si rispetti, andiamo a crearci sopra una partizione; armiamoci di cfdisk (molto semplice, i puristi preferiranno fdisk, ma fate voi) e creiamo una singola partizione di tipo “Linux” sul disco:

$ cfdisk /dev/loop0

Salviamo ed usciamo.
In realtà quello che ci serve non è la partizione, bensì il fatto che cfdisk, in fase di scrittura, determina e scrive direttamente sul device informazioni come i cilindri, ecc. che servono successivamente per creare il filesystem.

Quindi, visto che vogliamo simulare un disco usb “standard”, andiamo a metterci sopra un filesystem che sia comune, e cosa meglio del vecchio fat32 per questo?

$ mkdosfs -F 32 /dev/loop0

Terminata la creazione possiamo montare il disco usb come un normalissimo device:

$ mkdir -p /mnt/fintoDisco
$ mount /dev/loop0 /mnt/fintoDisco

e copiarci sopra i file interessati.

Quando abbiamo finito ricordiamoci di smontare il device:

$ umount /mnt/fintoDisco

e, soprattutto, di sganciare il device dal file reale:

$ losetup -d /dev/loop0

Ora possiamo portarci in giro il file come più ci aggrada.

Buon divertimento e buon lavoro

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.

Iscriviti
Notificami
guest
7 Comments
roberto

non si finisce mai di imparare

Grazie !

ps

non credo di aver capito bene ma se monto una live e ho una porta usb a disposizione posso sempre montare una chiavetta e copiarmi direttamente i file, a meno di aver bisogno di una piccola img bootable.

Luigi

Bel tutorial, vorrei solo sapere una cosa.
Ho provato a utilizzare losetup per l’immagine di un intero disco e con fdisk vedo le partizioni segnate come /dev/loop0p1 e /dev/loop0p2, però non capisco come fare a montarle.

Qualcuno sa come si fa?

Mauro

Bellissima idea quella che hai avuto, vorrei farne un’applicazione diversa per cui ti chiedo è possibile montare poi l’immagine ottenuta su un’unità virtuale su Windows Xp? in modo da simulare l’USB-PEN? e con quale programma ?
Grazie per la risposta.
Mauro

Matteo Cappadonna

Ciao Mauro,

intanto grazie. Per quanto riguarda il mount dell’immagine su Windows XP, sinceramente, non sono molto ferrato sull’argomento (ormai sono anni che non mi avvicino ad una macchina Windows).

Comunque, una breve ricerca su google, mi ha fatto arrivare a questo software: http://www.winimage.com/download.htm

Puoi provare con questo.

Ciao
Matteo

Rinaldo

ciao
ho questo problema:
sul mio portatile asus non recentissimo non funziona il lettore ottico. il bios non permette boot da usb e adesso devo pure sostituire l’hard disk.
vorrei montargli un hard disk con il s.o. già sopra; si trova un’immagine da copiarci sopra perchè si accenda? o c’è un modo per copiarcela? che consigli?
grz