求 linux 下的启动分区修复工具,boot-repair

2020-05-14 汽车 60阅读
你的描述有点乱……
启动分区只是一个思维概念。
一般 Linux 里面启动分区表示的是含有内核的分区。
内核放在 /boot 里面,所以 /boot 被理解为启动分区。
Linux 的内核本身不能自己启动,他需要一个外部的 bootloader 程序。现在用的都是 grub (古老的 lilo 已经被废弃了)。grub 的启动,要从 IBM/PC 兼容机的启动方式说起……
忽略软盘光盘的启动,直接说硬盘,启动顺序是 BIOS -> 启动硬盘的 0 面 0 柱面 0 磁道 0 扇区(理解为硬盘的最开始就行了)里面的程序 -> MBR 程序进行二级引导程序运行 -> 系统的启动程序 -> 启动系统 。
MBR 在的这个扇区称为做 MBR 扇区。里面的东西是主引导记录(MBR 的本意),一个扇区 512 字节,这里的程序只有 446 字节,后 4*16 字节是主分区表,共 4 个位置,外加 2 字节的 55AA 标志。
真正启动计算机的东西,在这里,不过 446 字节不可能启动一个大型系统,所以这里是过渡程序,Windows 的过渡程序是寻找主分区表中被标志为“激活”的分区,启动这个分区的超级块里面的程序(类似 MBR 程序,但没有了 446 字节的限制,所以可以实现系统启动)。
GRUB 在 MBR 里面的程序是一个根据设置,直接继续启动 GRUB 后期的程序代码(stage2)。从而启动进入完整 GRUB 功能的环境,读取 Linux 内核并且运行内核。GRUB 的启动在部分阶段是不需要分区支持的,这点可以绕过很多问题。但也有很多问题……
现在说启动分区的问题:
Windows 的启动分区就是主分区表中的“激活分区”,如果你的 C 不是激活分区,那么你的 Windows 不能启动。
GRUB的特性导致了一个问题:只要能启动到 GRUB ,并且 GRUB 可以继续启动 Linux 内核,那么就不需要什么别的要求(Windows 必须有个主分区的 C 放置 NTLDR ,因为他的 MBR 程序太简单,设计理念的问题……)
所以,Linux 其实是可以不用 /boot 的。他仅仅是一个习惯传统而已。
你可以认为能启动 grub ,而且存放内核的分区,就是 Linux 的启动分区。
但 grub 和内核可以在两个不同的地方。这个时候,启动分区你最好理解为 放置 GRUB 的分区。
有关你的盘的分区容量的问题:
Linux 的 / 分区必须是 Linux 的分区类型,也就是需要格式化为 Windows 不支持的分区。你删除 XP 所占用的空间要怎么删除?这是需要重新分区的(PQ Magic 可以缩小你的 XP 分区,把腾出来的空间分一个新的分区)。所以你的 hda1 如果给 Linux ,只能格式化,或者拆分出来新的分区来给 Linux 。
但这样还一个问题:你以前的 Linux 分区如何规划的?可能这里新的分区,不能合并到你的 Linux 分区里面。
你现在可能把 GRUB 安装到 MBR 上了,但你 fdisk -l 看到的其实是 Windows 的激活分区,GRUB 启动是忽略“激活”分区的。他直接去找 GRUB 所在分区。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com