3

Я пытаюсь загрузить существующую установку Windows XP под Linux. Под VMWare Fusion это был кусок пирога, но я выдернул свои волосы, чтобы сделать то же самое в Ubuntu 10.10.

Сначала я попробовал VMWare Server. (Виртуальная машина - это сетевой сервис.) После долгих усилий Windows, похоже, загружается, но консольного взаимодействия нет, поэтому я не могу ввести лицензионный ключ Windows, и сама VMWare, похоже, часто дает сбой. Это официально в конце поддержки, так что я думаю, что это не очень хорошая идея для недавнего рабочего стола Ubuntu.

VirtualBox устанавливается очень легко, и я могу загрузить файл .vmdk, который я использовал в VMWare. К сожалению, процесс занял слишком много времени, и мне нужно использовать новый образ машины. Я использовал эти команды, чтобы снова клонировать диск:

sudo dd if=/dev/sdf2 of=powerhouse.dd
VBoxManage convertfromraw powerhouse.dd powerhouse.vdi

Но я продолжаю получать это сообщение и не ОС:

A disk read error occurred
Press Ctrl+Alt+Del to restart

Я предполагаю, что я пытаюсь загрузить неразмеченный образ. Могу ли я добавить карту разделов в существующий VDI или каков правильный процесс для этого? (И не являются ли неразделенные изображения просто устаревшим раздражением в наше время?)

2 ответа2

2

Это может быть сложный процесс, чтобы получить абсолютно правильный. На странице VirtualBox.org есть инструкции, описывающие общий процесс, чтобы сделать это, а также некоторые подводные камни: http://www.virtualbox.org/wiki/Migrate_Windows - в частности, он призывает к тому, что простое использование dd для создания образа раздела не будет работа (как вы узнали).

Сокращенная версия - получите число байтов для устройства, которое вы будете использовать, и направьте устройство в VBoxManage, чтобы создать диск:

# fdisk -l /dev/sdf
Disk /dev/sdf: 1500.3 GB, 1500301910016 bytes
# cat /dev/sdf | VBoxManage convertfromraw stdin OutPutFile.vdi 1500301910016

Если у вас есть другие данные на этом устройстве, которые вы действительно не хотите передавать, вам понадобится более сложная утилита клонирования, такая как Clonezilla, которая может занимать только один раздел (и соответствующую информацию о загрузчике) и "клонировать". "это на новый диск. При таком сценарии вы берете образ, затем запускаете новую виртуальную машину (возможно, загружая Clonezilla Live ISO) с пустого виртуального жесткого диска, на который вы будете записывать клонированный образ.

0

Необходимо скопировать скопированный раздел с MBR и соответствующим количеством места перед разделом. Для многих дисков это будет в общей сложности 63 (0x3F) x 512K блоков, но для более новых дисков это может быть иначе.

У меня был успех с таким подходом:

  • Создайте новое настроенное изображение MBR, содержащее только один раздел:$ sudo dd if =/dev/sdf count = 63 | xxd> new-mbr.img.xxd $ vim new-mbr.img.xxd

  • Постройте изображение:

    $ { xxd -r new-mbr.img.xxd; dd if=/dev/sdf2; } \
      | VBoxManage convertfromraw stdin newdrive.vdi \
                                        $(( $partition_bytes + 63 * 512 ));
    

Поскольку для этого вам нужно понять двоичный формат MBR , может быть проще сохранить существующую MBR, а затем исправить ее с помощью [sc]?fdisk , запустив Live / Rescue CD на виртуальной машине перед загрузкой полученного .vdi.

Получить размер раздела ($partition_bytes) также может быть непросто, думаю, я понял это, прочитав значение в MBR и умножив его на размер блока (512). Я думаю, что sfdisk --dump также даст вам это значение.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .