Не бойся идти не туда – бойся никуда не идти.
(Д. Емец)


среда, 25 мая 2011 г.

Как перенести файлы загрузки Windows 7 на другой жесткий диск

Аннотация

Начальные условия: в вашей системе более одного жесткого диска. На одном из
них уже установлена операционная система, а на второй вы установили Windows 7.
Возникла необходимость удалить из системы жесткий диск, на котором Windows 7 не
установлена. Но оказалось, что без этого диска ваша система загружаться не
хочет.

Это произошло потому, что перестало соблюдаться одно из трех условий успешной
загрузки:
  • раздел, с которого выполняется загрузка, должен быть активным;
  • загрузочный сектор раздела должна быть совместим с
    bootmgr;
  • на активном разделе должны находиться файлы загрузки операционной системы.
    Для Windows 7 это файл bootmgr и хранилище данных
    конфигурации загрузки (BCD), находящееся в скрытой и
    системной папке Boot.
Рассмотрим решение проблемы на примере конфигурации, представленной на
рисунке

На скриншоте "Управления дисками" видно, что диск С:, на котором установлена
Windows 7, не активен. Активным является диск D:. Файлов загрузки Windows 7 (они
скрытые и системные) на диске С: так же не обнаружится. Задача: перенести
загрузчик с диска D: на диск С:, то есть обеспечить соблюдение вышеназванных
условий.

Использование установочного диска или диска
восстановления Windows 7


При наличии этих дисков перенос загрузочных файлов не составляет труда.
Физически отключите "ненужный" жесткий диск, загрузитесь с диска, установив в
BIOS привод CD-DVD первым загрузочным устройством, войдите в среду
восстановления
. После того, как закончится сканирование и поиск
установленных операционных систем, выполните "Восстановление запуска". Программа
восстановления подготовит нужным образом жесткий диск и скопирует на него
необходимые файлы. После перезагрузки возможность загрузки будет
восстановлена.
Если у вас нет ни установочного диска, ни диска восстановления, можно
воспользоваться способом, описанным ниже.

Перенесение файлов загрузки с использованием утилиты
bcdboot.exe

Условно можно разделить предстоящую операцию на три этапа, соответствующих
трем необходимым условиям успешной загрузки.
  1. Делаем диск активным. Есть два способа сделать нужный раздел
    активным.
  2. Первый: войдите в оснастку "Управление дисками" (Win + R, в строке "Выполнить" наберите diskmgmt.msc и нажмите OK) и посмотрите, какая буква присвоена первому слева разделу диска, который планируется оставить. Именно этот раздел мы сделаем загрузочным и активным: щелкните правой кнопкой мыши по выбранному разделу и выберите пункт контекстного меню "Сделать раздел активным". Учтите, что этот раздел должен иметь атрибут "основной". Второй: запустите командную строку с правами администратора. Все команды, о которых пойдет речь далее, будут выполняться последовательно без выхода из командной строки.
    DISKPART
    list disk
    sel disk X
    list partition
    sel part 1
    active
    exit
    где X - номер диска, который предполагается оставить, в списке дисков (команда list disk).
  3. Перезаписываем загрузочный сектор (делаем его совместимым с
    bootmgr):
  4. Для этого понадобится утилита bootsect.exe, которую, при отсутствии установочного диска, можно взять здесь. Заранее скачайте и распакуйте ее, например, в корневой каталог раздела С:.
    c:\bootsect /nt60 All /force
    примечание: опыт показывает, при наличии в конфигурации 2-х и более HDD ключ /force необходим.
  5. Переносим BCD и файл bootmgr на новый активный раздел:
  6. bcdboot %Windir% /l ru-Ru /s С:
    - ключ /l - выбор языковых параметров менеджера загрузки. Если ваша система не русскоязычная, используйте другие значения этого ключа, например, для английского языка - en-Us, для немецкого - de-DE, и т.д. - ключ /s - определяет букву тома, назначенную целевому системному разделу, в который копируются файлы среды загрузки. Это раздел, который мы сделали активным. Так как микропрограмма команды по умолчанию использует текущий системный раздел (до извлечения жесткого диска - это раздел D:), применение этого ключа с буквой предполагаемого загрузочного раздела - обязательно!

Проверяем и редактируем BCD

Выполните команду
bcdedit /store С:\boot\bcd

