У меня было несчастье, когда мне нужно было клонировать Windows XP / 7 с двойной загрузкой, чтобы заменить его жесткий диск меньшим. У меня были большие проблемы с загрузкой, и я хотел бы понять, что происходит, и могу ли я сделать что-то лучше.
Справочная информация: на машине установлен накопитель на 750 Гб с 3 разделами:
- Windows XP
- Windows 7
- Данные
Первоначальная установка была сделана таким образом, что нет отдельного раздела восстановления Windows 7. Я надеюсь, что этот факт несколько упрощает вещи.
Я заменяю его на диск 80 Гб. Разделы уже были сжаты в Windows 7, чтобы они помещались на меньший диск.
Я использовал GParted
(из PartedMagic
Linux LiveCD), чтобы скопировать разделы. Я отмечаю раздел Windows XP как активный раздел (такой же, как на исходном диске).
Я не смог использовать CloneZilla
или сделать полную копию диска из-за перехода с большего на меньший диск.
После копирования разделов я вручную скопировал загрузчик (стараясь не копировать таблицу разделов):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
Я удалил исходный диск, установил новый, чтобы он был физически подключен так же, как и исходный (ведущий IDE канал 1), и попытался загрузиться. Это успешно представило загрузочное меню, но не удалось выбрать любую из этих опций (их две: одна для XP и одна для Win7).
Я провел немало исследований, которые позволили мне понять, что данные конфигурации загрузки Windows 7 не содержат всего, что должно. Я сравнил вывод BCD с оригинального и нового дисков и отметил, что записи устройства на последнем были unknown
. Поэтому я вручную изменил их, чтобы они соответствовали оригиналу - вот так:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
и перезагрузился. На этот раз я мог загрузить как XP, так и Win7. Мне нужно провести больше тестов, потому что между двумя BCD, похоже, есть и другие различия, но внесенные выше изменения, по крайней мере, позволили загрузиться.
Поэтому мой вопрос на самом деле состоит в том, чтобы спросить, почему BCD на клонированном разделе выглядит иначе, чем оригинал, и настолько, чтобы предотвратить загрузку?
И последующим шагом было бы спросить, должен ли я делать это по-другому?
bcdboot
это упрощает воссоздание загрузочной записи, но я не уверен, что она подойдет для сценария двойной загрузки XP / W7.Согласно этой неофициальной документации по внутренним компонентам BCD , разделы в хранилище BCD фактически идентифицируются по сигнатуре диска и смещению раздела. Вы скопировали подпись диска (байты MBR 440–443), но, скорее всего, изменили смещения разделов при размещении разделов на меньшем диске, поэтому BOOTMGR больше не смог найти эти разделы.
источник
bcdedit
). Я предпочитаю Visual BCD Editor самостоятельно. Если вы можете войти в среду Windows, Visual BCD позволяет легко установить загрузочное устройство. Вы можете сделать то же самое с загрузочного DVD, открыв командную строку (я думаю, что это был F11 или что-то) и используяbcdedit
там. Я бы порекомендовал не восстанавливать систему, если вы решили исправить ее вручную, так как у меня была функция восстановления системы, которая ранее удаляла среду восстановления на диске.