linux常见引导过程
BIOS引导
- Grub2系统安装将/boot/gurb/i386-pc/boot.img(512byte),安装到MBR第一扇区512字节MBR引导区(不管MBR/GPT),并修改硬编码指向core.img位置.
Grub2系统安装将/boot/grub/i386-pc/core.img(大概26K)动态安装到:
- MBR分区就安装到MBR引导第一扇区~第一分区之间(一般第一分区前保留的2048空间)
- GPT分区就安装到第一分区之间~32LBA(一般第一分区前保留的2048空间) 或者 存放在<BIOS引导分区>(flags: gdisk/EF02 parted/bios_grub)
core解压diskboot.img与grub的kernel.img
UEFI引导
只支持EFI分区, 一般默认挂载在/boot/efi目录
UEFI主板会自动查找EFI分区的shimx64.efi加载grubx64.efi->/boot/efi/EFI/ubutnu/grub.cfg
search.fs_uuid 4687307a-311d-4fef-a2bf-07fd44f2c30b root hd0,msdos6
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
GRUB引导
- 安装和更新从/etc/default/grub读取引导配置和/etc/grub.d/下脚本为配置,由update-grub生成(grub-mkconfig -o /boot/grub/grub.cfg)
最终grub读取/boot/grub/grub.cfg配置文件指定参数来加载引导内核文件vmlinuxz和虚拟文件系统initramfs从而启动