Come posso clonare un disco rigido direttamente su un'immagine VDI


37

Vorrei creare un'immagine .vdi di VirtualBox dal mio disco rigido.

Ho trovato howto online che descrive questo facendo prima usando DD per creare un'immagine .raw, quindi usando VBoxManage per convertire .raw in .vdi. Quindi, se il mio HD è 1 TB, questo processo (temporaneamente) richiede 2 TB di spazio, per memorizzare sia il .raw che il .vdi.

Ho solo poco più di 1 TB di spazio libero. C'è un modo per creare un'immagine .vdi di un disco rigido, senza prima dover creare un'immagine .raw?


Questo è rischioso, ma se hai il tuo disco rigido che vuoi P2V, allora potresti creare l'immagine sul tuo disco di riserva con circa 1 TB gratuito. Quindi formatta l'unità originale e copia il file RAW sull'unità originale. Quindi riconvertire il RAW in VDI sull'unità principale. Tuttavia, se viene rovinato (potrebbe accadere), allora sei bloccato con un'immagine RAW e senza originale.
Kobaltz,

@kolbatz Ho considerato questo, ma ho pensato che avesse un'alta probabilità di fallimento. Quando immagino il disco rigido, il file .raw risultante ha le dimensioni del disco rigido. Ma prima di copiare il file sull'unità originale, devo fornire all'unità un filesystem. Ciò comporta la scrittura di alcuni metadati sull'unità, lasciando spazio insufficiente per contenere il file delle dimensioni di un'unità.
SuperElectric

Risposte:


53

Puoi creare direttamente un'immagine con VBoxManage convertfromraw. Prima smonta il dispositivo, quindi:

VBoxManage convertfromraw /dev/sda MyImage.vdi --format VDI

Sostituisci /dev/sdacon qualunque disco o partizione desideri clonare.

Potrebbe essere necessario eseguire questa operazione come root per ottenere l'accesso al dispositivo. In tal caso, dovresti cambiare la proprietà dell'immagine finita.


2
Funziona magnificamente e pronto all'uso su OSX quando VirtualBox è installato. Grazie per aver indicato questa soluzione
JosFabre,

8

Ho provato la soluzione accettata ma per me non è riuscita:

# VBoxManage convertfromraw /dev/sdg /path/to/file.vdi --format VDI
Converting from raw image file="/dev/sdg" to file="/path/to/file.vdi"...
Creating dynamic image with size 0 bytes (0MB)...
VBoxManage: error: Cannot create the disk image "/path/to/file.vdi": VERR_INVALID_PARAMETER

Forse non è stato possibile rilevare la dimensione perché il disco era collegato tramite USB?

Quindi invece ho ottenuto la dimensione del disco con fdisk -l

Disk /dev/sdg: 160.0 GB, 160041885696 bytes

E poi ho usato la forma stdin di convertfromraw

# dd if=/dev/sdg | VBoxManage convertfromraw stdin /path/to/file.vdi 160041885696 --format VDI
Converting from raw image file="stdin" to file="/path/to/file.vdi"...
Creating dynamic image with size 160041885696 bytes (152628MB)...

2

Esistono altri modi più sicuri per creare un file del sistema corrente con cui Virtualbox può funzionare. I Vdi sono file specifici di virtualbox e di solito sono generati da VB solo da una nuova installazione del disco rigido virtuale.

Hai molte altre opzioni.

Recentemente ho usato disk2vhd per creare un .VHD (Microsoft Virtual Hard Disk) che Virtualbox ha importato magnificamente. (Anche se era un sistema XP) Non penso che funzioni bene con altri sistemi operativi.

In alternativa c'è lo strumento di conversione di Vmwares che può esportare il tuo sistema in una varietà di formati utilizzabili da virtualbox e da altre piattaforme. Ci sono standard aperti per questo tipo di cose.

http://www.vmware.com/products/converter/features.html


2
Perché questi metodi sono "più sicuri" secondo te?
Andcoz,

disk2vhd utilizza un'istantanea del volume, il che significa che può essere utilizzata per clonare un sistema mentre è in esecuzione.
mwfearnley,

"Non penso che funzioni bene con altri sistemi operativi" -> beh, in realtà lo fa, solo con successo ha rispecchiato un Windows 10 con disk2vhd, ha funzionato perfettamente!
Henrique de Sousa,
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.