160 likes | 437 Views
LUG 每周小聚 —— UEFI 引导配置. 先来点名词解释. MBR BIOS GPT UEFI. MBR. MBR. Master Boot Record 只允许 4 个主分区,或 3 个主分区 +1 个扩展分区 在扩展分区中可以分任意多个逻辑分区 在扩展分区中以链表形式存储 逻辑 分区信息 用 1 字节来表示分区类型 用 32 位二进制数表示分区地址,块大小通常为 512 字节 2^32*512=2TiB ,即,不支持 2TiB 以上的分区. BIOS. Basic Input-Output System 启动 过程:
E N D
先来点名词解释 • MBR • BIOS • GPT • UEFI
MBR • Master Boot Record • 只允许4个主分区,或3个主分区+1个扩展分区 • 在扩展分区中可以分任意多个逻辑分区 • 在扩展分区中以链表形式存储逻辑分区信息 • 用1字节来表示分区类型 • 用32位二进制数表示分区地址,块大小通常为512字节 2^32*512=2TiB,即,不支持2TiB以上的分区
BIOS • Basic Input-Output System • 启动过程: • 上电,开机自检 • BIOS初始化必要硬件(磁盘、键盘等等) • BIOS读取第一块硬盘的前440字节并执行 • MBR从BIOS获取控制权并调用boot loader的第二部分 • 引导真正的操作系统
GPT • GUID Partition Table • 64位地址,最大支持8ZiB分区 • 任意多个分区 • 用16字节GUID表示分区类型 • 尾部备份
MBR转GPT • 引自MSDN: • You can change a disk from MBR to GPT partition style as long as the disk does not contain any partitions or volumes. • Linux下使用gdisk可以无损转换 • 只要用gdisk打开MBR设备,按w保存,即可 • 如果磁盘末尾被占用,需要事先缩减分区大小 34*512Byte • 分区编号可能会有变动,需要调节/etc/fstab
UEFI • Unified Extensible Firmware Interface • 由Intel设计最初用于Itanium计算机 • 1.0的时候叫EFI,2.0的时候叫UEFI,最新版UEFI 2.4 • 从EFI分区中载入引导程序 • 内核版本>3.3支持EFI BOOT STUB (不用boot loader直接启动) • Windows要求EFI分区是分区表中的第一个分区 • Windows只有64位支持UEFI+GPT
UEFI特性 • 最直观的:图形界面,中文字体,鼠标支持
EFI System Partition • 含有EFI文件夹的FAT 分区 • 在MBR中的代号是0xEF • GPT中的GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B • 通过cfdisk或 cgdisk来选择分区格式 • 移动设备只要格式化成FAT12 FAT16 FAT32即可作为EFI分区 • 默认执行/EFI/Boot/bootx64.efi
UEFI Windows与Linux共存 • 先装的Windows的话,会有个现成的EFI分区 • 把它挂载成Linux的/boot,安装,引导器选择gummiboot • 完成!
UEFI 启动U盘 • 目标:Archlinux +Ubuntu + Windows 8 安装器 • 以Archlinux为主体(因为Archlinux自带gummiboot) • 步骤如下: • 复制Archlinux安装光盘上的所有文件到U盘 • 复制Ubuntu除/EFI/Boot/BOOTX64.EFI之外的所有文件到U盘 • 复制Windows光盘除/EFI/Boot/bootx64.efi之外的文件到U盘 • 把光盘的/EFI/Boot/bootx64.efi复制到/EFI/Microsoft/Boot/下面
UEFI 启动U盘 • 写菜单: • /loader/entries/windows.conf: title Windows 8 Installer efi /EFI/Microsoft/Boot/bootx64.efi • /loader/entries/ubuntu.conf: title Ubuntu Grub Menu efi /EFI/Boot/grubX64.EFI