Skip to main content

UEFI

tip
  • 使用 UEFI 建议使用 GRUB Bootloader

AlpineLinux

最小 UEFI/GPT 分区

mount pointtypesize
/boot, /efiEFI Boot260MiB
/root1-32 GiB
nonswap1-2GiB

OVMF

基于 EDK II 用于支持虚拟机 EFI 启动的固件

  • OVMF - Open Virtual Machine Firmware
  • OVMF/OVMF.fd - x86_64 实际运行的固件
  • OVMF/OVMF_CODE.fd
  • OVMF/OVMF_VARS.fd
    • “template” used to emulate persistent NVRAM storage
  • OVMF/QEMU_EFI.fd - aarch64
  • ovmf/bios.bin - 软连接指向 OVMF.fd 或 QEMU_EFI.fd
# -pflash path/to/OVMF.fd - emulated flash, fully support UEFI variables
# -bios bios.bin - variables will be partially emulated, and non-volatile, variables may lose their contents after a reboot
# -L . - 同 bios
# qemu-system-x86_64 -L .
apk add ovmf
# /usr/share/OVMF/
# /usr/share/ovmf/bios.bin

AAVMF

  • AAVMF - ARM Architecture Virtual Machine Firmware
    • EFI Development Kit II platform that enables UEFI support for QEMU/KVM ARM Virtual Machines.
  • UEFI firmware for aarch64 virtual machines
DistroPackage
RHEL/CentOSAAVMF/edk2-aarch64
Debian/Ubuntuqemu-efi
AlpineLinuxaavmf

EFISTUB

  • 一种启动方式,将 linux 内核 转为 efi 文件
    • Linux 内核可直接通过 EFI 启动
  • Linux 3.3+
  • archlinux EFISTUB

FAQ

Why UEFI / UEFI vs BIOS

  • 相同点
    • 固件接口
  • BIOS
    • MBR/Master Boot Record 存储分区
  • UEFI
    • GPT/GUID partition table 分区
    • 支持 2TB 存储设备
    • 支持超过 4 个主分区
    • 固件支持使系统启动更快
    • 支持安全启动 - 系统完整性检查
    • 支持网络
    • 支持图形界面

you need to load the kernel first

注意在这之前的错误

error: out of memory

可能是在 linux 加载内核时出现,需要增加内存。

QEMU 默认内存启动 alpine lts efi 失败。

# -accel hvf 会失败
qemu-system-x86_64 -m 2G -bios OVMF/OVMF.fd -hda /dev/rdisk2