[英]How to bring up x86 system by using coreboot, SeaBIOS, GRUB and the Linux kernel?
[英]GRUB mkimage: create legacy boot x86 image to load custom kernel via multiboot2
我嘗試為使用 GRUB 作為引導加載程序的 x86 創建舊版引導映像。 最后,引導映像應該引導 GRUB,它會加載符合 Multiboot (2) 的 kernel 以及相關的 Multiboot (2) 引導模塊。 我考慮過使用grub-mkimage
實用程序。 最后,我想要一些 ISO 文件,我可以將 flash 到 USB 驅動器左右。 映像應包含 GRUB、kernel 和引導模塊。
我目前的方法如下:
grub-mkimage -c grub.cfg \
-O i386-pc \
-m build/kernel.elf \
-m build/roottask.elf \
-m build/userapps.tar \
-o boot_legacy_x86.img \
-C auto
但是,由於grub-mkimage: error: core image is too big (0x17f00f > 0x78000).
. 因此,我猜想遺留(非 UEFI)x86 引導流程會產生大小限制。 我想,我必須將 kernel、roottask 和 userapps 移動到同一個映像中,但不能移動到 GRUB 本身。 但是,我不知道如何實現這一點。 我非常感謝這里的任何建議。
grub-mkrescue
實用程序就是您所需要的。 它按照 ISO9660 和 El-Torito 規范構建可引導的傳統引導映像,並將您所需的文件捆綁到映像中。
訣竅相對容易。 准備一個具有以下結構的目錄:
grub
├── iso
│ ├── boot
│ │ └── grub
│ │ └── grub.cfg
│ ├── kernel
│ └── roottask
現在,只需要grub-mkrescue -o "grub/legacy_x86_boot.img" "grub/iso"
。 生成的 iso 映像可以像這樣閃存到 USB 驅動器上:
$ sudo dd if=grub/legacy_x86_boot.img of=/dev/sda
您可以找到其他資源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.