Только что узнал о таком интересном умении Unix-утилиты file(1), как вывод информации из главной загрузочной записи (англ. Master Boot Record, или, по-простому, MBR).
Для примера сохраним MBR с устройства /dev/sda в файл. Для этого нам нужно скопировать первые 512 байт с жёсткого диска, то есть, один блок по 512 байт. Хочу предупредить, что утилита dd(1) славится своей способностью портить жёсткие диски при неумелом обращении. Поэтому всегда проверяйте, правильно ли вы указали источник if и место сохранения of данных. Просто нужно немного внимательности. Итак, сохраняем MBR:
$ dd if=/dev/sda of=/mnt/backup/boot.mbr bs=512 count=1
Затем получим информацию о файле:
$ file /mnt/backup/boot.mbr
/mnt/backup/boot.mbr: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 1, startsector 63, 29302497 sectors; partition 2: ID=0x83, starthead 254, startsector 29302560, 8000370 sectors; partition 3: ID=0x82, starthead 254, startsector 37302930, 2554335 sectors, code offset 0x4
В выводе команды можно увидеть тип загрузчика (GRand Unified Bootloader - GRUB) и информацию из таблицы разделов. Каждая запись отделена точкой с запятой. Например, запись
partition 1: ID=0x83, active, starthead 1, startsector 63, 29302497 sectors;
говорит, что на первом разделе (/dev/sda1) находится файловая система ext (в данном случае, ext2), так как её шестнадцатиричный код - 0x83. Так же видно, что первый раздел является активным (active) - то есть, с него осуществляется загрузка. Далее идёт размер раздела в секторах.
Вот более подробная статья на эту тему (на английском):
http://www.miljan.org/main/2007/09/05/easy-way-to-read-mbr/
Комментариев нет:
Отправить комментарий