Hvordan bruke DD-kommandoen til å kopiere VHD-filer til fysisk harddisk



Prøv Instrumentet Vårt For Å Eliminere Problemer

Virtual Hard Disk (VHD) filer er gigantiske filer som etterligner bruken av fysiske medier på VirtualBox og noen andre virtuelle x86 / x86_64 emulatorer. Dette lar deg kjøre Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 eller til og med andre versjoner av Linux i Linux-distribusjonen. Disse filene lar deg ikke skrive innholdet direkte til en fysisk disk via dd-kommandoen som lar deg gjøre det samme med en ISO, men det er en måte å gjøre det på. Mens noen guider krever at du konverterer VHD-filen til en ISO, trenger du ikke å gjøre dette hvis du kjører VirtualBox på en hvilken som helst moderne versjon av Linux. QEMU-brukere har også en vei ut, selv om det innebærer mer å spille rundt.



Du må sørge for at ingen av stasjonene eller partisjonene du skal jobbe med er den du starter fra. Vi brukte nettopp et stykke partisjonert NAND-minne for dette eksemplet, men du vil kanskje bruke en live DVD eller USB-oppstart hvis du ellers ikke ville være i stand til å gjøre det. Uansett hvilken måte du startet maskinen på, kan du starte terminalprogrammet ved å holde nede Ctrl, Alt og T, søke etter det på Ubuntu Dash eller åpne det fra undermenyene Systemverktøy i Xfce4 eller LXDE.



Metode 1: Bruke VBoxManage fra ledeteksten

Den enkleste måten å gjøre dette på er å bruke en tradisjonell VirtualBox-installasjon. Forsikre deg først om at du har sikkerhetskopiert alle dataene du er bekymret for å miste, fordi du skal ødelegge data på destinasjonens fysiske maskinvare, mens du også kan ende opp med å gjøre noe med VHD- eller VHDX-filen i prosessen. Dette gjelder også den andre metoden, så vel som alt som involverer kommandoer som er denne destruktive.



Når du er sikker på at alt er trygt og at destinasjonsstasjonen ikke er montert, men fortsatt er koblet til maskinen, kan du si en ekstern harddisk som du fremdeles har koblet til, men ikke er montert eller til og med er rå, da du mister alt på den i prosessen, kjør VBoxManage clonehd freeBSD.VHDX –format RAW freeBSD.RAW mens du erstatter freeBSD.VHDX med din virtuelle harddisk. Vi hadde en virtuell harddiskfil med en litt moderat installasjon av FreeBSD for testformål, derav navnet.

Så snart denne kommandoen er ferdig, kjør sudo dd if = freeBSD.RAW av = / dev / sde , erstatte navnet på RAW-filen med RAW du nettopp opprettet, og SDB-blokkenheten med enheten du faktisk er interessert i. Hvis du er usikker, kan du alltid kjøre sudo fdisk -l for å sikre at du vet riktig partisjonsnavn. Akkurat som med å bruke dd til noe annet, vil du ikke skrive til feil enhet.

Du kan få en feilmelding om at det ikke er plass igjen på enheten, akkurat som om du prøvde å skrive en stor fil til en mindre enhet, men dette forårsaket ikke problemer i tester. Det ser ut til at denne prosessen legger til ekstra nuller. Ellers har du vært i stand til å kopiere den virtuelle disken til en fysisk disk i bare to trinn med et minimum av tulling.



Metode 2: Med QEMU Disk Network Block Device Server Command

Brukere som bare har tilgang til QuickEMulator (QEMU) virtualiseringssystem, må håndtere en litt mer involvert prosedyre enn de som har tilgang til VBoxManage-kommandoen. Kjør ved ledeteksten sudo modprobe nbd etterfulgt av qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , med filnavnet endret for å gjenspeile det faktiske filnavnet du jobber med. Du kan trenge sudo for å kjøre qemu-nbd, avhengig av hvordan du har konfigurert installasjonen. Hvis du kopierer kommandoene herfra og limer dem inn, må du huske å endre dem før du kjører dem. I de fleste tilfeller vil du bare ha ndb0-enheten å bekymre deg for her, så du bør ikke ha noen problemer der.

Når det er gjort, kan du skrive partisjonen med qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd etterfulgt av sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , men husk å erstatte enhetsfilene med de du faktisk er interessert i å bruke. Hvis du kopierer og limer disse inn i din egen terminal, må du sørge for å erstatte filnavnene og partisjonsnumrene med de du prøver å skrive til. Vår / dev / sde-enhet var bare et brukt SDHC-kort vi brukte for å trygt teste dette uten å skade noe. Du trenger kanskje sudo for å kjøre qemu-nbd, men du trenger ikke det. På samme måte kan det hende du må slippe partisjonsnumrene, avhengig av konfigurasjonen. QEMU-prosessen er ikke så intuitiv av disse grunnene.

Hyper-V-brukere kan ha et VHDX-bilde i stedet for en VHD-fil. Hvis dette er tilfelle, må du i stedet løpe qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd mens du erstatter filnavnet igjen. Mens dette formatet var et tillegg til Windows Server 2012 for å legge til større lagringskapasitet til virtualiserte maskiner, henvender flere og flere Linux-brukere seg til det for å unnslippe 2 TB-grensen VHD har. Ellers bør disse instruksjonene fungere uavhengig av den aktuelle filstørrelsen. GNU ddrescue-verktøyet skal fungere som dd, selv om det sørger for å kopiere de beste blokkene først.

Når dette er kjørt, må brukere som arbeider med VHDX-bilder kjøre sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , erstatter igjen filene ovenfor. Ellers kan alle med alle typer VirtualBox-bilder bruke qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd å montere den aktuelle partisjonen som om det var en gammel disk. Du må bruke sudo mount / dev / nbd2 / cdrom eller sudo mount / dev / nbd2 / mnt å montere den. Forsikre deg om at du ikke har noe annet montert på katalogene / cdrom eller / mnt før du prøver det.

Metode 3: Demontere og deretter koble fra filen

For å demontere bildet, trenger du bare å bruke sudo umount / mnt eller sudo umount / cdrom for å løsne den. Selve Linux-kjernen var tross alt opptatt av å behandle den som om det var noe annet volum.

Du må likevel koble den fra QEMU-systemet, så skriv qemu-ndb -d / dev / nbd2 for å koble den fra.

4 minutter lest