Hoe u de DD-opdracht gebruikt om VHD-bestanden naar de fysieke harde schijf te kopiëren



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Virtual Hard Disk (VHD) -bestanden zijn gigantische bestanden die het gebruik van fysieke media op VirtualBox en enkele andere virtuele x86 / x86_64-emulators emuleren. Hiermee kun je Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 of zelfs andere versies van Linux binnen je Linux-distributie draaien. Met deze bestanden kun je hun inhoud niet rechtstreeks naar een fysieke schijf schrijven via de opdracht dd waarmee je hetzelfde kunt doen met een ISO, maar er is een manier om het te doen. Hoewel sommige handleidingen vereisen dat u het VHD-bestand naar een ISO converteert, hoeft u dit niet te doen als u VirtualBox op een moderne versie van Linux gebruikt. QEMU-gebruikers hebben ook een uitweg, hoewel er meer moet worden gespeeld.



U moet ervoor zorgen dat geen van de schijven of partities waarmee u gaat werken, degene is waarvan u opstart. We hebben zojuist een stukje gepartitioneerd NAND-geheugen gebruikt voor dit voorbeeld, maar misschien wilt u een live dvd of USB-opstart gebruiken als u dat anders niet zou kunnen. Ongeacht de manier waarop u de machine in kwestie hebt opgestart, start u uw terminalprogramma door Ctrl, Alt en T ingedrukt te houden, ernaar te zoeken op de Ubuntu Dash of het te openen vanuit de submenu's van Systeemwerkset in Xfce4 of LXDE.



Methode 1: VBoxManage gebruiken vanaf de opdrachtprompt

Verreweg de gemakkelijkste manier om dit te doen, is door een traditionele VirtualBox-installatie te gebruiken. Zorg ervoor dat u eerst een back-up hebt gemaakt van alle gegevens waarvan u zich zorgen maakt over het verlies, omdat u alle gegevens op de fysieke hardware van de bestemming gaat vernietigen, terwijl u tijdens het proces ook iets aan het VHD- of VHDX-bestand kunt doen. Dit geldt ook voor de andere methode, evenals voor alles met opdrachten die zo destructief zijn.



Als je eenmaal zeker weet dat alles veilig is en dat de doelschijf is ontkoppeld maar nog steeds aan de machine is bevestigd, zeg je een externe harde schijf die je nog steeds hebt aangesloten maar niet is aangekoppeld of misschien zelfs onbewerkt is, omdat je alles erop kwijtraakt in het proces, ren VBoxManage clonehd freeBSD.VHDX - RAW-indeling freeBSD.RAW terwijl u freeBSD.VHDX vervangt door uw virtuele harde schijf. We hadden een virtueel harddisk-bestand met een ietwat gematigde installatie van FreeBSD voor testdoeleinden, vandaar de naam.

Zodra deze opdracht is voltooid, voert u uit sudo dd if = freeBSD.RAW of = / dev / sde , waarbij u de naam van het RAW-bestand vervangt door de RAW die u zojuist hebt gemaakt en het sde-blokapparaat door het apparaat waarin u werkelijk geïnteresseerd bent. Als u het niet zeker weet, kunt u altijd sudo fdisk -l om er zeker van te zijn dat u de juiste partitienaam kent. Net als bij het gebruik van dd voor iets anders, wil je niet naar het verkeerde apparaat schrijven.

Mogelijk krijgt u een foutmelding dat er geen ruimte meer is op het apparaat, net alsof u een groot bestand naar een kleiner apparaat probeert te schrijven, maar dit leverde geen problemen op bij tests. Het lijkt erop dat dit proces extra nullen toevoegt. Anders heb je de virtuele schijf in slechts twee stappen naar een fysieke schijf kunnen kopiëren met een absoluut minimum aan gedoe.



Methode 2: Met de opdracht QEMU Disk Network Block Device Server

Gebruikers die alleen toegang hebben tot het Quick Emulator (QEMU) virtualisatiesysteem zullen te maken krijgen met een iets ingewikkelder procedure dan degenen die toegang hebben tot het VBoxManage commando. Voer bij de opdrachtprompt uit sudo modprobe nbd gevolgd door qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , waarbij de bestandsnaam is gewijzigd om de daadwerkelijke bestandsnaam weer te geven waarmee u werkt. Mogelijk heb je sudo nodig om qemu-nbd uit te voeren, afhankelijk van hoe je je installatie hebt geconfigureerd. Als u de opdrachten van hieruit kopieert en plakt, zorg er dan voor dat u ze wijzigt voordat u ze uitvoert. In de meeste gevallen hoeft u zich hier alleen maar het ndb0-apparaat zorgen te maken, dus u zou daar geen problemen moeten hebben.

Als het klaar is, kunt u de partitie schrijven met qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc onzeTest.vhd gevolgd door sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , maar vergeet niet om de apparaatbestanden te vervangen door bestanden die u daadwerkelijk wilt gebruiken. Als je deze kopieert en in je eigen terminal plakt, zorg er dan voor dat je die bestandsnamen en partitienummers vervangt door degene waarnaar je probeert te schrijven. Ons / dev / sde-apparaat was slechts een gebruikte SDHC-kaart die we gebruikten om dit veilig te testen zonder iets te beschadigen. Mogelijk hebt u sudo nodig om qemu-nbd uit te voeren, maar u zou het niet nodig moeten hebben. Evenzo kan het zijn dat u de partitienummers moet verwijderen, afhankelijk van uw configuratie. Het QEMU-proces is om deze redenen lang niet zo intuïtief.

Hyper-V-gebruikers hebben mogelijk een VHDX-afbeelding in plaats van een VHD-bestand. Als dit het geval is, moet u in plaats daarvan rennen qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd terwijl u de bestandsnaam nogmaals vervangt. Hoewel dit formaat een toevoeging was aan Windows Server 2012 om grotere opslagcapaciteit toe te voegen aan gevirtualiseerde machines, wenden steeds meer Linux-gebruikers zich tot het om te ontsnappen aan de limiet van 2 TB die VHD heeft. Anders zouden deze instructies moeten werken, ongeacht de werkelijke bestandsgrootte in kwestie. De GNU ddrescue-tool zou moeten werken als dd, hoewel het ervoor zorgt dat eerst de beste blokken worden gekopieerd.

Zodra dit is uitgevoerd, moeten gebruikers die met VHDX-images werken, starten sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , opnieuw de bestanden hierboven vervangen. Anders kan iedereen met alle soorten VirtualBox-afbeeldingen gebruiken qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc onzeTest.vhd om de betreffende partitie te mounten alsof het een oude schijf is. U moet sudo mount / dev / nbd2 / cdrom of sudo mount / dev / nbd2 / mnt om het te monteren. Zorg ervoor dat er niets anders is aangekoppeld in de / cdrom- of / mnt-mappen voordat u het probeert.

Methode 3: het bestand ontkoppelen en vervolgens loskoppelen

Om de afbeelding te ontkoppelen, hoeft u alleen maar te gebruiken sudo umount / mnt of sudo umount / cdrom om het los te maken. De Linux-kernel zelf was tenslotte bezig het te behandelen alsof het een ander volume was.

U moet het echter nog steeds loskoppelen van het QEMU-systeem, dus typ qemu-ndb -d / dev / nbd2 om het los te koppelen.

4 minuten gelezen