Linux -- это интересно

MBR


MBR (Master Boot Record / Главная загрузочная запись) - это первый сектор (первые 512 байт, расположенные в первых физических секторах) устройства хранения данных. MBR это не раздел диска, а участок памяти, зарезервированный для загрузчика операционной системы и таблицы разделов диска.

Загрузка это многоступенчатый процесс, большинство современных компьютеров инициализируют системные устройства прошивкой, называемой 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). Загрузчик проверяет только активный раздел, читает X секторов с этого раздела и затем передаёт управление операционной системе (загрузчик Windows/DOS не в состоянии загрузить Linux, потому что он не был разработан чтобы загружать ядро Linux или что то другое, он может обслужить только активный, первичный раздел).

GRUB (GRand Unified Bootloader) - наиболее часто используемый загрузчик операционной системы от проекта GNU. Он позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки. Пользователям рекомендуется установить его в 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 на несоответствующую таблицу разделов сделает все данные нечитабельными, вернуть их будет практически невозможно.

Чтобы очистить MBR, но оставить таблицу разделов (может быть полезно, если вы хотите полностью переустановить операционную систему):

dd if=/dev/zero of=/dev/sda bs=446 count=1
Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)