为/ boot创建一个单独的分区好吗?


77

我见过有人为做了一个单独的分区/boot。这样做有什么好处?将来这样做会遇到什么问题?


另外,除了/home和之外/boot,可以分隔哪些分区?推荐吗?


1
我的Ubuntu 8.04来自Dell,带有/ boot分区。这不是我的选择。当我安装10.04 fresh时,它没有尝试创建一个。
David Thornley,2010年

当我第一次尝试安装Arch Linux时,强烈建议这样做,甚至在我第一次不这样做时也安装失败。但是,从未在其他发行版中出现问题。

Answers:


46

当机器无法处理大型硬盘驱动器时,这是“ ye olde tymes”的保留。/boot分区背后的想法是使该分区始终可被驱动器插入的任何计算机访问。如果机器可以到达驱动器的起始位置(较低的气缸号),则它可以引导系统。从那里,Linux内核将能够绕过BIOS引导限制并解决该问题。随着现代机器解除了这一限制,/boot除非您需要对其他分区进行额外处理,例如加密或引导加载程序本身无法识别的文件系统,否则不再需要将其单独分开。

从技术上讲,只要您没有使用真正的旧硬件(1998年前后),就可以摆脱一个分区的困扰。

如果您确实决定使用单独的分区,请确保为其留出足够的空间,例如200mb。对于几次内核升级(每次消耗几兆)来说,这已经足够了。如果/ boot开始填满,请删除您不使用的较旧的内核,并调整引导加载程序以识别这一事实。


