Linux 启动过程详解
1. 数据重复区域与分区表推断
在输出中,地址 0000020 到 0000120 之间存在第二个重复数据区域。由于该区域与实际的引导记录不同,且在文件中全为零,我们可以推断这就是实际引导记录中分区表的位置。
此外,有一个有趣的实用工具 strings ,可用于查看文件中的 ASCII 文本字符串:
[root@studentvm1 ~]# strings /boot/grub2/i386-pc/boot.img
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
Error
Floppy
这个工具比筛选多行偶尔出现的随机 ASCII 字符来查找有意义的字符串更容易定位实际的文本字符串。但要注意,并非所有文本字符串对人类都有意义。
2. GRUB 引导记录安装
GRUB 引导记录使用 boot.img 文件作为源,安装在硬盘或其他可引导介质的第一个扇区。然后,分区表会叠加在引导记录的指定位置。
3. GRUB 阶段 1.5
3.1 位置
GRUB 阶段 1.5 必须位于引导记录与 UEFI 分区数据以及磁盘驱动器上的第一个分区之间的空间。由于技术和兼容性原因,这个空间历史上一直未被使用,有时被称为“引导轨道”或“MBR 间隙”。硬盘上的第一个分区从扇区 63 开始,而 MBR 在扇区 0,因此有 62 个 512 字节的扇区(共 31,744 字节)可用于存储 GRUB 阶段 1.5
超级会员免费看
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



