Настройка диспетчера загрузки Windows с помощью GRUB2 и Clonezilla

Настройка диспетчера загрузки Windows с помощью GRUB2 и Clonezilla

Одной из моих рабочих задач является настройка компьютеров, которые поставляются в наших продуктах с образами ОС Windows (Embedded и OEM) с разделом восстановления. Я использовал Clonezilla Live с GRUB2 для реализации этого процесса. Это отлично работало с Windows XP/Embedded Standard 2009. Это не работает с Windows 7 и, я бы предположил, с чем-то более поздним, чем Vista, из-за изменений в диспетчере загрузки. Текущий образ системы, который я пытаюсь настроить, выглядит следующим образом:

/dev/sda1, ntfs, PRIMARY, 62,5 ГиБ, 3,15 ГиБ, 59,35 ГиБ, без флагов
/dev/sda2, ntfs, RESTORE, 4,00 ГиБ, 1,74 ГиБ, 2,26 ГиБ, скрытый
/dev/sda3, fat32, CLONEZILLA, 4,00 ГиБ, 115,22 МиБ, 3,89 ГиБ, скрытый
/dev/sda4, ext4, BOOT, 1,00 ГиБ, 53,91 МиБ, 970,09 МиБ, загрузка

/dev/sda1 содержит Windows 7 OEM (запечатанный), dev/sda2 содержит образ восстановления на основе Clonezilla (запечатанный)

/dev/sda MBR — это загрузчик GRUB2

Я могу нормально загрузить GRUB2 и восстановить образ Windows 7. Однако я не могу загрузить Windows 7 и получаю ошибку 0xc0000225. Обновление: как только я изменил загрузочный сектор, как описано ниже, чтобы заставить начальный раздел sda1 согласоваться с MBR, 0xc0000225 исчез, и я начал получать ошибку 0xc000000e с файлом winload.exe, на который он жаловался пользователю. Однако этот файл присутствует и не поврежден, насколько я могу судить по другим утилитам.

Информация из bootinfoscript Мейефранкенфельда и Хулсельманса показывает проблемы с sda1 (загрузочный сектор показывает sda1 в секторе 411648, а fdisk показывает 2048) и sda3 (загрузочные секторы показывают sda3 в секторе 0, а fdisk показывает 164628480). Я не уверен, что мне нужно изменить на этом этапе или какой инструмент лучше всего для этого подходит. Я в порядке с шестнадцатеричным редактором, если я могу дать хорошее описание того, как расположены BCD и grub2 MBR. Обновление: я наконец-то обновил загрузочный сектор, чтобы получить согласие с fdisk для sda1.

Перед тем, как запечатать машину и добавить /dev/sda3 и /dev/sda4, я объединил загрузочный раздел Windows 7 на /dev/sda1. Он перезагрузился и работал нормально.

Я попытался прочитать материалы BCD, предоставляемые Microsoft, и убедился, что объекты диспетчера загрузки и загрузчика Windows указывают на правильный раздел (они использовали какой-то пользовательский синтаксис = xyz, который тоже не работал).

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

Я подтвердил, что bcd использует partition=C: для ссылки на устройство device/os device/bootmgr device.

Итак, мне удалось подтвердить, что MBR присутствует и не поврежден, VRB на sda1 присутствует и не поврежден, файлы $MFT и $MFTMirr существуют в месте, указанном в VBR, что подтверждается инструментом istat (не lstat) в sleuthkit. Файл winload, на который ссылается указанная выше ошибка, существует в месте, указанном мне утилитой fls sleuthkit, и соответствует размеру файла из других установок.

В качестве альтернативы, если вы OEM и хотите поделиться процессом восстановления, который хорошо работает в потребительской/встраиваемой среде, я бы с удовольствием выслушал и этот отзыв. Спасибо.

решение1

Похоже, были проблемы с добавлением этих разделов в середину. Какой редактор разделов вы использовали? Программа testdisk, которую можно найти на LiveCD PartedMagic.com и Hiren, восстановила некоторые проблемы с разделами и проблемы с двойной загрузкой на нескольких машинах для меня. Я бы еще раз проверил предположение, что "bcd использует partition=C:" означает то, что вы думаете, так как это зависит гораздо больше от GUID.

Связанный контент