Sådan bruges DD-kommandoen til at kopiere VHD-filer til fysisk harddisk



Prøv Vores Instrument Til At Fjerne Problemer

Virtual Hard Disk (VHD) filer er gigantiske filer, der efterligner brugen af ​​fysiske medier på VirtualBox og nogle andre virtuelle x86 / x86_64 emulatorer. Dette giver dig mulighed for at køre Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 eller endda andre versioner af Linux i din Linux-distribution. Disse filer lader dig ikke direkte skrive deres indhold til en fysisk disk via dd-kommandoen, der lader dig gøre det samme med en ISO, men der er en måde at gøre det på. Mens nogle guider kræver, at du konverterer VHD-filen til en ISO, behøver du ikke gøre dette, hvis du kører VirtualBox på enhver moderne version af Linux. QEMU-brugere har også en vej ud, selvom det indebærer mere at lege rundt.



Du bliver nødt til at sikre dig, at ingen af ​​de drev eller partitioner, du skal arbejde med, er den, du starter fra. Vi brugte lige et stykke partitioneret NAND-hukommelse til dette eksempel, men du vil muligvis bruge en live DVD eller USB-boot, hvis du ellers ikke ville være i stand til at gøre det. Uanset hvilken måde du startede den pågældende maskine på, start dit terminalprogram enten ved at holde Ctrl, Alt og T nede, søge efter det på Ubuntu Dash eller åbne det fra undermenuerne System Tools i Xfce4 eller LXDE.



Metode 1: Brug af VBoxManage fra kommandoprompten

Langt den nemmeste måde at gøre dette på er at bruge en traditionel VirtualBox-installation. Sørg først for, at du har sikkerhedskopieret alle de data, du er bekymret for at miste, fordi du vil ødelægge data på destinationens fysiske hardware, mens du også kan ende med at gøre noget med VHD- eller VHDX-filen i processen. Dette gælder også for den anden metode såvel som alt andet, der involverer kommandoer, der er denne destruktive.



Når du er sikker på, at alt er sikkert, og at destinationsdrevet er afmonteret, men stadig er fastgjort til maskinen, skal du sige en ekstern harddisk, som du stadig har tilsluttet, men ikke er monteret eller måske endda er rå, da du mister alt på den kør i processen VBoxManage clonehd freeBSD.VHDX –format RAW freeBSD.RAW mens du udskifter freeBSD.VHDX med din virtuelle harddisk. Vi havde en virtuel harddiskfil med en noget moderat installation af FreeBSD til testformål, deraf navnet.

Så snart denne kommando er færdig, skal du køre sudo dd hvis = freeBSD.RAW af = / dev / sde , erstatter RAW-filens navn med den RAW, du lige har oprettet, og sde-blok-enheden med den enhed, du faktisk er interesseret i. Hvis du er i tvivl, kan du altid køre sudo fdisk -l for at sikre, at du kender det rigtige partitionsnavn. Ligesom ved brug af dd til noget andet, vil du ikke skrive til den forkerte enhed.

Du får muligvis en fejl om, at der ikke er plads tilbage på enheden, ligesom hvis du forsøgte at skrive en stor fil til en mindre enhed, men dette medførte ikke problemer i test. Det ser ud til, at denne proces tilføjer ekstra nuller. Ellers har du været i stand til at kopiere den virtuelle disk til en fysisk disk i kun to trin med et minimum af narre.



Metode 2: Med QEMU Disk Network Block Device Server Command

Brugere, der kun har adgang til QuickEMulator (QEMU) virtualiseringssystem, bliver nødt til at håndtere en lidt mere involveret procedure end dem, der har adgang til VBoxManage-kommandoen. Kør ved kommandoprompten sudo modprobe nbd efterfulgt af qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , med filnavnet ændret for at afspejle det faktiske filnavn, du arbejder med. Du har muligvis brug for sudo for at køre qemu-nbd, afhængigt af hvordan du har konfigureret din installation. Hvis du kopierer kommandoerne herfra og indsætter dem, skal du sørge for at ændre dem, før du kører dem. I de fleste tilfælde har du kun nogensinde ndb0-enheden at bekymre dig om her, så du bør ikke have nogen problemer der.

Når det er gjort, kan du skrive partitionen med qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd efterfulgt af sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , men husk at erstatte enhedsfilerne med dem, du rent faktisk er interesseret i at bruge. Hvis du kopierer og indsætter disse i din egen terminal, skal du sørge for at erstatte disse filnavne og partitionsnumre med dem, du prøver at skrive til. Vores / dev / sde-enhed var blot et brugt SDHC-kort, vi brugte til sikkert at teste dette uden at beskadige noget. Du har muligvis brug for sudo for at køre qemu-nbd, men du skal ikke have brug for det. Ligeledes skal du muligvis slippe partitionsnumrene afhængigt af din konfiguration. QEMU-processen er ikke nær så intuitiv af disse grunde.

Hyper-V-brugere kan have et VHDX-billede i stedet for en VHD-fil. Hvis dette er tilfældet, skal du i stedet køre qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd mens du erstatter filnavnet igen. Mens dette format var en tilføjelse til Windows Server 2012 for at tilføje større lagerkapacitet til virtualiserede maskiner, henvender flere og flere Linux-brugere sig til det for at undslippe 2 TB-grænsen, som VHD har. Ellers skal disse instruktioner fungere uanset den aktuelle filstørrelse. GNU ddrescue-værktøjet skal fungere som dd, selvom det først sørger for at kopiere de bedste blokke.

Når dette er kørt, skal brugere, der arbejder med VHDX-billeder, køre sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , igen udskiftning af filerne ovenfor. Ellers kan alle med alle typer VirtualBox-billeder bruge qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd at montere den pågældende partition som om det var en gammel disk. Du bliver nødt til at bruge sudo mount / dev / nbd2 / cdrom eller sudo mount / dev / nbd2 / mnt at montere det. Sørg for, at du ikke har noget andet monteret på / cdrom eller / mnt-mapperne, før du prøver det.

Metode 3: Afmontering og derefter frakobling af filen

For at afmontere billedet skal du blot bruge det sudo umount / mnt eller sudo umount / cdrom for at løsne det. Selve Linux-kernen var trods alt travlt med at behandle det som om det var et andet volumen.

Du skal dog stadig frakoble det fra QEMU-systemet, så skriv det qemu-ndb -d / dev / nbd2 for at afbryde den.

4 minutter læst