3

Я пытаюсь сумасшедшие вещи здесь. Во-первых, у меня была машина VirtualBox с установленной Windows XP в формате .vdi. Затем я экспортировал изображение в OVA, извлек .vmdk и преобразовал его в необработанный файл .img. Затем я создал новую виртуальную машину в KVM через virt-manager, загрузил этот образ как жесткий диск и запустил его.

Теперь я пытаюсь скопировать весь этот образ в раздел диска через dd и загрузить первый раздел NTFS внутри этого образа при загрузке через grub . До сих пор я уже создал первый раздел внутри образа (фактический раздел NTFS), и он был распознан как gParted как NTFS, так и grub как установка Windows, но я не могу загрузить его. Поэтому я попытался скопировать весь образ, включая таблицу разделов, загрузочный сектор и прочее, в этот физический раздел /dev/sda4 . Теперь изображение загружается через KVM, но я не могу найти способ добавить его в Grub. Я пытаюсь найти способ сделать это с помощью монтирования цикла, я просто не знаю, как config grub монтирует / отображает / загружает этот образ и получает доступ к первому (NTFS) разделу внутри него.

Что я хочу сделать:

- Turn my XP image into a valid physical installation to dual boot
- Keep the VM running from this disk partition

Таким образом, если возможно, я буду использовать виртуальную машину в Ubuntu или загружать ее в grub.

Для пояснения, команды, которые я использовал:

$ sudo su

# mounts the entire image
$ losetup /dev/loop0 /path/to/WindowsXP.img
$ fdisk -l /dev/loop0

> Device        Boot    Start   End         Blocks      Id  System
> /dev/loop0p1  *       63      31439204    15719571    7   HPFS/NTFS/exFAT

# mounts the first NTFS partition inside image (offset 63*512)
$ losetup /dev/loop1 -o 32256 /dev/loop0

На данный момент у меня есть и раздел NTFS в /dev/loop1 и полный диск (с MBR) в /dev/loop0 . Затем:

# copied the entire image to /dev/sda4. This is not recognized by GRUB, 
# therefore it must be loopmounted before booted via grub config somehow
$ dd if=/dev/loop0 of=/dev/sda4 bs=10m

# copied the NTFS virtual partition to physical one
# GRUB should recognize and boot it, since is a valid XP install, however it misses the partition table,
# so the virtual machine won't be able to boot it.
$ dd if /dev/loop1 of=/dev/sda4 bs=10m

В качестве альтернативы я подумал о втором образе диска, подключенном к ВМ, только с GRUB и минимальной информацией для загрузки этого раздела. Таким образом, я мог бы сохранить раздел NTFS на /dev/sda4 для двойной загрузки и загрузиться со второго крошечного образа в KVM.

Идеи?

1 ответ1

0

Отказ от ответственности: это скорее предложение, а не информированный ответ.

Поскольку кажется, что вы можете скопировать раздел Windows в допустимый физический раздел (/dev/sda4), почему бы вам просто не загрузить /dev/sda на виртуальной машине? Затем вы можете загрузиться в раздел Windows, выбрав опцию Windows в GRUB. Похоже, что такая настройка была сделана раньше: https://bbs.archlinux.org/viewtopic.php?id=68216

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