linux 启动分区 就是/boot吗

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:55:18
我的电脑是XP 和linux共存的
当初因没有光盘,采用的是硬盘安装linux,其中我是实现在xp下安装了grub来引导linux安装。现在硬盘空间不够用,打算删除xp所占用的空间,然后分配给linux。
但是发现在linux下/boot是挂载在/dev/hda2上的
但#fdisk -l却发现启动分区是在原XP占用的/dev/hda1上。因为启动分区在hda1中,导致我无法直接把分区空间分配给linux使用。
现在有个疑惑是启动分区和/boot目录可以在两个硬盘设备上马,那么起作用的是哪个分区上的呢,/boot/grub/fstab文件中标识的启动分区是hda2.
不解。。。。
各位朋友看看该怎么解决当前状态下分配空间的问题呢,还有就是启动分区的问题

你的描述有点乱……

启动分区只是一个思维概念。
一般 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