У мене випало нещастя клонувати подвійне завантажувальне вікно 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.