2
关于大小,“对于Fedora 13,默认的/ boot分区大小已增加到500 MiB,以避免将来出现这些问题”。(从fedoraproject.org/wiki/...
克里斯蒂安Ciupitu

3
500M?他们存储在哪里?我什至都不需要100M,现在我正在使用13M /boot
xenoterracide

27
拥有/ boot分区的现代原因仍然很多,它们都归结为“引导加载程序无法读取根文件系统”。正如您所说,历史用例驱动器太大,但是现代用例是加密,新文件系统(例如ext4),LVM或GRUB不支持的任何深奥设置。
Shiny先生和新安宇

22
有人提到过,在双重引导情况下,如果在Windows之后安装Linux系统,则GRUB会为并排系统提供引导行。如果/ boot不在单独的分区上,则Linux分区的删除将使计算机无法启动。如果/ boot在单独的分区上,则删除Linux安装(例如,根分区)不会损害启动辅助系统的能力。
mbaitoff 2011年

5
我的100MB / boot分区已经过时的内核溢出。发生这种情况时非常混乱。
Malfist 2011年

39

拥有/ boot分区的原因之一是它允许使用诸如加密的/之类的东西,其中的内核和initrd是从未加密的分区中加载的,然后用于装载包含操作系统的加密根分区。但是,对于一般用法来说并不重要。

Riccardo Murri添加评论:

单独使用/ boot也是有历史原因的:在较早的时候,BIOS只能访问大磁盘的一部分,因此OS引导加载程序所需的所有文件都必须保存在BIOS可访问区域中。因此,一个单独的/ boot分区。不过,这不再适用


1
好吧... iirc引导加载程序仍然只能访问主分区...因此,如果您有很多扩展分区,它会很有用。
xenoterracide

18

像Red Hat这样的主要企业发行版的主要原因是,我认为Suse使用单独的/ boot是因为它们默认使用LVM,而不能使用Grub从LVM进行引导。就这么简单。

因此,如果您想使用LVM,那将是一个福音,请使用单独的/ boot。就个人而言,我认为这是使用LVM和单独的分区进行的事情上好的做法,比如/var/boot/home/tmp,甚至/usr在服务器上,例如,为了保护您的根文件系统或数据分区从快满。


3
另一个很好的理由是GRUB不支持ext4,仅支持ext3,因此,如果要使用ext4,/则必须有一个单独的/boot分区。
Cristian Ciupitu

一些人暗示GRUB无法从LVM引导。大约1.5年以来,GRUB2从LVM2顺利启动,而我的家用PC上没有任何问题。自切片面包以来最甜的东西。哦,这是普遍存在的(替代)安装程序默认支持的。试试看
sehe 2011年

1
至于/ tmp /,您现在可以使用tmpfs挂载内存。对于您的硬盘,它可能更快,更健康。无论如何,/ tmp /都不应该在重新启动后仍然存在。
imz –伊万·扎哈拉里舍夫(Ivan Zakharyaschev)2011年

1
Grub遗留项不起作用,如果将/ boot装载在LVM逻辑列上,则Grub 2无法工作。支持是最近才添加的。找出特定的参考文献应该不难。同上,用于软件RAID,这种支持最近也已经加入到Grub的2
Faheem米撒

@Faheem M .:所以...您是说这对您不起作用,或者主要是我必须牢记这个时间表?一个非常快速的google 出现在2006年11月20日发布的条目,所以我敢打赌我的时间表是正确的。
sehe 2011年

13

最终的原因(没有给出的那么重要)是,如果磁盘的一部分损坏,它可以使PC保持可引导状态。您拥有的分区越多,简单地不因故障而挂载该分区就越容易。

有时这可能很有用,但是通常总有一种更好的方法。

编辑:另一点:假设使用LVM的Linux是避免任何潜在问题的好方法,它使调整“分区”的大小和添加新空间变得容易。


1
是否不要求/分区的至少一部分没有损坏?当然,内核映像位于/ boot上,但驱动程序位于/ lib中,而init或sh位于/ bin中。
Shiny先生和新安宇

7

我认为这更是个人喜好。甚至可能是最佳做法。我对/ boot的个人观点是基于只读的。有时,您需要在其中写入内容以升级内核,或者在grubloader中添加其他操作系统。除此之外,只需要...好,启动。因此,将其放在单独的文件系统中可能有助于将其置于只读状态(甚至可能在安全性方面也是如此)。

应该是一个单独的文件系统吗?我想不是。但这是个坏主意吗?一点都不!


7

在回答“可能导致什么问题”这个问题的一部分时:与任何分区一样,总是存在这样的风险,即您将需要比最初分配的空间更多的空间。尽管在的情况下这种情况不太可能发生/boot,但最近由于小尺寸而导致Fedora的预升级存在问题/boot


1

关于问题的第二部分,将与当前发行版无关的所有内容放在单独的分区中可能会很有用。通过在驱动器上还留出额外的可用空间,这可以在将来需要时允许安装其他发行版,或重新安装当前发行版,从而共享对您希望在两者上看到的任何内容的访问权限。

这样,用于单独分区的候选对象将是/ usr / local和/ home以及/ root。我个人发现,创建自定义分区,将它们安装在任意安装点(例如/ part / data)中,然后进行符号链接,效率更高,如下所示:

sudo ln -sf /part/data/joe /home/joe
sudo ln -sf /part/data/root /root
sudo ln -sf /part/data/usr-local /usr/local

1

我认为未提及的另一个原因是,您可以使用文件系统类型和所需的配置,这些文件的类型和配置/boot肯定与用作的文件系统类型和配置不同/。日志记录,校验和等功能对它们没有用/boot,您可以通过停用它们或使用更简单的文件系统(如ext2)来加快启动速度。


我很难相信日记和校验和会使启动明显变慢。你有电话吗?
ignis 2013年

抱歉,没有可用的数字,您可以根据需要进行实验。对于某些人来说,即使慢了+5秒也很明显。
sakisk 2013年

您是否暗示您的体验慢了5秒?
ignis 2013年

1
不。我上次使用ext2时是对的。
sakisk

1

我发现当使用单独的/ boot分区时,从grub提示符启动非常困难。

内核似乎在/ boot上,但initramfs在/(单独的分区)上。

因此,尚不清楚在grub菜单中使用哪个分区。

由于具有单独的/ boot分区的所有潜在优势,因此还存在比正常情况下需要进行更多故障排除的风险(例如,运行grub-install而不在以后运行update-grub:S)


Fedora使用/boot,部分原因是因为历史原因grub(不是吗?)不了解所有可能的文件系统。我vmlinuz和我initrd都在/boot从git的香草内核中安装...
vonbrand

-1

让我在这里写下我的一些心得:

就我而言,我有RAID 1(仅用于/ boot 1GB)和剩余磁盘空间的RAID 5。

我使用来自debian挤压的grub 2,它很好。Grub 2不再像grub 1那样具有此限制。

如今,这无关紧要。当您拥有不知道如何从RAID5引导的grub版本1时,这是必需的,但是它知道如何从RAID 1引导。这就是原因。

就我而言,我只是为了以防万一,如果发生不好的情况,我可能会需要它。因为并非每次您都在口袋中拥有新的LIVE debian或ubuntu。

另外,如果发生了一些不好的事情,我将备份/ boot。一旦它已经保存了我的安装。

我将Linux SW RAID 1与3个HDD一起使用,并将RAID 5与相同的HDD一起使用。我用于RAID 1的前1 GB。

但是,如果使用LILO或GRUB版本1.98-> 2,则无需分隔/ boot分区。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.