По результатам выполнения команды проверьте параметры (подчеркнуты на
скриншоте):
  • в секции "Диспетчер загрузки Windows" параметр device
    должен быть равен букве нового активного раздела, в нашем случае -
    С:.
  • в секции "Загрузка Windows" параметры device и
    osdevice должны быть равны букве раздела, на котором сейчас
    расположены каталоги Windows. В нашем случае, это тоже
    С:.
  • в случае несоответствия внесите необходимые изменения с помощью
    команд:
bcdedit /store С:\boot\bcd /set {bootmgr} device partition=С:
bcdedit /store С:\boot\bcd /set {current} device partition=С:
bcdedit /store С:\boot\bcd /set {current} osdevice partition=С:
Обычно выполнение команд не требуется, но проверить не помешает. Вместо
идентификатора {current} может быть {default}, или вообще буквенно-цифровой.
Тогда в командах нужно использовать тот, который используется для загрузки.
Таким образом, перенесение файлов загрузки на другой диск - не такая сложная
задача.

Вместо заключения, или "Русскоязычное меню
мультизагрузки"


В связи с тем, что программа восстановления запуска, выполняющаяся из среды
восстановления, использует параметры "по-умолчанию", язык менеджера загрузки
становится английским. При наличии одной загружаемой системы это не заметно, а
при наличии меню мультизагрузки - бросается в глаза. Если вас это не устраивает,
выполните в командной строке:
bcdboot %Windir% /l ru-Ru
Выполнить ее нужно уже после перенесения файлов загрузки в новый раздел.

5 комментариев:

  1. ошибка при проведении последних операций...

    C:\>bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:
    Операция успешно завершена.

    C:\>bcdedit /store c:\boot\bcd /set {current} device partition=C:
    Ошибка при установке ссылки указанной записи.
    Не удается найти указанный файл.

    C:\>bcdedit /store c:\boot\bcd /set {current} osdevice partition=C:
    Ошибка при установке ссылки указанной записи.
    Не удается найти указанный файл.

    C:\>


    а так же при проведении enum (после предыдущих операций):
    C:\>bcdedit /enum bootmgr

    Диспетчер загрузки Windows
    --------------------
    идентификатор {bootmgr}
    device partition=H:
    description Windows Boot Manager
    locale ru-Ru
    inherit {globalsettings}
    default {current}
    resumeobject {9f1c5180-04fc-11e3-866d-bc5ff400037c}
    displayorder {current}
    toolsdisplayorder {memdiag}
    timeout 30

    C:\>
    .....что делать?

    ОтветитьУдалить
  2. На компе есть два жестких диска 1 и 2. 1 диск разбит на два раздела C на нём установлена XP и D на нём соответственно WIN 7. На 2 диске он же Е разные файлы. Диск 1 очень старый решил его заменить, купил новый. Физически отключил диск 1 (вынул питание и шлейф). Установил новый его также разбил на два раздела установил ХР и WIN 8.1. Поработал, понадобилось вернутся обратно на старый диск 1 (с ХР и 7) отключил новый включил старый и WIN 7 перестала загружаться её нет в менеджере загрузки. Диск 2 не трогал. При обратном переключении перестаёт загружаться 8,1. Попытался восстановить 8.1 вставил диск всё заработало. Без диска нет. Помогите решить проблему. Если обратился не по адресу или путано написал извините. Заранее спасибо за помощь.

    ОтветитьУдалить
  3. Аркадий, ну ёбанаврот! Во-первых, спасибо тебе большое за труды, делаешь жизнь проще, всех благ тебе за это!
    Но во-вторых - есть косяк. Я парился с этим переносом 2 дня... Оказалось, что зачем-то в этих строках bcdedit /store C:\boot\bcd /set {bootmgr} device partition=C:
    bcdedit /store C:\boot\bcd /set {current} device partition=C:
    bcdedit /store C:\boot\bcd /set {current} osdevice partition=C:
    оказались лишними /store C:\boot\bcd !!!
    Я вводил это и получал "ошибка при установке ссылки указанной записи"
    Я всё перепробовал, и тут как-то взял и "забыл" ввести эти слова. ВСЁ заработало!!!

    Ещё раз спасибо этому ресурсу и автору статьи:)

    ОтветитьУдалить