я grub v1.98
установлен и после разборки MBR я нашел следующий фрагмент кода, который я не понимаю:Где код GRUB stage 1.5 находится на диске и какой адрес он загружен?
xor ax,ax
mov [si+0x4],ax
inc ax
mov [si-0x1],al
mov [si+0x2],ax
mov word [si],0x10
mov ebx,[0x7c5c]
mov [si+0x8],ebx
mov ebx,[0x7c60]
mov [si+0xc],ebx
mov word [si+0x6],0x7000
mov ah,0x42
int 0x13
Кажется, этот кусок кода пытается установить дисковый адрес этапа 1.5 кода, то нагрузка и запустите его. Однако как я могу выяснить, какой физический блок он пытается прочитать? Более того, каков пункт назначения кода этапа 1.5? 0x7000
?
Я имею в виду MBR для Windows 7, где загружается следующий загрузочный код 0x7c00
. При этом MBR сначала загружается по адресу 0x7c00
, он содержит кусок кода, копирующий MBR от 0x7c00
до 0x0600
, а затем разветвляется до 0x0600
, если исходный код поврежден. Будет ли загружать этап 1.5 кода на адрес 0x7000
конфликт с исходным кодом? Более того, я также нашел:
jmp short 0x65
nop
sar byte [si+0x7c00],1
mov es,ax
mov ds,ax
mov si,0x7c00
mov di,0x600
mov cx,0x200
cld
rep movsb
push ax
push word 0x61c
retf
в начале MBR. Кажется, что код пытается сделать то же самое, что и в MBR Windows 7, чтобы скопировать исходный MBR от 0x7c00
до 0x0600
, за исключением первой инструкции jmp
. Будут ли эти коды фактически выполнены? Если да, когда будет управляться прыжки здесь. (Я считаю, что ответ ДА, но меня смущает ведущий jmp
).
личинки установить первую попытку поставить core.img в свободном пространстве между разделами. Вы увидите ошибку, если там не хватает места. Вы можете заставить grub писать core.img внутри раздела только с помощью переключателя. Ваш ответ вводит в заблуждение. – ZAB
grub-install дает сообщение об ошибке, если между MBR и первым разделом недостаточно места. –
Извините, но Grub 2 по-прежнему рекомендует помещать 'core.img' в пробег MBR (если, конечно, на диске нет GPT):« В этом формате таблицы разделов [MBR] есть два способа установки GRUB: он может быть встроен в области между MBR и первым разделом ... Команда разработчиков GRUB обычно рекомендует внедрять GRUB до первого раздела, если у вас нет особых требований ». [Grub 2.02] (https://www.gnu.org/software/grub/manual/grub.html#BIOS-установка). – antonio