1
0
Fork 0
mirror of https://gitlab.com/bztsrc/bootboot.git synced 2023-02-13 20:54:32 -05:00
bztsrc--bootboot/x86_64-bios/OLVASSEL.md
2019-03-15 02:48:34 +01:00

2.5 KiB

BOOTBOOT BIOS / Multiboot / El Torito / Bővító ROM / Linux boot Implementáció

Általános leírásért lásd a BOOTBOOT Protokollt.

A BIOS-t támogató gépeken ugyanaz a betöltő működik Multiboottal, láncbetöltéssel MBR, VBR (GPT hibrid indítás) és CDROM indító szektorból, vagy BIOS bővítő ROM-ból (szóval nemcsak a ramlemez lehet a ROM-ban, de maga a betöltő is), de betölthető Linux kernelként is (ISOLINUX, LoadLin stb.).

Gép állapot

IRQ-k letiltva, GDT nincs meghatározva, de érvényes, IDT nincs beállítva. SSE, SMP engedélyezve. Kód felügyeleti módban, 0-ás gyűrűn fut minden processzormagon.

Telepítés

  1. BIOS lemez / cdrom: másold be a bootboot.bin-t az FS0:\BOOTBOOT\LOADER-be. Rakhatod az INITRD partíciódra de akár a partíciós területen kívülre is (lásd dd conv=notrunc oseek=x). Végezetül telepítsd a boot.bin-t az El Torito Boot katalógusába "no emulation" módban, vagy a Master Boot Record-ba (illetve Volume Boot Record-ba ha boot menedzsert használsz), a bootboot.bin első szektorának LBA címét lemetve 32 biten a 0x1B0 címre. A mkboot szerszám ezt megteszi neked.

  2. BIOS ROM: égesd ki a bootboot.bin-t egy BIOS Bővító ROM-ba.

  3. GRUB: add meg a bootboot.bin-t Multiboot "kernel"-nek a grub.cfg-ban, vagy lánctöltheted a boot.bin-t. Az initrd-t és a környezeti fájl is betöltheted modulként (ebben a sorrendben). Ha nincs modul megadva, akkor a lemezen fogja keresni őket a szokásos helyen. Példa:

menuentry "MyKernel" {
    multiboot /bootboot/loader      # bootboot.bin
    module /bootboot/initrd         # első modul az initrd (opcionális)
    module /bootboot/config         # második modul a konfigurációs fájl (opcionális)
    boot
}

Limitációk

  • Mivel védett módban indul, csak az első 4G-nyi RAM-ot képezi le.
  • ROM-beli tömörített initrd maximum ~96k lehet.
  • A CMOS nvram nem tárol időzónát, ezért mindig GMT+0 kerül a bootboot.timezone-ba.
  • Csak a SHA-XOR-CBC titkosítást ismeri, nincs AES