inux的主分区与逻辑分区的关系介绍

2016-11-12

主分区和扩展分区的区别在于主分区位于硬盘的最开始,MBR 扇区的位置,这个位置的数据在计算机启动时,会自动被 BIOS 读取并且执行,也就是说这个位置的分区表会自动被 BIOS 读取到内存里,这样 MBR 启动程序不需要执行什么操作就能直接获得主分区表信息。但因为 MBR 只有 512 字节,分区表还要占用 4x16 字节,外加还有个 55AA 标志占用2字节,实际 MBR 可以放置可以运行的程序代码空间就只有 446 字节了。这 446 字节限制写出来的程序体积太小而不足以实现某些功能,所以这个时候系统需要使用一些 BIOS 提供的系统操作实现简单的启动工作,这个简单的代价就是 446 字节的程序不能直接读取扩展分区里面的逻辑分区的数据并且启动系统,因为扩展分区的逻辑分区表在硬盘的后部,也就是数据区里面,位置不固定需要多次查找才能找到对应的分区位置。446 字节的程序根本没办法进行操作。

而且因为还没有能进入完整的系统,所以 BIOS 提供的功能虽然很多,但仍然不够进行某些特殊操作的功能要求。

这就是为什么 Windows 就算你安装到扩展分区,他也会在 C 盘上放上很多东西的原因。因为 Windows 要求 C 盘必须是主分区才能启动系统。

Linux 的 GRUB 可以安装到扩展分区是因为他用了 MBR 的 446 字节后,MBR 之后的几个闲置扇区,大概有 8k 的容量继续放他的程序,这样的设计使得体积限制得到了缓解。这样他可以继续调用硬盘特定位置的程序代码继续启动而不一定非要主分区。

综上说的基础,主分区和扩展分区主要的区别就是启动系统的问题。BIOS 这个古老的硬件设计害死了不少程序员的脑细胞。

更多相关阅读

最新发布的文章