Чему нужно обновление при перемещении загрузочного Windows 7 (или Vista) раздел?

Когда я перемещаю загрузочный раздел NTFS с Windows на нем к другому смещению блока, чему нужно обновление для создания его загрузочным снова?

Фон: Я планирую записать программу, которая выполняет необходимые действия, вот почему я не ищу руководства, как использовать инструменты Microsoft путем начальной загрузки из Windows DVD. Вместо этого мне нужно, как изменить эти вещи сам, так, чтобы я мог записать решение, это легче для среднего пользователя ПК, когда он хочет переместить свою систему Windows в более крупный жесткий диск.

В частности, вот то, что я попробовал:

У меня есть диск с несколькими разделами, один из которых является разделом NTFS с Windows на нем, и диск использует простой блок MBR 0 для расположения разделов (не больше, чем 4 раздела).

Теперь я форматирую и делю новый, больший, диск. Там я создаю место для раздела NTFS и копирую содержание с раздела Windows NTFS старого диска в. И я делаю раздел "активным".

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

  A disk read error occurred
  Press Ctrl+Alt+Del to restart

Я проверил, что оба диска имеют тот же код загрузочного сектора в блоке 0.

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

Обновление: Я нашел эту статью, идущую вполне в глубину того, что я хочу знать. Однако это говорит для изменения boot.ini, но мне установили Windows 7 здесь, где такие вещи, кажется, изменились: Никакой boot.ini, но папка под названием информация о Системном томе с GUID и другими данными в нем, которые звучат связанными с моей проблемой. Попытка продолжать рыть...

Обновление 2: Благодаря ужасному взгляду, но очень информативному веб-сайту астрологом, я смог выяснить первый шаг: загрузочный сектор NTFS имеет поле для "скрытых" секторов. Этот feld должен содержать номер сектора загрузочного сектора. Это решает "ошибочное сообщение" чтения. Теперь, однако, я добираюсь, "BOOTMGR пропускает" ошибку вместо этого. Похож существует другое место, где номер блока должен быть скорректирован, но я ничего не могу найти в листинге кода об этом.

Я действительно нахожу много сайтов справки, предлагающих инструменты Windows для фиксации, это "BOOTMGR пропускает" проблему, но ни один, кажется, не знает то, что продолжается негласно. Отчасти как предложение переустановить Windows, когда существует немного проблемы с ним. По крайней мере, те меры, кажется, работают, главным образом включая инструменты Bcdedit и Bootrec. Теперь, кто знает то, что они делают, особенно последний, в отношении перемещенного раздела?

Обновление 3: После большого количества эмпирических попыток я верю теперь, когда решение находится в файле реестра Шаблона BCD, находясь обычно внутри \Windows\System32\config. Если я получаю это обновленное использование команды "bcdboot", Windows запускает от него. Я теперь посреди выяснения, какую информацию этот реестр содержит относящийся к вышеупомянутому вопросу. Любые указатели на содержание этого реестра приветствуются.

Обновление 4: Оказывается, что, в то время как файл Шаблона BCD переписывается и имеет различное двоичное содержание, чем его предшественник, значения внутри не изменяются. Таким образом, это должно быть что-то еще тот bcdboot.exe записи. Я ранее уже проверил, изменяет ли это первые 32 блока начальной загрузки раздела, но они, кажется, остаются неизменными. Карта Parititon не становится измененной, также. Таким образом, что bcdboot изменяет помимо реестра BCD? Какие-либо подсказки относительно того, как я могу проследить это? Есть ли низкоуровневые инструменты, которые показывают мне, в какие файлы программа пишет?

Обновление 5: ответ, кажется: c:\Boot\BCD также изменяется, и это, кажется, файл ключей для процесса диспетчера начальной загрузки. Я исследую это позже...

Обновление 6: Это, кажется, важная деталь, что у меня было первоначально два раздела, созданные, когда я установил Windows 7: небольшой раздел 204 800 секторов, который, кажется, раздел начальной загрузки, сопровождаемый фактическим, большим, раздел, содержащий систему Windows (управляют C:). Когда я пытался передать эту установку на новом, большем, диске, я сохранил те же два раздела в целости на новом диске, хотя они закончили при другом смещении. Это одно привело к "BOOTMGR, пропускает" сообщение. С тех пор я использовал bcdboot.exe только на разделе Windows, который добавил \Boot\BCD файл на том разделе. Тот файл (и папка) действительно первоначально только существовал на меньшем разделе. Следовательно, эта проблема может быть более сложной в моем случае, поскольку один раздел (труженик начальной загрузки) упомянул другой раздел (тот, содержащий ОС), тогда как другим людям, вероятно, только придется иметь дело с одним разделом, содержащим обоих, и возможно там решение просто.

Обновление 7: Найденный еще одной деталью: \Boot\BCD файл записывает порядковый номер MBR. Если то число не будет соответствовать, то система не загрузится. Затем я протестирую, если будет также абсолютная ссылка блока, сохраненная там.

9
задан 22.01.2011, 14:47

1 ответ

Более легкий путь?

Поместите Windows Vista или установочный диск Windows 7 в несколько диске, и затем запустите компьютер.
Нажмите клавишу, когда Вам предложат.
Выберите язык, время, валюта, клавиатура или метод ввода, и затем нажмите Далее.
Нажмите Repair Ваш компьютер.
Нажмите операционную систему, которую Вы хотите восстановить и затем нажать Далее.
В Системном Окне параметров Восстановления нажмите Command Prompt.
Введите Bootrec.exe и затем нажмите ENTER.

Опции Bootrec.exe
Инструмент Bootrec.exe поддерживает следующие опции. Используйте вариант, который подходит для Вашей ситуации.

Отметьте, Если восстановление BCD не решает вопрос запуска, можно экспортировать и удалить BCD и затем выполнить эту опцию снова. Путем выполнения этого Вы удостоверяетесь, что BCD полностью восстановлен.

Чтобы сделать это, введите следующие команды в командной строке Windows RE:
bcdedit / экспортируют C:\BCD_Backup
c:
начальная загрузка CD
BCD attrib-s-h-r
ren c:\boot\bcd bcd.old
bootrec/RebuildBcd

или/FixMbr или/FixBoot или/ScanOs или/RebuildBcd в зависимости от ситуации.

См.: Support.Microsoft.com для получения дополнительной информации.

1
ответ дан 07.12.2019, 13:39

Теги

Похожие вопросы