9

Я хотел установить двойную загрузку. Итак, сначала я установил Windows 7 на 1-й раздел одного жесткого диска (назовем его HDD1), а затем я установил Ubuntu 9.10 на второй раздел HDD1. К сожалению, это не сработало (обошло GRUB2 и пошло прямо в Windows). Я решил переустановить Ubuntu, и тогда я заметил, что (по какой-то причине) Windows решила разместить свои загрузочные файлы на другом жестком диске (назовем его HDD3).

Я хотел бы это исправить - я хочу переместить загрузочные файлы с HDD3 на HDD1. Это может помочь исправить мою проблему с двойной загрузкой, но даже если это не так, по моему опыту, это избавит от многих головных болей в будущем. Как я могу это сделать? Я собираюсь предположить, что это не так просто, как просто копировать файлы, но я хотел бы оказаться неправым :)

2 ответа2

15

Посредством некоторого поиска в Google я нашел следующее решение (я использую HDD1 и HDD3 для представления двух жестких дисков, которые мне интересны, как указано выше в моем вопросе):

  1. Загрузочные файлы состоят из папки с именем Boot и приложения с именем bootmgr. Это системные файлы, поэтому они обычно скрыты. Вы должны сделать их видимыми.
  2. Скопируйте их обоих с HDD3 на HDD1. Он будет жаловаться, что нельзя скопировать два файла: BCD и BCD.log, оба из которых находятся в папке Boot. Последнее неважно (это просто файл журнала) и может быть проигнорировано; первый будет скопирован на следующем шаге.
  3. Откройте командную строку с правами администратора. Введите следующую команду: bcdedit /export HDD1:\Boot\BCD , где HDD1 - буква драйвера вашего целевого диска. В моем случае HDD1 был C, поэтому команда была bcdedit /export C:\Boot\BCD .
  4. Теперь вам нужно отредактировать файл BCD, чтобы все записи были правильными. Я использовал программу bcdedit, которая поставляется с Windows 7, но есть и другие. Я слышал, что EasyBCD довольно хорош (и бесплатен), но последняя версия не полностью поддерживает Windows 7. Я верю, что новая версия, которая поддерживает Windows 7, скоро выйдет. Сначала я перехожу к HDD1\Boot в командной строке (с правами администратора) и bcdedit /store BCD /enum ALL . Я использую ключ /store чтобы указать BCD- файл в текущем каталоге - я думаю, что этот ключ будет использоваться по умолчанию, который находится на HDD3. Эта команда выводит список всех записей в файле BCD.
  5. Я просканировал записи, и оказалось, что записи для {bootmgr} и {memdiag} указывают на HDD3. Конечно, я хочу, чтобы они указали на HDD1. Поэтому я выдаю команды в следующей форме: bcdedit /store BCD /set [entry_name] device partition=HDD1: Поскольку HDD1 на моей машине является C, я набрал бы следующую команду для установки записи {bootmgr}: bcdedit /store BCD /set {bootmgr} device partition=C:

Вот и все. Последний шаг - сделать HDD1 активным с помощью Disk Management (доступ к нему осуществляется из управления компьютером) - он уже был активен в моей системе, поэтому мне не нужно было ничего делать.

Теперь, что касается странной проблемы двойной загрузки, оказалось, что я забыл, что физически изменил порядок жестких дисков. Таким образом, порядок загрузки BIOS был неправильным (сначала он пытался загрузиться с HDD3 , а не с HDD1). И да, это была невероятно глупая ошибка с моей стороны :)

1

Самый простой способ - просто загрузить и установить бесплатный EasyBCD: http://neosmart.net/dl.php?id=1

На странице EasyBCD «Резервное копирование / восстановление BCD» есть опция "Изменить загрузочный диск", которая выводит список всех локальных дисков. Вы просто выбираете нужный диск, и EasyBCD автоматизирует весь процесс для вас, включая активацию и загрузку выбранного раздела, импорт содержимого старого загрузчика и запись MBR.

(Раскрытие: я автор EasyBCD)

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