Запис за начално зареждане
Инструменти
Основни
Отпечатване/изнасяне
В други проекти
Запис за начално зареждане, също сектор за начално зареждане (на английски: Master Boot Record, MBR) е предварително зададена област от външната памет на електронноизчислителна машина, от която се извършва началното зареждане на операционна система.[1] Обикновено това е първият сектор от магнитен носител (твърд диск или дискета).
Терминът се използва за първия сектор на носители на информация (медия), които са разделни на дялове (Partitioned). Характерен предимно за хард дискови устройства, наличен и при USB FLASH драйв устройства. Състои се от изпълнима част и информационна част. Изпълнимата част представлява код/програма която намира активният дял върху устройството, прочита съответстващият му зареждащ сектор (Boot Sector) в паметта и предава управлението на последния. Ако не бъде намерен активен дял процесът на зареждане се прекратява. Ако не бъде намерен зареждащ сектор върху активния дял зареждането отново се прекратява. Главният зареждащ запис се прочита от BIOS веднага след изпълнението на главната процедура по проверка на паметта, дисковете и периферните устройства. Информационната част се състои от идентификатор на диска (сериен номер) и таблица на дяловете. Таблицата на дяловете съдържа четири записа с дялова информация. В края на описаната структура се намира сигнатурата 0xAA55 (в шестнадесетична бройна система), която валидира че това е зареждащ запис/сектор. При грешка в таблицата на дяловете зареждането се преустановява и се изписва съответстващо съобщение на екрана.
Адрес | Функционалност / Съдържание | Размер (Байтове) | ||
---|---|---|---|---|
шестнадесетично | десетично | |||
0x0000 | 0 | Зареждащ код | макс. 440 | |
0x01B8 | 440 | Сериен номер на диска (Използван от Windows 2000 и по-нови) | 4 | |
0x01BC | 444 | Нули (0x0000) | 2 | |
0x01BE | 446 | Запис на дялова инф | Таблица на дяловете | 16 |
0x01CE | 462 | Запис на дялова инф | 16 | |
0x01DE | 478 | Запис на дялова инф | 16 | |
0x01EE | 494 | Запис на дялова инф | 16 | |
0x01FE | 510 | 0x55 | MBR сигнатура (0xAA55) | 2 |
0x01FF | 511 | 0xAA |
Общ размер 512 байта
Тази сигнатура представлява магическо число състоящо се от 2 Байта 55hex и AAhex. За Little Endian системи това се интерпретира като 16-битово число AA55hex
цилиндър: 0; глава: 0; сектор: 1; (CHS: 0/0/1).
0000:7C00
mov ah,0x02 ; Функция за четенеmov al,0x01 ; Брой сектори за прочитанеmov bx,0x0000 ; Относителен адрес на буфера за четенеmov cx,0x0001 ; Начална позиция за четене (сектор, цилиндър)mov dh,0x00 ; Номер на главатаmov dl,0x80 ; Номер на устройството/дискаint 0x13 ; Прекъсване за четенеret ; Връщане на управлението
Съдържанието на MBR ще бъде прочетено в паметта на адрес es:0000
dd if=/dev/hdX of=DEST bs=512 count=1
където: „X“ = a,b,c,d; „DEST“ = пътя и име на файл в който да се прочете
Пример:
dd if=/dev/hda of=/hda-mbr.img bs=512 count=1
При изпълнение на горната команда в главната директория ще бъде създаден файл с име hda-mbr.img, размер 512 байта, който е идентично копие на съдържанието на MBR на първия диск (ide0/channel0). Този файл може да бъде редактиран или изучен с подходящ шестнадесетичен редактор.
Под Windows XP е възможно да поправите MBR чрез DOS командата fixmbr
. По този начин може да се елиминират някои boot вируси или да се възстанови оригиналният boot сектор вследствие на инсталиран друг сектор за начално зареждане, който не работи (например GRUB, lilo). За да използвате тази команда може да заредите Windows XP чрез неговото CD и да изберете R за поправяне на системата.
Под Windows Vista командата за възстановяване на MBR e bootrec /FixMbr
.