Użyj fizycznego dysku twardego w Virtual Box

Odpowiedzi:

87

Zadowolony z komentarza („Prosto”), kiedy to pytanie zostało pierwotnie opublikowane, znalazłem się na tej stronie kilka miesięcy później i szukałem tej samej odpowiedzi


Proste instrukcje

Dzisiaj udało mi się uruchomić z dysków fizycznych. To osiągnięcie wymagało;

  • 60 minut czytania do przodu
  • 30 minut pisze to
  • 20 min. Wypróbowanie różnych opcji w VirtualBox

    Drogi Czytelniku , twoja uwaga skierowana jest na fakt, że równie łatwo jest zabić twoje dane, gdy dostęp do dysku jest w ten sposób. Procedurę, jak to osiągnąć, pozostawia się jako ćwiczenie ...

Zdjęcia (tak się stało :)

grub 2

1. Utwórz dyski vmdk, które odczytują z prawdziwych dysków

Aby utworzyć obraz, który reprezentuje cały fizyczny dysk twardy (który nie będzie zawierał żadnych rzeczywistych danych, ponieważ wszystko to będzie przechowywane na dysku fizycznym), na hoście Linux, użyj polecenia

VBoxManage internalcommands createrawvmdk \
    -filename /path/to/file.vmdk \
    -rawdisk /dev/sda

Musisz mieć dostęp do odczytu do fizycznego pliku urządzenia dyskowego /dev/sda. Aby to osiągnąć, możesz albo zmienić właściciela i prawa dostępu do pliku urządzenia, albo uruchomić VBoxManage internalcommands createrawvmdk… jako root ( sudoprzed komendą).

Na hoście Windows zamiast powyższej specyfikacji urządzenia użyj np. \\. \ PhysicalDrive0. Na hoście Mac OS X użyj np. / Dev / disk1 (i odmontuj wszystkie partycje na dysku 1).

(all on one line)
C:\VirtualBoxDrives>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
    internalcommands createrawvmdk
    -filename C:\VirtualBoxDrives\raw-0.vmdk 
    -rawdisk \\.\PHYSICALDRIVE0

(output)
RAW host disk access VMDK file C:\VirtualBoxDrives\raw-0.vmdk created successf..

 

2. Przypisz dyski vmdk do maszyny wirtualnej

VM -> Ustawienia -> Pamięć -> dodaj ide / sata -> Wybierz istniejący dysk -> przeglądaj

przydzielać

 

3. Ustaw jeden z trybów Writethrough.

Plik -> Virtual Media Manager -> np. Raw-0.vmdk -> [modyfikuj] -> (o) Przechodzenie

  • powtórz dla wszystkich dysków

ustawić na wskroś

 

3. Zmień kolejność uruchamiania (częściowo opcjonalne)

VM -> Ustawienia -> System -> Kolejność rozruchu

[./] Hard Disk
[./] CD/DVD
[  ] Floppy
[  ] Network

VM -> Ustawienia -> Pamięć -> Kontroler: SATA -> np. Raw-5.vmdk -> Dysk twardy: Sata Port 0

 

Odpowiednie rozdziały ( ręczne )

  • Rozdział 9. Tematy zaawansowane

    • 9,9 Zaawansowana konfiguracja pamięci
      • 9.9.1. Używanie surowego dysku twardego hosta od gościa
      • 9.9.1.1. Dostęp do całego fizycznego dysku twardego
         
  • Rozdział 5. Pamięć wirtualna

    • 5.2 Pliki obrazów dysków (VDI, VMDK, VHD, HDD)
    • 5.3 Virtual Media Manager
    • 5.4 Specjalne tryby zapisu obrazu

Wyliczanie fizycznych dysków w systemie Windows:

C:\Users\win7>wmic diskdrive list brief

Caption                               DeviceID            Model                                 Partitions  Size
Samsung SSD 840 EVO 250GB ATA Device  \\.\PHYSICALDRIVE3  Samsung SSD 840 EVO 250GB ATA Device  6           250057228288
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE1  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE2  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE0  ST1000DM003-1CH162 ATA Device         5           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE5  WDC WD1000DHTZ-04N21V0 ATA Device     6           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE4  WDC WD1000DHTZ-04N21V0 ATA Device     5           1000202273280
ST1000DM 003-1CH162 SCSI Disk Device  \\.\PHYSICALDRIVE6  ST1000DM 003-1CH162 SCSI Disk Device  5           1000202273280

Numery dysków można również uzyskać za pomocą programu PowerShell:

