вторник, 22 октября 2013 г.

Запуск установленной ОС Windows XP в VirtualBox 4.1 из-под Ubuntu

Основные проблемы: как подружить VirtualBox с реальным разделом, как воевать с бесконечным циклом после acpitabl.dat, что делать с появляющимся BSOD с кодом 7b.





Речь идёт о варианте, который прокатил, возможно, что-то могло быть проще и лучше.

Основная информация взята отсюда.

Вначале нужно создать vmdk диск, который будет ссылаться на реальные тома и хранить в себе MBR.
Получить MBR и сохранить его в файл можно с помощью одноимённой программы:


sudo apt-get install mbr


sudo install-mbr --force /home/$USER/.myBootRecord.mbr && sudo chmod +rwx /home/$USER/.myBootRecord.mbr

Для создания виртуального диска, ссылающегося на реальные разделы, нужно посмотреть номера этих разделов в реальном диске. Проще всего командой sudo fdisk -l. Нужно обратить внимание на загрузочный раздел, он помечен звёздочкой (*). Например, если он /dev/sda1, то его номер — 1, если /dev/sda2 — то 2 и т.д. У меня на нём стояла винда, и этого одного раздела мне было достаточно. Поэтому в моём случае достаточно номера 1.
Виртуальный диск создаётся следующей командой:

VBoxManage internalcommands createrawvmdk -filename /home/$USER/VirtualBox/Sda1MBR.vmdk -rawdisk /dev/sda -partitions 1 -mbr /home/$USER/.myBootRecord.mbr -relative


Если каталога /home/$USER/VirtualBox нет, его надо создать вручную или поменять на что-нибудь своё существующее.

Разделы, на которые нужно ссылаться, перечислены после ключа -partitions. В моём случае там только "1". Несколько штук надо перечислять через запятую, например, "-partitions 3,5".

Полученный виртуальный диск (в виде двух файлов: Sda1MBR.vmdk и Sda1MBR-pt.vmdk) создан от рута, поэтому для работы с ним через VirtualBox, обычно запускаемый от простого пользователя, необходимо откорректировать права доступа, проще всего сменой владельца:

sudo chown $USER /home/$USER/VirtualBox/Sda1MBR*
 Возможно появление ошибки доступа при добавлении диска, например:
Permission problem accessing the file for the medium '/xxx/yyy/zzz/ddd.vmdk' (VERR_ACCESS_DENIED)").
В этом случае надо убедиться, что пользователь, который добавляет этот диск ($USER), принадлежит группе vboxusers.

При создании виртуальной машины выбираем /home/$USER/VirtualBox/Sda1MBR.vmdk как существующий диск. В моём случае пришлось прицепить его к виртуальному контроллеру IDE, а не SATA, как было в реальной системе. Изначальное прицепливание к SATA приводило к синему экрану с кодом 7b. Перевод на IDE снял эту проблему.


Источники:

http://habrahabr.ru/sandbox/37839/

http://social.technet.microsoft.com/Forums/en-US/19402d17-3239-4e8b-b6c6-e06f45f3a123/windows-server-2003-bsod-with-stop-0x0000007b

Комментариев нет: