Hoe de DD-opdracht te gebruiken om VHD-bestanden naar fysieke harde schijf te kopiëren
Virtuele harde schijf (VHD) -bestanden zijn gigantische bestanden die het gebruik van fysieke media nabootsen op VirtualBox en sommige andere virtuele x86 / x86_64-emulators. Hiermee kun je Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 of zelfs andere Linux-versies in je Linux-distributie uitvoeren. Met deze bestanden kun je niet rechtstreeks hun inhoud 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 gidsen vereisen dat je het VHD-bestand converteert naar een ISO, hoef je dit niet te doen als je VirtualBox gebruikt op een moderne versie van Linux. QEMU-gebruikers hebben ook een uitweg, hoewel het meer om spelen gaat.
Je moet ervoor zorgen dat geen van de schijven of partities waarmee je gaat werken degene is waar je van start. We hebben zojuist een stuk gepartitioneerd NAND-geheugen gebruikt voor dit voorbeeld, maar misschien wil je een live-dvd of USB-boot gebruiken als je dit anders niet zou kunnen doen. Ongeacht op welke manier u de betreffende machine hebt opgestart, start uw terminalprogramma door Ctrl, Alt en T ingedrukt te houden, ernaar te zoeken op de Ubuntu Dash of door deze te openen vanuit de submenu's Systeemwerkset in Xfce4 of LXDE.
Methode 1: VBoxManage gebruiken vanaf de opdrachtprompt
Verreweg de gemakkelijkste manier om dit te doen, is het gebruik van een traditionele VirtualBox-installatie. Zorg er eerst voor dat je een back-up hebt gemaakt van alle gegevens waarover je je zorgen maakt omdat je alle gegevens op de fysieke hardware van de bestemming gaat vernietigen, terwijl je tijdens het proces ook iets met het VHD- of VHDX-bestand zou kunnen doen. Dit geldt ook voor de andere methode, net als alles met opdrachten die zo destructief zijn.
Zodra je zeker weet dat alles veilig is en dat de bestemmingsdrive is losgekoppeld maar nog steeds aan de machine is bevestigd, zeg je een externe harde schijf die je nog steeds hebt aangesloten, maar die niet is aangekoppeld of misschien zelfs rauw is omdat je alles erop kwijt raakt Voer in dat proces VBoxManage clonehd freeBSD.VHDX -format RAW freeBSD.RAW uit terwijl je freeBSD.VHDX vervangt door je virtuele harde schijf. We hadden een virtueel hardeschijfbestand met een ietwat gematigde installatie van FreeBSD voor testdoeleinden, vandaar de naam.
Zodra dit commando is voltooid, voert u sudo dd if = freeBSD.RAW of = / dev / sde uit, waarbij u de naam van het RAW-bestand vervangt door de RAW die u zojuist hebt gemaakt en het sde block-apparaat met het apparaat waarin u werkelijk bent geïnteresseerd. je bent niet zeker, dan kun je sudo fdisk -l altijd draaien om er zeker van te zijn dat je de juiste partitienaam weet. Net als bij het gebruik van dd voor iets anders, wil je niet naar het verkeerde apparaat schrijven.
U krijgt mogelijk een foutmelding dat er geen ruimte meer is op het apparaat, net als wanneer u een groot bestand naar een kleiner apparaat probeerde te schrijven, maar dit veroorzaakte geen problemen 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 gekopieerd met een minimum aan ronddolen.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikkenMethode 2: Met de QEMU Disk Network Block Device Server Command
Gebruikers die alleen toegang hebben tot het Quick Emulator (QEMU) virtualisatiesysteem zullen te maken krijgen met een iets meer betrokken procedure dan degenen die toegang hebben tot de opdracht VBoxManage. Bij de opdrachtprompt voert u sudo modprobe nbd gevolgd door qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd uit, waarbij de bestandsnaam is gewijzigd om de werkelijke bestandsnaam waarmee u werkt weer te geven. Mogelijk hebt u sudo nodig om qemu-nbd uit te voeren, afhankelijk van hoe u uw installatie hebt geconfigureerd. Als u de opdrachten vanaf hier kopieert en plakt, zorg er dan voor dat u ze wijzigt voordat u ze uitvoert. In de meeste gevallen hoef je je hier alleen zorgen te maken over het ndb0-apparaat, dus daar moet je geen problemen mee hebben.
Als het klaar is, kun je de partitie schrijven met qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd gevolgd door sudo ddrescure -v -f / dev / nbd2 / dev / sde2, maar vergeet niet om vervang de apparaatbestanden door degenen met wie u echt bent geïnteresseerd. Als u deze naar uw eigen terminal kopieert en plakt, moet u ervoor zorgen dat u die bestandsnamen en partitienummers vervangt door de nummers waarnaar u 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. Je hebt sudo nodig om qemu-nbd uit te voeren, maar je zou het niet nodig moeten hebben. Het is ook mogelijk 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 qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd uitvoeren terwijl u de bestandsnaam opnieuw vervangt. Hoewel dit formaat een aanvulling was op Windows Server 2012 om grotere opslagcapaciteit toe te voegen aan gevirtualiseerde machines, wenden steeds meer Linux-gebruikers zich ertoe om te ontsnappen aan de 2TB-limiet 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 de beste blokken eerst worden gekopieerd.
Als dit eenmaal is uitgevoerd, moeten gebruikers die werken met VHDX-afbeeldingen sudo ddrescue -v-f / dev / nbd2 / dev / sde2 uitvoeren, waarbij de bovenstaande bestanden opnieuw worden vervangen. Anders kan iedereen met alle typen VirtualBox-afbeeldingen qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd gebruiken om de betreffende partitie te mounten alsof het een oude schijf is. Je moet sudo mount / dev / nbd2 / cdrom of sudo mount / dev / nbd2 / mnt gebruiken om het te mounten. Zorg ervoor dat je niets anders hebt aangekoppeld naar de / cdrom of / mnt-directory's voordat je het probeert.
Methode 3: Ontkoppelen en vervolgens verbreken van het bestand
Om de afbeelding te ontkoppelen, hoeft u alleen sudo umount / mnt of sudo umount / cdrom te gebruiken om deze te ontkoppelen. De Linux-kernel zelf was tenslotte bezig het te behandelen alsof het een ander volume was.
U moet het echter nog steeds ontkoppelen van het QEMU-systeem, dus typ qemu-ndb -d / dev / nbd2 om het los te koppelen.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken