5.12. 分配磁盘空间

5.12.1. 分区方案

在机器分区方面,没有普遍正确的方法。 有许多因素必须考虑在内,具体取决于机器的用途。

对于磁盘空间有限的简单工作站,例如笔记本电脑,您可能只有 3 个分区。 一个分区用于/, /boot和交换分区。 但是,对于大多数用户来说,这不是一个推荐的解决方案。

传统的方法是拥有一个(相对)较小的根文件系统,并为文件系统(例如/usr/home>)创建单独的分区。 如果根文件系统很小且不经常使用,则创建一个单独的根文件系统不太可能在系统崩溃时损坏,因此更容易恢复崩溃的系统。 原因是防止根文件系统被填满并导致系统崩溃。

在创建分区方案时,您需要记住一些事项。 您不能为以下目录创建单独的分区/bin, /etc, /dev, /initrd, /lib/sbin。 这些目录的内容在启动时是必需的,并且必须始终是/分区的一部分。

还建议您为/var/tmp创建单独的分区。 这是因为这两个目录通常都有不断变化的数据。 不为这些文件系统创建单独的分区会使您面临日志文件填满的风险。/分区的一部分。

服务器分区的一个例子是

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             9.7G  1.3G  8.0G  14% /
/dev/hda1             128M   44M   82M  34% /boot
/dev/hda3             4.9G  4.0G  670M  86% /usr
/dev/hda5             4.9G  2.1G  2.5G  46% /var
/dev/hda7              31G   24G  5.6G  81% /home
/dev/hda8             4.9G  2.0G  670M  43% /opt
	

拥有太多分区的问题在于它将总的可用磁盘空间分成许多小块。 避免此问题的一种方法是使用逻辑卷来创建。

5.12.2. 逻辑卷管理器 (LVM)

使用 LVM 使管理员可以灵活地创建逻辑磁盘,这些逻辑磁盘可以随着需要更多磁盘空间而动态扩展。

这首先通过创建分区,分区类型为 0x8e Linux LVM 分区类型来完成。 然后将物理分区添加到卷组中,并分成块,或物理扩展 卷组。 然后可以将这些扩展分组到逻辑卷中。 然后可以像物理分区一样格式化这些逻辑卷。 最大的区别在于它们可以通过向其中添加更多扩展来扩展。

目前,对 LVM 的全面讨论超出了本指南的范围。 但是,有关学习更多关于 LVM 的优秀资源可以在 http://www.tldp.org/HOWTO/LVM-HOWTO.html 找到。

5.12.3. 空间需求

您安装的 Linux 发行版将指示各种配置所需的磁盘空间量。 单独安装的程序也可能这样做。 这将帮助您规划磁盘空间使用情况,但您应该为未来做好准备,并为以后注意到您需要的东西预留一些额外的空间。

用户文件所需的量取决于您的用户希望做什么。 大多数人似乎需要尽可能多的空间来存放他们的文件,但他们能够愉快地接受的数量差异很大。 有些人只进行轻量级的文本处理,并且可以使用几兆字节的内存很好地生存,而另一些人则进行繁重的图像处理,并且需要千兆字节的内存。

顺便说一句,在比较以千字节或兆字节为单位的文件大小和以兆字节为单位的磁盘空间时,了解这两个单位可能不同很重要。 一些磁盘制造商喜欢假装千字节是 1000 字节,兆字节是 1000 千字节,而所有其他计算机世界都使用 1024 作为这两个因子。 因此,345 MB 的硬盘实际上是 330 MB 的硬盘。

交换空间分配在第 6.5 节中讨论。

5.12.4. 硬盘分配示例

我曾经有一个 10 GB 的硬盘。 现在我正在使用 30 GB 的硬盘。 我将解释我如何以及为什么对这些磁盘进行分区。

首先,我创建了一个/boot分区,大小为 128 MG。 这比我需要的要大,并且足够大,可以在我需要时为我提供空间。 我创建了一个单独的/boot分区,以确保此文件系统永远不会被填满,因此是可启动的。 然后我创建了一个 5 GB 的/var分区。 由于/var文件系统是存储日志文件和电子邮件的地方,因此我想将其与我的根分区隔离。(我过去曾遇到过日志文件在一夜之间增长并填满我的根文件系统的情况。) 接下来,我创建了一个 15 GB 的/home分区。 这在系统崩溃时非常方便。 如果我必须从头开始重新安装 Linux,我可以告诉安装程序不要格式化此分区,而是重新挂载它而不会丢失数据。 最后,由于我有 512 MG 的 RAM,我创建了一个 1024 MG(或 1 GB)的交换分区。 这给我留下了大约 9 GB 的根文件系统。 我使用旧的 10 GB 硬盘驱动器,我创建了一个 8 GB 的/usr分区,并留出 2 GB 未使用。 这是为了以防将来我需要更多空间。

最后,我的分区表看起来像这样

表 5-3。我的分区

9 GB根文件系统
1 GB交换分区
5 GB/var文件系统
15 GB/home文件系统
/usr文件系统
2 GB暂存分区

5.12.5. 为 Linux 添加更多磁盘空间

为 Linux 添加更多磁盘空间很容易,至少在硬件已正确安装之后(硬件安装不在本书的范围之内)。 如果需要,您可以格式化它,然后按照上述说明创建分区和文件系统,并将正确的行添加到/etc/fstab以便自动挂载它。

5.12.6. 节省磁盘空间的技巧

节省磁盘空间的最佳技巧是避免安装不必要的程序。 大多数 Linux 发行版都有一个选项,只安装它们包含的部分软件包,通过分析您的需求,您可能会注意到您不需要其中大多数软件包。 这将有助于节省大量磁盘空间,因为许多程序都非常大。 即使您确实需要特定的软件包或程序,您也可能不需要它的全部功能。 例如,某些在线文档可能是不必要的,GNU Emacs 的某些 Elisp 文件、X11 的某些字体或用于编程的某些库也可能是不必要的。

如果您无法卸载软件包,您可以考虑压缩。 压缩程序(例如 gzipzip)将压缩(和解压缩)单个文件或文件组。gzexe 系统将对程序进行压缩和解压缩,这对用户是不可见的(未使用的程序被压缩,然后在使用时解压缩)。 实验性的 DouBle 系统将压缩文件系统中的所有文件,这对使用它们的程序是不可见的。(如果您熟悉 MS-DOS 的 Stacker 或 Windows 的 DriveSpace 等产品,则原理是相同的。)

节省空间的另一种方法是在格式化分区时要特别小心。 大多数现代文件系统都允许您指定块大小。 块大小是文件系统将用于读取和写入数据的块大小。 当使用大型文件(例如数据库)时,较大的块大小将有助于磁盘 I/O 性能。 发生这种情况是因为磁盘可以在搜索下一个块之前读取或写入数据更长的时间。