Master Boot Record (Русский)
Master Boot Record (MBR) — это первый сектор (первые 512 байт) устройства хранения данных. MBR - это не партиция, а участок памяти, зарезервированный для загрузчика операционной системы и таблицы разделов диска.
Contents
Процесс загрузки
Загрузка - многоступенчатый процесс. Большинство ПК сегодня инициализируют системные устройства прошивкой, называемой BIOS (Basic Input/Output System). BIOS содержится внутри CMOS (Ceramic Metal Oxide Semiconductor), который выполняется при старте системы. После инициализации системных устройств BIOS ищет загрузчик в MBR первого устройства хранения (жесткий диск, твердотельный накопитель, CD/DVD диск, USB диск...) или на первом разделе устройства. Затем он передает управление этому загрузчику. Тот, в свою очередь, считывает таблицу разделов и готовится к загрузке операционной системы. Среди загрузчиков GNU/Linux особо выделяются GRUB и LILO.
История
MBR состоит из небольшой части ассемблерного кода (начальный загрузчик – 446 байт), таблицы разделов - 4 первичных раздела (16 байт каждый) и стража (0xAA55).
"Традиционный" загрузчик Windows/DOS проверяет только активный раздел, читает X секторов с этого раздела и затем передаёт управление операционной системе. Загрузчик Windows/DOS не в состоянии загрузить Arch Linux, потому что он не был разработан, чтобы загружать ядро Linux. Он может обслужить только активный, первичный раздел.
GRand Unified Bootloader (GRUB) - это стандарт для загрузчика GNU/Linux, и пользователям рекоммендуется установить его в MBR, чтобы иметь возможность загружать операционную систему с любого раздела, первичного или логического.
Резервные копии и восстановление
Поскольку MBR расположен на диске, то он может быть сохранен и, в случае необходимости, восстановлен.
Для создания резервной копии MBR:
dd if=/dev/sda of=/path/mbr-backup bs=512 count=1
Восстановление MBR:
dd if=/path/mbr-backup of=/dev/sda bs=512 count=1
Если нужно сохранить только загрузочный код (он занимает 446 байт), то меняем размер блока следующим образом:
dd if=/dev/sda of=/path/mbr-boot-code bs=446 count=1
Для сохранения только таблицы разделов (66 байт) нужно выполнить такую команду:
dd if=/dev/sda of=/path/mbr-part-table bs=1 count=66 skip=446
Соответственно, для восстановления только загрузочного кода из файла mbr-backup:
dd if=/path/mbr-backup of=/dev/sda bs=446 count=1
...таблицы разделов:
dd if=/path/mbr-backup of=/dev/sda bs=1 skip=446 seek=466 count=66
Чтобы очистить MBR, но оставить таблицу разделов (может быть полезно, если вы хотите полностью переустановить операционную систему):
dd if=/dev/zero of=/dev/sda bs=446 count=1
Восстановление загрузчика Windows
В соответствии с соглашением (и для простоты установки) Windows обычно устанавливается на первую партицию и, следовательно, устанавливает свой загрузчик и таблицу разделов в первый сектор этой партиции. Если вы случайно установили загрузчик GRUB на партицию с Windows или каким-то другим образом повредили загрузочную запись, вам нужно будет воспользоваться утилитой, чтобы переустановить его. Эта утилита содержится на диске восстановления системы Windows или, иногда, на установочном диске и называется fixmbr
. Эта утилита восстановит MBR (то есть переустановит загрузчик Windows и добавит таблицу разделов). Затем Вы должны будете переустановить GRUB[broken link: invalid section]. После этого GRUB сможет загружать Windows, когда это будет необходимо. Если, вдруг, Вы не имеете установочный диск Windows, то вы можете переустановить загрузчик прямо из Linux утилитой, которая называется ms-sysAUR. Сначала нужно загрузиться с LiveCD и запустить ms-sysAUR. Большинство LiveCD не имеют этой утилиты по умолчанию, так что сперва установите ее или посмотрите на диске восстановления Parted Magic.
Во-первых, перепишите таблицу разделов:
ms-sys --partition /dev/sda1
Чтобы прописать загрузчик 2000/XP/2003 выполните:
ms-sys --mbr /dev/sda
ms-sysAUR также может установить загрузчик Windows 98, ME, Vista и 7. Для вывода справки, наберите ms-sys -h
.