Jak mogę sklonować dysk twardy bezpośrednio na obraz vdi

37

Chciałbym zrobić obraz VirtualBox .vdi z mojego dysku twardego.

Znalazłem instrukcje online, jak to zrobić, najpierw wykorzystując DD do utworzenia obrazu .raw, a następnie używając VBoxManage do konwersji .raw na .vdi. SO, jeśli mój dysk twardy ma pojemność 1 TB, proces ten (tymczasowo) wymaga 2 TB miejsca do przechowywania plików .raw i .vdi.

Mam tylko trochę więcej niż 1 TB wolnego miejsca. Czy istnieje sposób na utworzenie obrazu .vdi dysku twardego bez konieczności tworzenia obrazu .raw?

SuperElectric
źródło
Jest to ryzykowne, ale jeśli masz dysk twardy, który chcesz P2V, możesz utworzyć obraz na dysku zapasowym za około 1 TB za darmo. Następnie sformatuj oryginalny dysk i skopiuj plik RAW na oryginalny dysk. Następnie przekonwertuj RAW na VDI z powrotem na główny dysk. Jeśli jednak się zepsuje (może się zdarzyć), utkniesz z obrazem RAW i nie ma oryginału.
kobaltz
@kolbatz Rozważyłem to, ale pomyślałem, że ma dużą szansę na porażkę. Gdy obrazuję dysk twardy, wynikowy plik .raw ma rozmiar dysku twardego. Ale zanim skopiuję plik z powrotem na oryginalny dysk, muszę nadać temu systemowi plików. Wymaga to zapisania niektórych metadanych na dysku, pozostawiając za mało miejsca do przechowywania pliku o rozmiarze dysku.
SuperElectric

Odpowiedzi:

53

Możesz bezpośrednio utworzyć obraz za pomocą VBoxManage convertfromraw. Najpierw odmontuj urządzenie, a następnie:

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

Zamień na /dev/sdadowolny dysk lub partycję, którą chcesz sklonować.

Być może trzeba to zrobić jako root, aby uzyskać dostęp do urządzenia. Jeśli tak, powinieneś zmienić własność gotowego obrazu.

użytkownik235224
źródło
2
Działa pięknie i od razu w systemie OSX, gdy masz zainstalowany VirtualBox. Dziękujemy za wskazanie tego rozwiązania
JosFabre 16.04.16
8

Próbowałem zaakceptowanego rozwiązania, ale dla mnie nie powiodło się:

# 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

Może nie mógł wykryć rozmiaru, ponieważ dysk został podłączony przez USB?

Zamiast tego mam rozmiar dysku fdisk -l

Disk /dev/sdg: 160.0 GB, 160041885696 bytes

A potem użyłem standardowej formy konwersji zrawraw

# 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)...
Daniel
źródło
2

Istnieją inne bezpieczniejsze sposoby utworzenia pliku bieżącego systemu, z którymi Virtualbox może współpracować. Pliki Vdi są plikami specyficznymi dla virtualboksa i zwykle są generowane tylko przez VB z nowej instalacji wirtualnego dysku twardego.

Masz wiele innych opcji.

Niedawno użyłem disk2vhd do stworzenia .VHD (Microsoft Virtual Hard Disk), który Virtualbox pięknie zaimportował. (Chociaż był to system XP) Nie sądzę, aby działał dobrze z innymi systemami operacyjnymi.

Alternatywnie istnieje narzędzie konwertera Vmwares, które może eksportować twój system do różnych formatów, z których może korzystać virtualbox i inne platformy. Istnieją otwarte standardy dla tego rodzaju rzeczy.

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

Skandalist
źródło
2
Dlaczego Twoim zdaniem te metody są „bezpieczniejsze”?
andcoz
disk2vhd używa migawki woluminu, co oznacza, że ​​można go użyć do klonowania systemu podczas jego działania.
mwfearnley
„Nie sądzę, aby działał dobrze z innym systemem operacyjnym” -> no cóż, faktycznie działa, po prostu z powodzeniem dublował Windows 10 z disk2vhd, działał bezbłędnie!
Henrique de Sousa