Как да използвам DD командата за копиране на VHD файлове на физически твърд диск



Опитайте Нашия Инструмент За Премахване На Проблемите

Файловете с виртуален твърд диск (VHD) са гигантски файлове, които емулират използването на физически носител на VirtualBox и някои други виртуални емулатори x86 / x86_64. Това ви позволява да стартирате Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 или дори други версии на Linux във вашата Linux дистрибуция. Тези файлове не ви позволяват директно да записвате съдържанието им на физически диск чрез командата dd, която ви позволява да направите същото с ISO, но има начин да го направите. Въпреки че някои ръководства изискват да конвертирате VHD файла в ISO, няма да е необходимо да правите това, ако използвате VirtualBox на която и да е модерна версия на Linux. Потребителите на QEMU също имат изход, въпреки че това включва повече игра.



Ще трябва да се уверите, че нито едно от устройствата или дяловете, с които ще работите, не е това, от което стартирате. Току-що използвахме част от разделена NAND памет за този пример, но може да искате да използвате зареждане на DVD или USB на живо, ако в противен случай не бихте могли да го направите. Независимо по какъв начин сте стартирали въпросната машина, стартирайте вашата терминална програма, като задържите Ctrl, Alt и T, като я потърсите в Ubuntu Dash или я отворите от подменюто System Tools в Xfce4 или LXDE.



Метод 1: Използване на VBoxManage от командния ред

Несъмнено най-лесният начин да направите това е да използвате традиционна инсталация на VirtualBox. Уверете се първо, че сте направили резервно копие на всички данни, за които се притеснявате да не ги загубите, защото ще унищожите всички данни на физическия хардуер на дестинацията, като същевременно бихте могли да свършите нещо с VHD или VHDX файла в процеса. Това важи и за другия метод, както и за всичко, включващо команди, които са толкова разрушителни.



След като сте сигурни, че всичко е безопасно и че целевото устройство е демонтирано, но все още е прикрепено към машината, кажете външен твърд диск, който все още сте включили, но не е монтиран или дори може да е суров, тъй като ще загубите всичко на него в процеса, стартирайте VBoxManage clonehd freeBSD.VHDX –формат RAW freeBSD.RAW докато замествате freeBSD.VHDX с вашия виртуален твърд диск. Имахме виртуален файл на твърд диск с малко умерена инсталация на FreeBSD за целите на тестването, откъдето идва и името.

Веднага след като тази команда приключи, изпълнете sudo dd, ако = freeBSD.RAW от = / dev / sde , заменяйки името на RAW файла с RAW, който току-що създадохте, и устройството sde block с устройството, от което всъщност се интересувате. Ако не сте сигурни, винаги можете да стартирате sudo fdisk -l за да сте сигурни, че знаете правилното име на дял. Точно както при използването на dd за нещо друго, не искате да пишете на грешното устройство.

Може да получите грешка, че на устройството не е останало място, точно както ако сте се опитали да напишете голям файл на по-малко устройство, но това не е причинило проблеми при тестовете. Изглежда този процес добавя допълнителни нули. В противен случай сте успели да копирате виртуалния диск на физически диск само в две стъпки с минимум глупости.



Метод 2: С командата QEMU Disk Network Block Device Server

Потребителите, които имат достъп само до системата за виртуализация Quick Emulator (QEMU), ще трябва да се справят с малко по-ангажирана процедура от тези, които имат достъп до командата VBoxManage. В командния ред стартирайте sudo modprobe nbd следван от qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , с името на файла, променено, за да отразява действителното име на файла, с който работите. Може да се нуждаете от sudo, за да стартирате qemu-nbd, в зависимост от това как сте конфигурирали вашата инсталация. Ако копирате командите от тук и ги поставяте, не забравяйте да ги промените, преди да ги стартирате. В повечето случаи тук ще се притеснявате само за устройството ndb0, така че не би трябвало да имате проблеми там.

След като приключите, можете да напишете дяла с qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd следван от sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , но не забравяйте да замените файловете на устройството с тези, които всъщност искате да използвате. Ако копирате и поставяте тези в своя терминал, не забравяйте да замените тези имена на файлове и номера на дялове с тези, на които се опитвате да пишете. Нашето / dev / sde устройство беше просто използвана SDHC карта, която използвахме, за да тестваме безопасно това, без да повредим нищо. Може да се нуждаете от sudo, за да стартирате qemu-nbd, но не трябва да се нуждаете от него. По същия начин може да се наложи да изпуснете номерата на дяловете в зависимост от вашата конфигурация. По тези причини процесът QEMU не е толкова интуитивен.

Потребителите на Hyper-V може да имат VHDX изображение вместо VHD файл. Ако случаят е такъв, вместо това ще трябва да стартирате qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd докато заменяте името на файла още веднъж. Въпреки че този формат беше допълнение към Windows Server 2012, за да се добави по-голям капацитет за съхранение на виртуализирани машини, все повече потребители на Linux се обръщат към него, за да избегнат ограничението от 2TB, което VHD има. В противен случай тези инструкции трябва да работят независимо от реалния размер на въпросния файл. Инструментът GNU ddrescue трябва да работи като dd, макар че първо трябва да копира най-добрите блокове.

След като това се изпълни, потребителите, работещи с VHDX изображения, ще трябва да стартират sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , отново заменяйки файловете горе. В противен случай всеки с всички видове изображения на VirtualBox може да използва qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd да монтирате въпросния дял, сякаш е някакъв стар диск. Ще трябва да използвате sudo mount / dev / nbd2 / cdrom или sudo mount / dev / nbd2 / mnt за да го монтирате. Уверете се, че не сте монтирали нищо друго в директориите / cdrom или / mnt, преди да опитате.

Метод 3: Демонтиране и след това изключване на файла

За да демонтирате изображението, просто трябва да използвате sudo umount / mnt или sudo umount / cdrom да го откачите. В края на краищата самото ядро ​​на Linux беше заето да се третира с него като с друг том.

Все пак ще трябва да го изключите от системата QEMU, така че напишете qemu-ndb -d / dev / nbd2 за да го изключите.

4 минути четене