Linux 网管 123 --- 第4章. 安装及硬体组态 - 3.分割硬碟机
2024-07-26 00:30:31
供稿:网友
为什麽要分割 ? 虽然可能找得到在单 partition 的系统上运作相当正常的 linux 系统,但事实上,
在您的储存媒体上分割成多个 partition 有很多好处,这样做可能更容易组态。
管 Linux 可以在只定义一个很大的磁碟上运作良好是个事实,但将您的硬碟分割成至少四个主要档案
系统(root, usr, home, and swap)有一些优点 。其中包括:
第一,这可以减少档案系统检查所需时间 (当紧接在开机之後和当进手动的 fsck时),因为这些检查可以
同步进行。(此外,千万不要 执行 fsck 在一个已挂载的档案系统!!! 您几乎可以确定会感到遗憾。一个
例外是如果档案系统被挂载成唯读,这样做就无害。) 同样的,在多重 partition的系统上进行档案系统
的检查更简单。例如,如果我知道我的 /home partition 有问题,我可以轻松地解挂载它,进行档案系统
检查,然後重新挂载这个已修好的档案系统 (如果不行的话也可以利用救援磁片,重新启动电脑进入单人
模式,然後进行修复)。
第二,有了多重 partition,如果您愿意的话,可以将您的一个或多个 partition 挂载成唯读。例如,
如果您决定在 /usr 下的所有东西即使是 root 也不能接触,您可以将 /usr partition 挂载成唯读。
最後,partition 提供的最重要好处是保护您的档案系统。如果一个档案系统出了问题 (不论是人为错误
或机器故障),在一个已分割的系统您可能失去单一档案系统中的档案。在一个未分割的系统,您可能在所
有的档案系统失去它。
这个小事实可以变成大效益。例如,如果您的 root partition 损坏了而您不能开机,您基本上可以从救
援磁片开机,挂载您的 root partition,然後从其他 partition 可能它 (或从备份中回存; 参考第
8 章有关您可以如何备份及回存档案的详细说明),像是从home, 然後使用紧急开机磁片再一次重新启动,
键入 “mount root=/dev/hda3” (假设包含您的临时 root 档案系统的 partition 是位於hda上的第三个
partition ) 然後完全启动您的 Linux 系统。然後您可以在您未挂载的损坏 root partition执行 fsck 。
我有关於档案系统灾变的个人经验,我很感激因为使用多重 partition 而使得损失有限。
最後,既然 Linux 允许您设置其他作业系统 (像是 Windows 95/98/NT, BeOS, 或其他您有的),然後双
重- (或是三重-, ...) 启动您的系统,为了这个好处您可能会想要设置其馀的 partition。典型地,您会想
要为每一个作业系统设置至少一个单独的 partition 。 Linux 包含了一个大方的 boot loader (在 Intel
为基础的系统叫做 LILO , 在 Alpha 上相同的东西叫做 MILO, Sparc 上叫做 SILO ) 它可以让您指定在开机
时要用哪一个作业系统启动,还有预设时间到时地预定启动您最喜欢的作业系统 (大概是 Linux, 是吧 ?)
您应该根据您的需要分割一部硬碟(或一组)。在我对 Intel,Alpha, 及 Sparc 等平台的经验,对於相当负
荷的系统,进行相当多的工作时(例如家中的桌上型系统,或是作为工作上的 Internet 伺服器),我发现下列
的估计值对於决定 partition 大小时相当实用。
Given:
一部磁碟机 X Mb/Gb (eg. 2 Gb)
(或是超过一部磁碟机其总和为 X Mb/Gb)
Calculate:
(swap) 大约是主记忆体的两倍 (eg. 64 Mb 系统有 128 Mb swap)
/ (root) 大约占可用空间 10% (eg. 200 Mb)
/home 大约占可用空间 20% (eg. 400 Mb)
/usr 占所有其馀空间 (eg. 1272 Mb)
/var (可选择 -- 参考下面)
/boot (可选择 -- 参考下面)
/archive (可选择 -- 参考下面)
当然, 上面只是估计的方案。 明显地您会按照您的 Linux 系统的用途而想要改变这些百分比。如果您想要
增加庞大的应用软体像是 WordPerfect 或 Netscape,或是增加对日文字型的支援,增加一些 /usr 空间的
大小可能有些好处。
我好像总是在 /home 里保留很多空间,所以果您的用户并未用得很多 (或是您严格控制 quota 大小),或您
没有提供 shell 帐号及个人网页等,您可以减少 /home 空间并且增加 /usr。
这里是有关各种挂载点及档案系统资料的描述,这可以给您有关如何依需求决定最佳 partition大小的较好
意见:
/ (root) - 用来存放像暂存档等东西,Linux 核心及启动影像档,重要的二进位档 (在 Linux 可以挂载到
/usr partition之前所需要的东西), 还有不重要的 log 档,印表伫列及外寄的 e-mail,及使用者收到的
e-mail。当进行重要动作时也被用来作为暂存区,例如当从原始RPM档建立 RPM 套件时。因此,如果您有很
多使用者及很多 e-mail,或考虑到您可能需要大量的暂存空间,您可能需要更多可用空间。这个 partition
应该使用预设值83 (Linux native)。此外,您可能将 boot flag 设定在这个 partition 以便将启动资讯放
在这里。
/usr/ -应该是最大的 partition, 因为 Linux 需要的大多数二进位档,像是安装的软体,网页,代理快取,
Samba 分享服务,有些安装软体的 log 档等等都放在这里。partition 型态应为预设值 83 (Linux native)。
/home/ -如果您没有提供 shell 帐号给用户,您不需要将这 partition 做得很大。除非您提供给用户摆放他
们的网页(像学校的网页),这样您就必须将这个 partition 设得大一点。再一次, partition型态应设定
为 83 (Linux native)。
(swap) - Linux 提供了所谓“虚拟记忆体”以建立比系统上实体记忆体更多的记忆体数量。 swap partition
和主记忆体一起被 Linux 使用以达到此目的。根据一般的原则,置换空间的大小至少应为系统上实体记忆体
的两倍。
如果您的系统中有不只一台实体硬碟,可以建立多重 swap partition。这样可以利用平行磁碟存取改善置换效
率。例如,在一 256 Mb 的系统有四台硬碟机,我可能建立四个 128 Mb swap partition,这有总共有 256 Mb RAM,
512 Mb 置换 (加起来总共有 768 Mb 可用的虚拟记忆体)。partition 型态要变更为 82 (Linux swap)。
注意: 有一个普遍的误解就是Linux有 128 Mb 置换大小的限制。过去这是事实,但新的 Linux 发行版本,其大
小决定於您的硬体架构(例如,Intel 硬体的置换大小可达 2 Gb)。键入 ``man mkswap'' 可以得到更多讯息。
/var/ (可选择) - 您可能打算考虑进一步划分您的 / (root) partition 。 将 /var 目录用来储存 runtime 是个
好主意,包括邮寄伫列 (外寄和收入的都是),列印工作,行程锁定等。将这个目录挂载在 / (root) 下面可能有一
点危险,因为所收到的大量 e-mail (举例)可能突然灌满 partition。当 / (root) partition 装满时坏事可能
发生 (例如. 系统崩溃 ?),让 /var 在他自己的 partition 里可以避免这个危险。我已经得到我分配给 / (root)
的任何空间,也许两倍,并且然後对 / (root) 及对 /var建立分别的 partition。 这个 partition 型态应该保留
预设值 83 (Linux native)。
/boot/ (可选择) - 在某些情况 (像是您的系统设定软体的 RAID 组态)必须有有独立的 partition 以便启动
Linux 系统。这个 partition 将允许启动,然後载入用来读取其他档案系统的驱动程式。这个 partition 的尺寸
可以小到几 Mb; 我建议大约 10 Mb (必须有充足空间存放核心,起始的 RAMdisk映像档,或许还有备份核心等)。
partition 型态应该保留为 83 (Linux native)。
/archive/ (选项) - 如果您还有多馀的空间,也许您还可以因为其他目录得到一些好处,例如 /archive。您可
以使用 /archive 目录存放备份的东西, 很大或不常用的档案,samba 档案服务,或其他您可以发现的用途。
partition 可以保留预设的 83 (Linux native),或是如果您想让 Linux 和其他作业系统一起使用它,您可以变
更它的 ID,像是 6 (DOS 16-bit >=32M).
当加入新的硬碟时,更多的 partition可以加入新的硬碟机,依需求挂载在各个挂载点 -- 意指 Linux 系统永远不
必担心空间用完。例如, 如果在以後sda6 快要用满了,我们可以加入另一个硬碟,於 /usr/local 大小合适的 partition
做一个挂载点 -- 然後将所有资料从 /usr/local 传送到新硬碟。系统或应用软体组件不会中断,因为 Linux 会看见
/usr/local ,不论它位在哪里。
为了给您一个别人可能怎样设定 partition 的例,我已经使用下面的分割方案在一部 Intel 的系统上 (双重开机,
Windows 95 和Linux):
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 254 1024096+ 6 DOS 16-bit >=32M
/dev/hda2 255 255 782 2128896 5 Extended
/dev/hda5 255 255 331 310432+ 83 Linux native
/dev/hda6 332 332 636 1229728+ 83 Linux native
/dev/hda7 637 637 749 455584+ 83 Linux native
/dev/hda8 750 750 782 133024+ 82 Linux swap
第一个 partition, /dev/hda1,是一个dos格式的档案系统,用来存放可供选择的作业系统 (Windows 95)。这给了
我 1 Gb 空间在作业系统上。
第二个 partition, /dev/hda2, 是一个实体的 partition (叫做 “extended”) 包含了硬碟上剩下的其馀空间。
这只是用来封装其馀的逻辑 partition(硬碟上可以有 4 个实体 partition ; 在我的例子中我需要超过 4 个 partition,
因此对於其馀的我必须使用逻辑 partition方案)。
从第三到第五个 partitions, /dev/hda5, /dev/hda6,及 /dev/hda7,全都是 e2fs-格式档案系统用在 / (root),
/usr,以及 /home partition。
最後,第六个 partition, /dev/hda8 用作 swap partition。
另一个例子,这一次是有两部硬碟的 Alpha的机器 (只有 Linux 单独开机),我已经选择下面两个分割方案 :
Device Boot Begin Start End Blocks Id System
/dev/sda1 1 1 1 2046 4 DOS 16-bit <32M
/dev/sda2 2 2 168 346859 83 Linux native
/dev/sda3 169 169 231 130851 82 Linux swap
/dev/sda4 232 232 1009 1615906 5 Extended
/dev/sda5 232 232 398 346828 83 Linux native
/dev/sda6 399 399 1009 1269016 83 Linux native
/dev/sdb1 1 1 509 2114355 83 Linux native
/dev/sdb2 510 510 1019 2118540 83 Linux native
第一个 partition, /dev/sda1,是一个储存 MILO boot loader的 DOS-格式的档案系统。Alpha 的平台和 Intel
的系统有一个不一样的启动方式,因此 Linux 存放 boot 资料在一个 FAT partition。这个 partition 在允许围
内可以可能的小 -- 在这里只有2Mb。
第二个 partition, /dev/sda2,是一个用在 / (root) partition的 e2fs 格式档案系统。
但三个 partition, /dev/sda3, 用来作 swap partition。
第四个 partition, /dev/sda4, 是一个 “extended” partition (前面的例子有更详尽的说明)。
第五及第六个 partition, /dev/sda5 及 /dev/sda6,是分别用在 /home 及 /usr partitions 的 e2fs 格式档案
系统。
第七个 partition, /dev/sdb1, 是用在 /archive partition的 e2fs 格式档案系统。
第八及最後的 partition,/dev/sdb2,是用在 /archive2 partitions 的 e2fs 格式档案系统。
在您设定好 partition 资料之後,需要将新的 partition 写进磁碟中。然後 Red Hat 安装程式重新载入 partition
table 到记忆体中,您就可以进行下一步的安装步骤