LINUX.ORG.RU

Запуск виртуальной машины с образа


0

1

Добрый день.

Необходимо запустить VM с образа:

$ file img.raw
img.raw: x86 boot sector, code offset 0x52, OEM-ID "NTFS    ", reserved sectors 0, Media descriptor 0xf8, heads 255, hidden sectors 2048, dos < 4.0 BootSector (0x80)
$ du -h img.raw
51M	img.raw

Пробовал так:

  • qemu -hda img.raw -boot c
    (в окошке) A disk read error occured
    
  • Подключить как образ CD к виртуальной машине в VirtualBox: «Could not get the storage format of the medium: »…/img.raw" (VERR_NOT_SUPPORTED).
  • Подключить его как «существующий жёсткий диск» — та же самая ошибка.
  • Тогда я решил, что, быть может, это образ одного только раздела. А для загрузки-то нужен образ диска. Найдя эту нить, проделал следующее:
    dd if=/dev/zero bs=55M count=1 of=zero
    gparted zero (создал таблицу разделов, один NTFS-раздел на весь объём)
    losetup /dev/loop0 zero
    kpartx -av /dev/loop0
    dd if=img.raw of=/dev/mapper/loop0p1
    kpartx -d /dev/loop0
    losetup -d /dev/loop0
    

    Полученный образ:

    zero: x86 boot sector; partition 1: ID=0x7, starthead 0, startsector 2048, 110592 sectors, code offset 0xb8
    
    Похоже, я делал что-то не то. Qemu говорит «booting from hard disk», ест 100% cpu и ничего внятного не делает. VirtualBox этот образ вовсе не принимает.

Вот, прошу подсказки — куда копать дальше.

> Qemu говорит «booting from hard disk», ест 100% cpu и ничего внятного не делает.
А если натравить на этот файл install-mbr, а потом в ответ на «1234F» ввести 1?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Как-то я про mbr позабыл.

Натравил install-mbr. Отличия в выводе file: code offset 0x31. Запустил в qemu, пишет «MBR FA:», на A выдаёт «MBR 1234F», при выборе 2, 3, 4 снова пишет это меню, 1 выдаёт ту же надпись «A disk read error occured»

Felagund
() автор топика
Ответ на: комментарий от massimus

Сконвертировал образ, обработанный install-mbr. Ведёт себя в VirtualBox так же. Исходный пишет сразу «a disk read error occured».

Felagund
() автор топика

Так, я понял, какой надо задать вопрос. «A disk read error occurred\nPress Ctrl+Alt+Del to restart» — эту надпись пишет BIOS или какой-то начальный загрузчик винды? Гугл выдаёт страничку, где написано, что проблема в винде.

Felagund
() автор топика
Ответ на: комментарий от Felagund

ntldr, bootmgr или что-нибудь похожее? ntoskrnl.exe? winload.exe?

«A disk read error occurred\nPress Ctrl+Alt+Del to restart»

Откройте HEX-редактором и поищите в начале файла эти строчки.
Насколько я помню, так ругается загрузочный сектор Windows.

AITap ★★★★★
()
Ответ на: комментарий от AITap
$ strings img.raw | grep -i 'read error\|restart\|ntldr\|bootmgr'
A disk read error occurred
NTLDR is missing
NTLDR is compressed
Press Ctrl+Alt+Del to restart
A disk read error occurred
NTLDR is missing
NTLDR is compressed
Press Ctrl+Alt+Del to restart

Ни одного exe-файла. В каталогах dir00..dir99 файлы key\d{5} в количестве 21978 штук.

Felagund
() автор топика
Ответ на: комментарий от Felagund

И ещё пустой System Volume Information/MountPointManagerRemoteDatabase

Felagund
() автор топика
Ответ на: комментарий от Felagund

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

AITap ★★★★★
()

qemu ест образы винтов, загрузчик должен быть в mbr

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.