为什麽要分割?虽然可能找得到在单partition的
系统上运作相当正常的
Linux系统,但事实上,
* n% d3 ]* A; H; ^; c n- d. @. a: S
在您的储存媒体上分割成多个partition有很多好处,这样做可能更容易组态。
: N- V7 m. a! u0 K管Linux可以在只定义一个很大的磁碟上运作良好是个事实,但将您的硬碟分割成至少四个主要档案
$ X M4 y/ F4 o7 n4 P
系统(root,usr,home,andswap)有一些优点。其中包括:
/ b, M9 V3 V! g! C- W+ d- j# v+ o7 P$ E
第一,这可以减少档案系统检查所需
时间(当紧接在开机之後和当进手动的fsck时),因为这些检查可以
- Z l X% G7 N1 j
同步进行。(此外,千万不要执行fsck在一个已挂载的档案系统!!!您几乎可以确定会感到遗憾。一个
. i' d n, a" S
例外是如果档案系统被挂载成唯读,这样做就无害。)同样的,在多重partition的系统上进行档案系统
9 c: r- ~; G6 h W6 w% _3 H: L
的检查更简单。例如,如果我知道我的/homepartition有问题,我可以轻松地解挂载它,进行档案系统
# b1 f" u% U% e S
检查,然後重新挂载这个已修好的档案系统(如果不行的话也可以利用救援磁片,重新启动
电脑进入单人
& u9 M; K2 ?/ z- \
模式,然後进行修复)。
3 C- L. A( q. ~9 z' e5 R2 V0 A2 ?3 l0 b2 | I
第二,有了多重partition,如果您愿意的话,可以将您的一个或多个partition挂载成唯读。例如,
; m5 Y; d7 Z1 c/ G2 \
如果您决定在/usr下的所有东西即使是root也不能接触,您可以将/usrpartition挂载成唯读。
# O/ O5 g9 P2 u, _" i _/ `. s* M1 U6 K7 [' ^" D& s, p5 t
最後,partition提供的最重要好处是保护您的档案系统。如果一个档案系统出了问题(不论是人为错误
: b2 {- U$ T9 R p
或
机器故障),在一个已分割的系统您可能失去单一档案系统中的档案。在一个未分割的系统,您可能在所
! b# k8 W" C: p) I1 O# r \3 N有的档案系统失去它。
8 N9 ?8 Q# p. O! Z8 O) b5 E- ^ @8 T, R- @ w" u
这个小事实可以变成大效益。例如,如果您的rootpartition损坏了而您不能开机,您基本上可以从救
) U4 U# S3 z4 P; X" S
援磁片开机,挂载您的rootpartition,然後从其他partition可能它(或从备份中回存;参考第
: C6 n6 a) k$ c/ f6 z5 m8章有关您可以如何备份及回存档案的详细说明),像是从home,然後使用紧急开机磁片再一次重新启动,
& k F. @2 {$ I8 R
键入“mountroot=/dev/hda3”(假设包含您的临时root档案系统的partition是位於hda上的第三个
9 r, B$ M6 v# } n- m
partition)然後完全启动您的Linux系统。然後您可以在您未挂载的损坏rootpartition执行fsck。
" ^9 \5 f! G0 A7 T K6 z8 Z1 Q! D2 @0 M& e
我有关於档案系统灾变的个人经验,我很感激因为使用多重partition而使得损失有限。
& b( w1 K. U& q) L& [
' o% q3 _) q3 `, {# O. {最後,既然Linux允许您设置其他作业系统(像是
Windows95/98/NT,BeOS,或其他您有的),然後双
8 R- C2 k/ m. P! }/ A' H8 N
重-(或是三重-,...)启动您的系统,为了这个好处您可能会想要设置其馀的partition。典型地,您会想
1 S' f, V$ A( ^- _- Y. o要为每一个作业系统设置至少一个单独的partition。Linux包含了一个大方的bootloader(在
Intel
; A* P" Z& P i; \" G为基础的系统叫做LILO,在Alpha上相同的东西叫做MILO,Sparc上叫做SILO)它可以让您指定在开机
0 B+ C6 I" |8 l( v% k0 n时要用哪一个作业系统启动,还有预设时间到时地预定启动您最喜欢的作业系统(大概是Linux,是吧?)
" L0 a7 ~8 i* z# w4 J1 }
- v$ J7 J! Q# W& Z您应该根据您的需要分割一部硬碟(或一组)。在我对Intel,Alpha,及Sparc等平台的经验,对於相当负
- W Q2 @& Y& H7 [# n- y
荷的系统,进行相当多的工作时(例如家中的桌上型系统,或是作为工作上的Internet伺服器),我发现下列
. f* J8 |5 E$ I8 I# ^' P; H: k的估计值对於决定partition大小时相当实用。
5 B/ o+ T$ _/ J3 DGiven:
v: B( E% q+ k8 ]0 R) D, |7 b
$ n" S8 R% m4 t0 a. S一部磁碟机XMb/Gb(eg.2Gb)
9 M T0 k7 [% Q9 N(或是超过一部磁碟机其总和为XMb/Gb)
: V: c4 B t! i8 Z$ K) {# D
4 A* d# \. E' h) ]2 @
Calculate:
1 @* Y4 K/ q5 f: ~; H8 d3 j4 l
, E& t% d* L* I3 P(swap)大约是主记忆体的两倍(eg.64Mb系统有128Mbswap)
6 d" ?3 m! k3 v) u) g
/(root)大约占可用
空间10%(eg.200Mb)
. n; \: K8 U* ~2 V2 A
/home大约占可用空间20%(eg.400Mb)
9 o& h! \5 `/ [* w6 E9 C
/usr占所有其馀空间(eg.1272Mb)
8 P" N- ]8 f& g) R; S2 L
5 c# J% Q) W# }/var(可选择--参考下面)
; D& [3 @. m5 Q# g, R
/boot(可选择--参考下面)
' Y# E2 e. a% L; B4 k' T/archive(可选择--参考下面)
+ V# ~0 e% r, H6 p2 t$ {: V! Z" T- {
0 N7 t6 k/ J, T6 W7 S+ i
! J$ {* v& V4 i( Z5 p当然,上面只是估计的
方案。明显地您会按照您的Linux系统的用途而想要改变这些百分比。如果您想要
! ~( g# p3 ?' Q0 D* ?
增加庞大的应用软体像是WordPerfect或Netscape,或是增加对日文字型的支援,增加一些/usr空间的
& B8 I1 z$ C: f6 d2 x6 r2 _5 s大小可能有些好处。
+ f8 O7 t- k$ L2 u: `* j
6 L; W; W" V2 T- e3 @$ W o
我好像总是在/home里保留很多空间,所以果您的用户并未用得很多(或是您严格控制quota大小),或您
( q3 B% v7 l' a" t9 |/ v& U/ J
没有提供
shell帐号及个人网页等,您可以减少/home空间并且增加/usr。
$ {5 N# ^4 x* ~; z) w- M7 Q5 `
9 S$ g0 o% w2 ]$ p% i5 z: s这里是有关各种挂载点及档案系统资料的
描述,这可以给您有关如何依
需求决定最佳partition大小的较好
7 E; v7 U& Q- E; h. e$ V
意见:
4 R' r7 i7 w6 l& ?$ t0 V4 M; G9 M# a
/(root)-用来存放像暂存档等东西,Linux核心及启动影像档,重要的二进位档(在Linux可以挂载到
5 e ^# X$ m- B
/usrpartition之前所需要的东西),还有不重要的log档,印表伫列及外寄的e-mail,及使用者收到的
% L0 z4 ^9 U8 _% J6 u- h" ge-mail。当进行重要
动作时也被用来作为暂存区,例如当从原始RPM档建立RPM套件时。因此,如果您有很
/ Z& @- F* J8 m; z0 c8 Y
多使用者及很多e-mail,或考虑到您可能需要大量的暂存空间,您可能需要更多可用空间。这个partition
/ D6 u8 X5 Y$ b$ h* G+ {# Z
应该使用预设值83(Linuxnative)。此外,您可能将bootflag设定在这个partition以便将启动资讯放
5 m k3 n3 c) _& i! I8 a+ {在这里。
P1 y$ q) Q! t& k' A
/usr/-应该是最大的partition,因为Linux需要的大多数二进位档,像是安装的软体,网页,代理快取,
8 W/ y, L7 K% f7 Z! a
Samba分享服务,有些安装软体的log档等等都放在这里。partition型态应为预设值83(Linuxnative)。
+ K: A, s2 s9 ~/home/-如果您没有提供shell帐号给用户,您不需要将这partition做得很大。除非您提供给用户摆放他
: I3 Y* a1 \1 {
们的网页(像
学校的网页),这样您就必须将这个partition设得大一点。再一次,partition型态应设定
- @) @/ w. ^0 V, s% i5 {8 {
为83(Linuxnative)。
. Z0 g8 B" b! ~8 A( k, G
(swap)-Linux提供了所谓“虚拟记忆体”以建立比系统上实体记忆体更多的记忆体数量。swappartition
' P' n D9 d ?" c& f
和主记忆体一起被Linux使用以达到此目的。根据一般的原则,置换空间的大小至少应为系统上实体记忆体
0 y' E' ^0 ~: A. J$ g$ y; u( J
的两倍。
' Y5 q5 k/ l+ G1 e
, U& f \$ c: y' u/ p7 Z$ Y+ _ a
1 s3 ]- o( a7 i% m3 }' t' c如果您的系统中有不只一台实体硬碟,可以建立多重swappartition。这样可以利用平行磁碟存取改善置换效
~" S! p. |7 s6 `5 }2 q
率。例如,在一256Mb的系统有四台硬碟机,我可能建立四个128Mbswappartition,这有总共有256MbRAM,
( K" W* b9 P; m0 ]: f4 W+ f5 L
512Mb置换(加起来总共有768Mb可用的虚拟记忆体)。partition型态要变更为82(Linuxswap)。
7 p; } y% R. W1 K
注意:有一个普遍的误解就是Linux有128Mb置换大小的限制。过去这是事实,但新的Linux发行版本,其大
3 s2 P& R H; e. x1 z0 V- A5 G小决定於您的硬体架构(例如,Intel硬体的置换大小可达2Gb)。键入``manmkswap''可以得到更多讯息。
3 g4 @0 `) |- B
! Q9 j" M, ]7 i+ o6 ]# r9 v7 ]* _
/var/(可选择)-您可能打算考虑进一步划分您的/(root)partition。将/var目录用来储存runtime是个
) B9 C ?$ C0 V; `0 X% I+ v# V; w好主意,包括邮寄伫列(外寄和收入的都是),列印工作,行程锁定等。将这个目录挂载在/(root)下面可能有一
" ?$ \/ _; I O; o
点危险,因为所收到的大量e-mail(举例)可能突然灌满partition。当/(root)partition装满时坏事可能
; }; K% y6 F! i3 t0 X; c' G% d
发生(例如.系统崩溃?),让/var在他自己的partition里可以避免这个危险。我已经得到我分配给/(root)
% e% t$ v- W$ |- M: q/ `的任何空间,也许两倍,并且然後对/(root)及对/var建立分别的partition。这个partition型态应该保留
2 @: t/ Y! d4 A3 ^( X) a
预设值83(Linuxnative)。
' ~ n( ^. g+ `; H% J7 H6 {
/boot/(可选择)-在某些情况(像是您的系统设定软体的RAID组态)必须有有独立的partition以便启动
# S& B& q1 q9 c. \/ T0 ], K7 qLinux系统。这个partition将允许启动,然後载入用来读取其他档案系统的
驱动程式。这个partition的尺寸
4 i: N6 k7 p S. O5 a3 b/ F. W可以小到几Mb;我建议大约10Mb(必须有充足空间存放核心,起始的RAMdisk映像档,或许还有备份核心等)。
! T: R! U9 R/ k' ^/ }3 j, z2 v$ _
partition型态应该保留为83(Linuxnative)。
2 ]* _$ j1 A& f" E+ }# h+ P
/archive/(选项)-如果您还有多馀的空间,也许您还可以因为其他目录得到一些好处,例如/archive。您可
+ w, Q$ e# {: A! G以使用/archive目录存放备份的东西,很大或不常用的档案,samba档案服务,或其他您可以发现的用途。
+ N) ?" N) E! B. V; d$ Xpartition可以保留预设的83(Linuxnative),或是如果您想让Linux和其他作业系统一起使用它,您可以变
7 O; P* n# j7 ?# ?2 p" y更它的ID,像是6(DOS16-bit%26gt;=32M).
9 ^* t2 [$ c! m
当加入新的硬碟时,更多的partition可以加入新的硬碟机,依需求挂载在各个挂载点--意指Linux系统永远不
/ M& o9 H! _# d' a% b
必担心空间用完。例如,如果在以後sda6快要用满了,我们可以加入另一个硬碟,於/usr/local大小合适的partition
" M; ^; l( y9 `$ l ~% x; B. u
做一个挂载点--然後将所有资料从/usr/local传送到新硬碟。系统或应用软体组件不会中断,因为Linux会看见
0 O5 i$ I: L7 z1 ~: U& F+ b- I% O
/usr/local,不论它位在哪里。
" b, c1 X7 [! v0 N2 w" `. Y为了给您一个别人可能怎样设定partition的例,我已经使用下面的分割方案在一部Intel的系统上(双重开机,
! ~) }! g" S/ O4 O8 Y
Windows95和Linux):
6 U. X9 c s2 fDeviceBootBeginStartEndBlocksId
System9 O# u" s% A) S$ ?: I/ u, i/ ?
/dev/hda1*112541024096+6DOS16-bit%26gt;=32M
4 ]9 u2 q! H2 z) c5 [/ O8 v/dev/hda225525578221288965Extended
) e- {! W0 y8 B2 k6 D4 Q0 h
/dev/hda5255255331310432+83Linuxnative
2 |, L6 _# m6 u3 @% a! w* o* F( R% u
/dev/hda63323326361229728+83Linuxnative
& L: J/ q4 p- e( R# J- Z/dev/hda7637637749455584+83Linuxnative
2 T) ^3 a! Z: C% y
/dev/hda8750750782133024+82Linuxswap
/ A6 ^. H0 W2 C$ @* h" ^7 _8 g: r1 t' I* C) p
. v7 c. U; d( k: L# B# g5 G: c! d9 d1 k
第一个partition,/dev/hda1,是一个dos格式的档案系统,用来存放可供选择的作业系统(Windows95)。这给了
! @. e9 H" a' A+ B我1Gb空间在作业系统上。
# B& d. ^! a9 n+ N5 c
# G3 o' A$ v4 I第二个partition,/dev/hda2,是一个实体的partition(叫做“extended”)包含了硬碟上剩下的其馀空间。
9 s' @5 z# ^. H, }/ N/ m
这只是用来封装其馀的
逻辑partition(硬碟上可以有4个实体partition;在我的例子中我需要超过4个partition,
; F: W0 Y7 y9 l
因此对於其馀的我必须使用逻辑partition方案)。
8 N. {( A2 q- f) U$ U; p" f; k9 q1 M, N! \( l+ g X1 j. K
从第三到第五个partitions,/dev/hda5,/dev/hda6,及/dev/hda7,全都是e2fs-格式档案系统用在/(root),
t" {( C/ t, X# r3 d
/usr,以及/homepartition。
3 c2 E% k5 y4 _- G: H
, \1 t6 `- p: t2 t) T! w; P
最後,第六个partition,/dev/hda8用作swappartition。
/ I: h! f( }4 k9 u4 k) C. n: K
6 B; d9 m2 r, g9 t- ?0 e$ E
另一个例子,这一次是有两部硬碟的Alpha的机器(只有Linux单独开机),我已经选择下面两个分割方案:
2 l7 |! M- y# s6 i
DeviceBootBeginStartEndBlocksIdSystem
7 m* I% H1 E2 X: \/dev/sda111120464DOS16-bit%26lt;32M
8 Z$ N* t5 u3 M1 x/ b8 A
/dev/sda22216834685983Linuxnative
0 |, E0 v1 c: _" E3 o
/dev/sda316916923113085182Linuxswap
1 q6 G/ K- D/ a2 b% D. t+ k0 a; z8 o/dev/sda4232232100916159065Extended
7 Q/ H! \2 r6 A, B d/dev/sda523223239834682883Linuxnative
4 y+ B, N( R: y1 t5 N/dev/sda63993991009126901683Linuxnative
. [4 H+ i( d: v Y0 O7 e& J
/dev/sdb111509211435583Linuxnative
2 }% f) ^8 y& s+ o! S1 {* J/dev/sdb25105101019211854083Linuxnative
( p; k+ p# ~) ?% W
! c% g) N1 G3 |; I
. w; o. D3 v& D# p+ u7 `: ?$ B( x2 ]& ~# s4 I
第一个partition,/dev/sda1,是一个储存MILObootloader的DOS-格式的档案系统。Alpha的平台和Intel
% g- O+ X: ~( I% e% |9 U7 \2 Y的系统有一个不一样的启动方式,因此Linux存放boot资料在一个FATpartition。这个partition在允许围
3 C% l+ [$ F- U- u' e& O* |" E内可以可能的小--在这里只有2Mb。
+ Z; f8 B7 n5 z8 W5 q; Z
" M$ [2 n! Y8 x
第二个partition,/dev/sda2,是一个用在/(root)partition的e2fs格式档案系统。
0 P/ _* b, q: R. A ^/ C& i& t. Z! r! t7 b5 |9 A- Y$ u( y
但三个partition,/dev/sda3,用来作swappartition。
, |5 d( K ^9 m! l
: N4 s, G6 l% a+ a! E4 Y) M第四个partition,/dev/sda4,是一个“extended”partition(前面的例子有更详尽的说明)。
9 X: {/ m, W/ J) D
4 e( ^, \% v6 Z
第五及第六个partition,/dev/sda5及/dev/sda6,是分别用在/home及/usrpartitions的e2fs格式档案
/ a+ j: F- @; a- _: C; {3 |/ A
系统。
, o" J+ @: W! s3 U
, z; x4 w9 }" g* ]第七个partition,/dev/sdb1,是用在/archivepartition的e2fs格式档案系统。
1 d8 f1 ^$ n7 p0 _/ U0 [5 h. r0 h9 y8 V+ M2 ]
第八及最後的partition,/dev/sdb2,是用在/archive2partitions的e2fs格式档案系统。
5 E5 V' I1 k6 ~% _9 v6 y9 z. j
( i0 @' R2 d6 Y. R( o8 U3 D在您设定好partition资料之後,需要将新的partition写进磁碟中。然後RedHat安装程式重新载入partition
" |4 f0 h0 `. a, |" Z# @) D$ y5 Utable到记忆体中,您就可以进行下一步的安装步骤