Как использовать команду DD для копирования файлов VHD на физический жесткий диск —

Файлы Virtual Hard Disk (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 if = freeBSD.RAW of = / dev / sde, заменив имя файла RAW на только что созданный вами RAW, а на блочном устройстве sde — устройство, которое вас действительно интересует. Если вы не уверены, то всегда можете запустить sudo fdisk -l чтобы убедиться, что вы знаете правильное имя раздела. Как и при использовании dd для всего остального, вы не хотите писать не на том устройстве.

Вы можете получить ошибку об отсутствии свободного места на устройстве, как если бы вы пытались записать большой файл на устройство меньшего размера, но это не вызывало проблем в тестах. Кажется, этот процесс добавляет дополнительные нули. В противном случае вы смогли скопировать виртуальный диск на физический диск всего за два шага с минимумом дурачиться.

Способ 2: с помощью команды сервера сетевого устройства диска QEMU

Пользователи, которые имеют доступ только к системе виртуализации 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 обращаются к нему, чтобы преодолеть ограничение в 2 ТБ, которое имеет 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 отключить это.

Ссылка на основную публикацию
Adblock
detector