Почему система не загружается с зеркального или клонированного диска?
Понедельник, 17 - Октябрь - 2011 5 комментариев
Проблема, с которой можно столкнуться после отказа первого диска в программном массиве RAID-1 — со второго диска система не загружается. Вот как это может выглядеть:
Да, ничего особенного, просто чёрный экран с мигающим курсором в углу. Но система не загружается. Многие сразу начинают обвинять кого угодно — плохой Microsoft, плохие программные RAID, плохой диск, плохой компьютер и т.д. На самом деле, дело в элементарном незнании порядка загрузки компьютера. Механизм этот работает следующим образом:
-
Компьютер включается, BIOS firmware выполняет процедуру самотестирования (Power-On Self-Test, POST);
-
BIOS ищет главную загрузочную запись (Master Boot Record, MBR) указанного в CMOS загрузочного устройства. В данном случае, жёсткого диска;
-
Считанный с жёсткого диска MBR ищет и передаёт управление загрузочному сектору (boot sector) активного первичного раздела (active primary partition) этого диска;
-
Загрузочный сектор передаёт управление находящемуся на этом же разделе загрузчику операционной системы;
-
Загрузчик ОС загружает ядро операционной системы с соответствующего раздела (как правило, всё того же);
-
Происходит загрузка драйверов устройств (device drivers) и интерфейса пользователя (user interface).
Так вот вся проблема заключается в том, что программное зеркалирование Windows Server или клонирование типа partition-to-partition дублирует не весь диск целиком, а только указанные разделы. MBR в территорию разделов не входит, так как находится в совершенно отдельном месте — в первом секторе нулевого цилиндра, поэтому программным зеркалированием разделов на второй диск может не скопироваться. Когда новый диск поставляется с завода, MBR на нём тоже отсутствует — это же новый, абсолютно чистый диск:
Вообще, существуют три способа попадания главной загрузочной записи на диск:
-
Установка операционной системы. Как правило, ОС создаёт MBR в момент начала инсталляции себя;
-
Дублирование диска целиком (клонирование либо аппаратный массив RAID-1);
-
Восстановление с помощью установочного компакт-диска Windows или сторонними средствами типа LiveCD.
На самом деле, программное зеркалирование системного раздела в Windows Server дублирует и MBR. Но я видел ситуации, когда этого по каким-то причинам не происходило. Поэтому, если столкнётесь с подобной проблемой, а MBR заранее на диске не приготовили, не спешите расстраиваться — проблема загрузки решается достаточно просто и быстро с помощью установочного компакт-диска Windows.
…
Update 06-Dec-2011:
Что ж, так оно и случилось вчера на одном из моих серверов с Windows Server 2008. Отказал первый диск в зеркале, а на второй изначально MBR добавить я забыл. Изъяв сбойной диск, я попытался загрузить сервер с зеркального и получил сообщение:
Boot Failed. Press any key to reboot.
Проблема была решена следующим образом:
-
Загрузили компьютер с установочного компакт-диска Windows Server 2008.
-
Выбрали опцию Repair your computer. Правда, диски она не увидела, установленную систему не распознала.
-
Выбрали команду Command Prompt.
-
В командной строке с помощью программы diskpart я убедился, что диск виден в качестве чужого (foreign) и выполнил импорт дисковой группы командой import.
-
Выполнил команду bootrec /FixMbr и перезагрузил компьютер.
Northon Ghost в помощь, есть надстройка Image Disk. =))
В Ghost есть вариант клонирования Partition To Partition, после которого может случиться беда с MBR. Просто нужно знать.
«проблема загрузки решается достаточно просто и быстро с помощью установочного компакт-диска Windows» — остаётся ощущение недосказанности.
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/bootcons_fixmbr.mspx?mfr=true
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/bootcons_fixboot.mspx?mfr=true
Windows 7 и Windows Server 2008:
bcdedit /export C:\BCD_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec /RebuildBcd
Сам-то пробовал?