PS C:\ Get-Disk
Ярослав Рахматуллин
źródło
7
Bardzo dziękuję za jasne instrukcje krok po kroku. Jednym z moich problemów jest to, że wirtualny plik .vmdk może być własnością mnie jako użytkownika, ale kiedy uruchamiam VirtualBox i próbuje on uzyskać do niego dostęp, generowany jest błąd. Wygląda na to, że fizyczny / dev / sda jest własnością root. Próbowałem zmienić właściciela, ale bez radości - wciąż ten sam błąd. Uruchamianie VirtualBoxa jako root działa (chociaż zawsze jestem ostrożny, jeśli chodzi o uruchamianie dowolnej aplikacji jako root, a jedna taka jak ta z możliwością wielu błędów może mnie przerażać).
Większość dystrybucji ma specjalną grupę, taką jak „dysk” lub „blok”. Urządzenia Bock w / dev / sd? powinny być zapisywane przez użytkowników należących do jednej z tych grup. Sprawdź dokumenty dla swojej dystrybucji.
Ярослав Рахматуллин
1
Ktoś ma to działa na Windows 10? Pojawia się ten błąd: The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).nawet podczas uruchamiania VirtualBox jako administrator.
szx
2
@szx Udało mi się obejść problem VERR_ACCESS_DENIED, wykonując następujące kroki
Epigene
1
Jak ktoś przypadkowo zabiłby swoje dane przez dostęp do dysku typu raw? Myślę, że wiedza, czego nie robić, pomogłaby uniknąć problemów. Instrukcje wyglądają tak prosto ...
Wowfunhappy
6

Dokumentacja VirtualBox dotyczy dostępu do surowego dysku twardego:

http://www.virtualbox.org/manual/ch09.html#rawdisk

Aby utworzyć obraz, który reprezentuje cały fizyczny dysk twardy (który nie będzie zawierał żadnych rzeczywistych danych, ponieważ wszystko to będzie przechowywane na dysku fizycznym), na hoście Linux, użyj polecenia

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda

Spowoduje to utworzenie obrazu /path/to/file.vmdk (musi być bezwzględny), a wszystkie dane zostaną odczytane i zapisane z / dev / sda.

Aby utworzyć specjalny obraz do obsługi surowych partycji (który będzie zawierał niewielką> ilość danych, jak już wspomniano) na hoście Linux, użyj polecenia

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda -partitions 1,5

VirtualBox używa tej samej numeracji partycji co host Linux. W rezultacie liczby podane w powyższym przykładzie odnoszą się odpowiednio do pierwszej partycji podstawowej i pierwszego dysku logicznego w partycji rozszerzonej.

Zobacz dokumentację dla zastrzeżeń i instrukcji specyficznych dla systemu Windows.

trpt4him
źródło
8
Odpowiedzi tylko na link są mniej niż optymalne i zdecydowanie nie zasługują na akceptację, gdy dostępna jest lepsza odpowiedź. * wink wink *
Ярослав Рахматуллин
0

MacOS 10.14:

  1. Utwórz plik dysku wirtualnego odpowiadający rzeczywistemu dyskowi:

    # First, find the device you want to use inside Virtual Box:
    diskutil list  
    
    # Create the virtual disk
    sudo VBoxManage internalcommands createrawvmdk \
            -filename ~/realdisk.vmdk \
            -rawdisk /dev/disk2
    
  2. Uruchom VirtualBox jako superużytkownik:

    sudo VirtualBox
    
  3. Dodaj ~/realdisk.vmdkw Storage --> Controller: Sata.

Max Malysh
źródło
0

Najdłużej nie mogłem tego uruchomić w systemie Windows 10; VERR_ACCESS_DENIEDPodczas próby dołączenia VMDK ciągle pojawiał się błąd.

Byłem jednak (w końcu) w stanie uzyskać ten efekt dzięki kilku sztuczkom:

  1. Otwórz PowerShell jako administrator (nie jestem pewien dlaczego, ale nie udało mi się uzyskać niektórych poleceń do działania w wierszu poleceń administratora)

  2. Uruchom następujące polecenie, aby utworzyć VMDK:

    VBoxManage.exe internalcommands createrawvmdk \
        -filename "path\to\physical\disk\file.vmdk" \
        -rawdisk \\.\PhysicalDrive[n]
    

    ... gdzie path\to\physical\disk\file.vmdkjest plik, który zostanie utworzony w celu reprezentowania dysku, i [n]numer dysku (użyj Zarządzanie dyskami, aby uzyskać ten numer)

  3. Uruchom następujące polecenie, aby dołączyć VMDK:

    VBoxManage.exe storageattach [VM NAME] \
        --storagectl [CONTROLLER] \
        --device 0 \
        --port 0 \
        --type hdd \
        --medium "path\to\physical\disk\file.vmdk"
    

    ... gdzie [CONTROLLER]jest nazwa kontrolera dysku, do którego dołączasz - w moim przypadku „IDE”

  4. Uruchom następujące polecenie, aby uruchomić maszynę wirtualną:

    VBoxManage.exe startvm [VM NAME]
    
Nathan Osman
źródło