问题描述
由于单独的 /home
分区有助于轻松重新安装/升级。使用 /boot
在使用 Windows 进行双引导时是否有帮助?我的意思是它对于普通台式机/笔记本电脑用户有用还是需要部署在服务器中的先进技术?
最佳回答
[这个答案中有关 GRUB2 和 LVM 的信息很大程度上归功于 Jan 的努力;最初这个答案是严重错误的,Jan 值得赞扬我所做的改进。 -以利亚]
不使用 LVM 时,单独的 /boot
分区主要用于确保启动所需的文件足够靠近驱动器的开头(当 /
分区本身不在驱动器的开头时)。例如,您可能希望将 linux-swap 分区放置在非常靠近驱动器开头的位置,因为在某些驱动器上,靠近驱动器开头的数据可能会更快地被访问。然后,您可以有一个小的 /boot
分区,然后是 linux-swap 分区,最后是 /
分区(然后是其他单独的分区,如果有的话,例如 /home
)。
在相当长的一段时间里,这在很大程度上是不必要的,因为使用较新的 BIOS,您通常可以引导其引导文件位于远离磁盘开头的分区中的系统。尽管如此,这样做也没什么坏处(除非你把 /boot
做得太小以至于填满——它可能应该是 250 MiB 左右),所以很多手动分区的人仍然这样做。
像 LILO 这样的旧引导加载程序本身有一些限制,这使得单独的 /boot
分区很有用,如 Jan points out 。
使用LVM时,如果您的/
分区位于LVM上,则以前需要有一个单独的/boot
分区。在这样的配置中,/boot
分区不是LVM的分区,而是LVM启动之前的磁盘上的分区。这是因为引导加载程序无法从 LVM 读取文件。因此,如果 LVM 上没有单独的 /boot
分区,则您永远无法启动系统(有关详细信息,请参阅 this 和 this)。
从 LVM 读取文件的能力为 added with GRUB2 ,这意味着所有最新版本的 Ubuntu(Ubuntu 9.10 Karmic Koala 及更高版本) have it 。因此,通过正确的配置,您可以将整个 Ubuntu 系统置于 LVM 中,而无需单独的 /boot 分区。有关如何配置的详细信息,请参阅 this page。 (事实上,唯一使用原始 GRUB 而不是 GRUB2 的 currently supported Ubuntu 版本是 Ubuntu 8.04 LTS Server;所有其他非 EoL 版本(10.04 LTS、10.10、11.04 和 11.10)都使用 GRUB2。)
如果您使用 LVM 但不用于 Ubuntu 系统驱动器,仅用于存储驱动器,或者用于系统的某些部分(可能用于 /home
)但不用于 /
,则不需要单独的 /boot
分区,即使您正在使用旧的(GRUB2 之前的)系统。
总之,对于不使用 LVM 的系统,单独的 /boot
分区在很大程度上取决于个人喜好,而安装在 LVM 上的旧系统可能需要一个分区。
次佳回答
/boot
的存在是出于技术和历史原因。
引导加载程序(grub 或 lilo)必须能够访问其自己的文件、Linux 内核和初始 ramdisk。这些文件放置在 /boot
中。
早期版本的 lilo 只能访问 HDD 的某些子集,只能识别有限数量的文件系统(实际上只有 ext2),并且要求文件系统驻留在主分区或逻辑分区上(即没有 md RAID 或 LVM)。因此,拥有一个小的 /boot
分区已成为常见的做法。
现代版本的 grub 更加灵活,因此,在许多情况下,不再需要 /boot
的单独分区。
对于双引导 Linux 和 Windows, /boot
是无关紧要的(尽管我喜欢将引导分区的引导扇区用于船装载机。)但是,当双引导不同的 Linux 安装时,共享 /boot
是很常见的。