Napisałem bootloader i muszę go zapisać na dysku USB. Ponieważ jestem w systemie Windows, mój program ładujący musi obsługiwać systemy plików takie jak FAT32 i FAT16 itp. W BIOS Parameter Block
tym celu użyłem BPB ( ). Wiem, że dysk USB składa się z sektorów.
Ale czy ma jakąkolwiek głowę, ślady itp.? Ponieważ informacje te należy wymienić w bloku parametrów Bios.
assembly
operating-systems
kernel
bootloader
bios
gra słów
źródło
źródło
Odpowiedzi:
Zakładając, że używasz BIOS INT 13h do odczytu z napędu USB, BIOS przetłumaczy adresy w razie potrzeby do pracy z napędem USB. Bieżące moduły ładujące sprawdzają rozszerzenia INT 13h, a jeśli są obecne, używają rozszerzonej wersji sektorów odczytu z 64-bitowym logicznym adresem sektora zamiast CHS (cylinder / głowica / sektor), aby uniknąć ograniczeń rozmiaru starego interfejsu. Jednak klasyczny główny rekord rozruchowy ma tylko 32-bitowe wartości dla sektora początkowego i liczbę sektorów dla każdej partycji podstawowej, co ograniczyło rozmiar dysku do 2 tera-bajtów.
Artykuły na Wiki:
http://en.wikipedia.org/wiki/INT_13H
http://en.wikipedia.org/wiki/Master_boot_record
http://en.wikipedia.org/wiki/Master_boot_record#Sector_layout
źródło
Napędy USB nie mają głowicy, ścieżek ani sektorów. Mają tylko dyski twarde. Być może blok parametrów Bios nie jest w stanie obsłużyć napędów USB.
źródło