Jeśli chcę, aby mój bootloader startował z pamięci USB, muszę dołączyć BPB. Pamięci USB działa w trybie emulacji dyskietki. Jak widać here, istnieje wiele różnych wersji BPB. W jaki sposób bios wie, jaki rodzaj BPB jest obecny? GRUB 0.97 wydaje się używać jeszcze jednego formatu BPB?W jaki sposób bios wie, jaki rodzaj BPB jest obecny?
Podkręć mój bootloader z przesunięcia 0xb, a następnie zadziała. Czy istnieje standardowy/typowy rozmiar do użycia? Nie używam żadnego systemu plików na moim USB, tylko na surowo.
Podejrzewam, że potrzebuję BPB, ponieważ bios próbuje zaktualizować niektóre wartości, które nadpisują niektóre z kodu. Ponieważ każdy BPB wydaje się nieco inny, jak bios może wiedzieć, gdzie aktualizować jaką wartość?
[GRUB] (https://github.com/jezze/grub-legacy/blob/master/stage1/stage1.S) linia od 65 do 85 używa innej kolejności, prawda? Wartości w nim są również ustawione na zero, czy nie można oklejać przestrzeni bpb zerami? – user237948
Teoretycznie byłoby, ale miałem systemy, które odmawiają załadowania ważnego MBR, chyba że jest to uzasadnione, szczególnie w głowach. –
@ user237948: Możesz wstawić spację za pomocą zer (potrzebujesz JMP, aby zacząć). W kodzie GRUB wykorzystują przestrzeń BPB do własnych zmiennych. Nie obchodzi ich, co BIOS może tam umieścić, i tak i tak nadpisują dane. (Jeśli używasz dyskietki, pobierają geometrię napędu z samego BIOS-u). Jedną z przyczyn umieszczenia w nich rozsądnych wartości reprezentujących napęd jest zdarzenie, w którym używasz obrazów dysków, można pobrać oprogramowanie do odczytu nagłówka i wybrać konfigurację obrazu dysku z pozycji BPB. –