3

У меня есть виртуальная машина под управлением Windows 2008 R2 x64 в качестве гостя и Hyper-V R2 x64 в качестве хоста.

Я клонировал VHD-файл виртуальной машины, и теперь я хочу загружаться с него прямо на моем ноутбуке, который является Windows 7 Enterprise X64 SP1 (с аппаратной виртуализацией).

Для этого я настроил запись BCD:

bcdedit /copy {current} /d "Boot_From_VHD"

Запись была успешно скопирована в {1230b942-0833-11e1-abb2-d1169c7203ba}

bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} device vhd=[E:]\vhd\myvhd.vhd
bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} osdevice vhd=[E:]\vhd\myvhd.vhd
bcdedit /set {1230b942-0833-11e1-abb2-d1169c7203ba} detecthal on

bcdedit /enum , я вижу свою запись:

Windows Boot Loader
-------------------
identifier              {1230b942-0833-11e1-abb2-d1169c7203ba}
device                  vhd=[E:]\vhd\myvhd.vhd
path                    \Windows\system32\winload.exe
description             Boot_From_VHD
locale                  en-us
inherit                 {bootloadersettings}
osdevice                vhd=[E:]\vhd\myvhd.vhd
systemroot              \Windows
resumeobject            {1230b940-0833-11e1-abb2-d1169c7203ba}
nx                      OptIn
detecthal               Yes

Когда я перезагружаюсь, я вижу запись в меню загрузки. Если я выберу только что созданную запись, я на несколько секунд вижу логотип Windows, затем BSOD.

Этот BSOD не очень полезен, так как он предлагает только запустить chkdsk . Также ставится связка из 64-битных шестнадцатеричных чисел, но без сообщения об ошибке.

Есть идеи, как решить проблему?

PS: я хочу сохранить свою систему без изменений, за исключением возможных аппаратных изменений. Я не запускал sysprep /generalize поскольку он сбрасывает всех пользователей, имя хоста и т.д.

1 ответ1

1

Я наконец решил свою проблему.

BSOD сообщает об ошибке STOP: 0x0000007B , что означает inaccessible boot device .

Это ставит меня на путь пропавших водителей. На самом деле машины Hyper-V используют эмуляцию IDE, и я полагаю, что в образе доступны только драйверы IDE, в то время как мой ноутбук использует диск eSata.

Чтобы решить эту проблему, я использую команду DISM /add-driver, используя следующую процедуру на ноутбуке, на котором будет работать ОС :

  1. Смонтируйте VHD в управлении дисками (тоже может diskpart) -> на моем компьютере, который добавляет два диска, F: для зарезервированного системного раздела, G: для раздела Windows
  2. Добавьте все драйверы ноутбука к изображению, набрав:

    dism /image:g: /add-driver /driver:c:\windows\inf /recurse

  3. Добавьте также последние загруженные драйверы:

    dism /image:g: /add-driver /driver:c:\somewhere\drivers /recurse

Это заняло несколько минут, но после операции мой VHD содержит все драйверы. Я думаю, что важно запустить команду на целевом ноутбуке, чтобы убедиться, что добавлен драйвер всего оборудования.

Наконец, я перезагрузился, выбрал правильную загрузочную запись, и она загрузилась :)

Мне пришлось несколько раз перезагружаться из-за обнаружения нового оборудования, но в итоге моя система была переведена с виртуальной на физическую систему.

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