У меня есть система на базе BIOS, работающая под управлением Windows 7 на жестком диске объемом 1 ТБ с MBR. Этот жесткий диск разделен следующим образом:

  • P0: 60 ГБ NTFS для Windows и программных файлов
  • P1: 940 ГБ NTFS для данных

Поскольку этот диск будет заполнен, моя цель - перенести существующую установку на новый жесткий диск объемом 3 ТБ со следующими разделами:

  • P0: 60 ГБ NTFS, как 1B/P0
  • P1: 2940 ГБ NTFS с объемом 1 ТБ /P1, плюс больше свободного места

Поскольку этот раздел> 2 ТБ, MBR не может их обработать, и я переключаю таблицу разделов жесткого диска 3 ТБ на GPT, но:

  • Windows 7 не может загрузиться с систем BIOS+GPT

Поэтому я исследую здесь и, похоже, GRUB может загружать Windows 7 с GPT-дисков с помощью хитрости: отформатированный MBR виртуального жесткого диска (VHD), который содержит загрузочные файлы Windows, которые после загрузки загружают Windows из раздела GPT.

Итак, я сделал следующее:

  • P0: специальный раздел GRUB 1MiB для систем GPT (см. Здесь, установлен с помощью grub-install из живого образа Linux)
  • P1: раздел размером 120 МБ ext2 для размещения файлов GRUB (grub.cfg fe) и файлов bootmgr.vhd
  • P3: 60 ГБ NTFS-раздел, куда я скопировал все файлы размером 1 ТБ / Раздел 0
  • P4: 2940 ГБ (или чуть меньше) NTFS-раздела, куда я скопировал все файлы 1 ТБ / Раздела 1

В VHD есть раздел MRFS NTFS с загрузочными файлами Windows, сгенерированными с помощью команд:

bootsect /nt60 b: /mbr
bcdboot c:\Windows /s b: (NOT with /mbr flag as it's a GPT disk)

где B - файл VHD, а C - установка Windows 7 x64, работающая на виртуальной машине. Раздел VHD установлен как основной и активный.

Чтобы избежать также некоторых других проблем, я сгенерировал также в новом 3TB/P3 загрузочные файлы с:

bootsect /nt60 e:
bcdboot c:\Windows /s e:

Где E - раздел 3TB/P3.

Я попытался загрузиться с помощью grub, используя этот grub.cfg, отредактированный вручную:

menuentry "Win7 root+chain" {
    set root=(hd0,gpt3)
    chainloader +1
}

menuentry "Win7 vhd+chain" {
    loopback loop (hd0,gpt2)/boot/bootmgr.vhd
    chainloader +1
}

Первый дает мне сообщение диспетчера загрузки Windows:

"Error 0xc000000e File:\Boot\BCD Message: An error occoured while attempting to read the boot configuration data"

Второе, кажется, сообщение Grub

"Invalid signature"

Можете ли вы помочь мне? Я делаю что-то не так с Grub?

1 ответ1

2

Этот ответ обобщает комментарии к сообщению более упорядоченным образом.

Хотя не было получено ответа на вопрос о том, как заставить Grub работать в этом контексте, я обнаружил, что BIOS рассматриваемой материнской платы, MOPNV10J, поддерживает UEFI, как отвечал (ссылка) сотрудник Intel по имени Дэн.

При поддержке UEFI диск объемом 3 ТБ можно отформатировать как GPT, и весь диск становится доступным для адресации.

Поскольку BIOS автора не поддерживает UEFI, теперь возникает вопрос, как обновить его до последней версии 0542.

Оказывается, что обновление до этой версии должно быть сделано в два этапа:

  1. Обновите BIOS до версии 0400
  2. Обновите BIOS до версии 0542

Перед началом убедитесь, что у вас есть установочный носитель для текущей версии BIOS, который называется "Восстановление BIOS Update" в примечаниях к выпуску. В противном случае неудачное обновление BIOS может привести к зависанию компьютера.

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