[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
4. 预备磁盘
内容:
4.a. 块设备介绍
块设备
我们要好好了解下Gentoo Linux以及普通Linux中有关磁盘方面的知识,这包括Linux文件系统、分区和块设备。然后,一旦你熟悉了磁盘和文件系统的方方面面,我们将会指导你设置分区和文件系统,为你安装Gentoo Linux做好准备。
首先,我们介绍块设备。最常见的块设备就是你Linux系统中代表第一个IDE磁盘的/dev/hda。如果你安装用的是SCSI,那么你的第一个硬盘设备会是/dev/sda。串口硬盘即使它们是IDE硬盘也会像/dev/sda表示。
上面介绍的块设备代表磁盘的抽象接口。用户程序可以使用这些块设备来与你的磁盘进行交互,而不用理会你的驱动器到底是IDE、SCSI还是其他的。程序可以把磁盘当作一系列连续的、可随机访问的512字节大小的块来访问。
分区和片段
尽管在理论上可以使用一整块磁盘来安装你的Linux系统,但是在实际中几乎从不这样做。相反,整个磁盘块设备被分割成更小、更容易管理的块设备。在大多数系统中,这些被称作分区。在其他一些构架中近似的称呼为分片。
4.b. 设计分区方案
默认分区方案
如果你没有兴趣为你的系统设计分区方案,你可以使用我们在本手册中使用的分区方案:
分区 |
文件系统 |
大小 |
描述 |
/dev/sda1 |
分区表 |
31.5k |
分区表 |
/dev/sda2 |
(bootstrap) |
800k |
Apple_Bootstrap |
/dev/sda3 |
(swap) |
512M |
交换分区 |
/dev/sda4 |
ext3 |
磁盘剩余空间 |
root分区 |
注意:
有些分区叫:Apple_Driver43、Apple_Driver_ATA、Apple_FWDriver、Apple_Driver_IOKit、Apple_Patches。如果你计划不再使用MacOS 9你可以将它们删除,因为MacOS X和Linux都不需要它们。你可以使用parted来删除这些不需要的分区,因为mac-fdisk无法删除它们。
|
如果你对知道一个分区究竟应该多大或者你究竟需要多少个分区感兴趣,请继续阅读。否则请跳转到Apple G5:使用mac-fdisk来给磁盘分区或跳转到IBM pSeries:使用fdisk来给磁盘分区
多少和多大?
分区的数目主要根据你的系统环境来决定。例如,如果你有很多用户,你可能更希望把你的/home目录独立出来,因为这样做可以增加安全性,备份起来也更容易。如果你安装Gentoo用来做邮件服务器,你的/var目录应该独立出来,因为邮件都存储在/var目录中。选择一个好的文件系统将最大限度地提高你的系统性能。游戏服务器应该把/opt目录独立出来,因为大多数游戏服务端软件都安装在那。理由也与/home目录类似:安全与备份。你一定要使/usr目录保持足够大:因为它将不仅包含大部分应用程序,而且Portage树本身就需要大约500M空间,这还不包括存储在其中的各种源代码包。
正如你所看到的,这完全取决于你想要达到什么目的。独立的分区或卷有以下优点:
-
你可以为每一个分区或卷选择最佳性能的文件系统
-
如果一个有问题的工具不停地向一个分区或卷写文件,也不会把你整个系统的可用空间都用完
-
如果需要,可以减少文件系统检测的时间,因为多个检测可以并行的进行(尽管这个优势在多磁盘系统上比多分区系统上更为明显)
-
通过对一些分区或卷进行只读、nosuid(忽略setuid位)、noexec(忽略可执行位)等方式挂载,安全性会大大增强。
然而,多分区系统有一大缺点:如果配置的不合理,可能导致系统中一个分区有很大的空闲空间,而另一个没有空闲空间了。而且SCSI和SATA还有15个分区的限制。
4.c. 默认:使用mac-fdisk(Apple G5)为你的磁盘分区
现在,使用mac-fdisk创建你的分区:
代码 3.1: 启动mac-fdisk |
# mac-fdisk /dev/sda
|
首先删除你已经清空的分区为你Linux分区预留空间。在mac-fdisk中使用d来删除这些分区。它会询问你需要删除的分区号码。
其次,使用b来创建一个Apple_Bootstrap分区。它会询问你从哪块开始。键入你第一个空余分区的号码,然后紧跟一个p。比如在这儿,是2p。
注意:
这个分区并不是一个“boot”分区。它根本不被Linux所用;你不需要在上面放置任何文件系统,而且永远不要挂载它。PPC用户并不需要一个额外的/boot分区。
|
现在按c创建一个交换分区。mac-fdisk将再一次询问你想要从那块开始你的分区。因为我们之前已经使用了2来创建Apple_Bootstrap分区,因此你现在需要键入3p。当你被询问到大小的时候,输入512M(或者你所需要的任意大小)。当被询问到名字的时候,输入swap(强制)。
键入c,来创建root分区,紧跟4p用以选择root分区从哪块开始。当被询问到大小的时候,再次输入4p。mac-fdisk会将这种行为解释成“使用所有的空余空间”。当被问到名字的时候,键入root(强制)。
完成分区,键入w将分区写入到磁盘上,键入q退出mac-fdisk。
注意:
为了确保一切正常,你可以再次运行mac-fdisk来检测所有的分区是否已经创建好。如果你没有看到任何你创建的分区或者你所做的改动,在mac-fdisk中你需要按i来重新初始化你的分区。注意这将重新创建分区表并移除所有的分区。
|
现在你的分区已经创建好了,请继续阅读创建文件系统。
4.d. IBM pSeries、iSeries和OpenPower:使用fdisk来为你的磁盘分区
注意:
如果你计划使用RAID磁盘阵列来安装你的Gentoo系统而且你使用的是基于POWER5架构的硬件,你应该用iprconfig以Advanced Function格式来格式化磁盘和创建磁盘阵列。应该在安装完成后emerge iprutils。
|
如果你拥有一个基于ipr的SCSI适配器,现在你需要启动ipr工具。
代码 4.1: 启动ipr工具 |
# /etc/init.d/iprinit start
|
接下里的部分将解释如何创建一个先前描述的分区布局示例,也就是:
分区 |
描述 |
/dev/sda1 |
PPC PReP启动分区 |
/dev/sda2 |
交换分区 |
/dev/sda3 |
root分区 |
根据自己的偏好改变你的分区布局。
查看目前的分区布局
fdisk是一个流行且功能强大的用于分割磁盘成分区的工具。在你的磁盘上启动fdisk(在我们的例子中,我们使用/dev/sda):
代码 4.2: 启动fdisk |
# fdisk /dev/sda
|
一旦在fdisk中,你会看到像这样的一个提示符:
代码 4.3: fdisk提示符 |
Command (m for help):
|
键入p用以显示你的磁盘目前的分区配置:
代码 4.4: 一个示例分区配置 |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 12 53266+ 83 Linux
/dev/sda2 13 233 981571+ 82 Linux swap
/dev/sda3 234 674 1958701+ 83 Linux
/dev/sda4 675 6761 27035410+ 5 Extended
/dev/sda5 675 2874 9771268+ 83 Linux
/dev/sda6 2875 2919 199836 83 Linux
/dev/sda7 2920 3008 395262 83 Linux
/dev/sda8 3009 6761 16668918 83 Linux
Command (m for help):
|
这个硬盘有六个Linux文件系统(System一栏标记为“Linux”)和一个交换分区(标记为“Linux swap”)。
删除所有分区
我们会先删除所有硬盘上存在的分区。键入d来删掉一个分区。举个例子,删掉一个存在的分区/dev/sda1:
注意:
如果你不想删除所有的分区,就只删掉那些你希望删除的分区。现在作者建议先将你的系统备份一下以避免不必要的损失。
|
代码 4.5: 删除一个分区 |
Command (m for help): d
Partition number (1-4): 1
|
这个分区已列入删除的进度表。如果你键入p它也不会出现,但是它还没有被删除,到你保存改动后它才会被删除。如果你犯了错想要取消掉未保存的改动,立即键入q并按回车,你的分区将不会被删除。
现在假设你很想删除你系统上的所有分区,重复键入p来显示分区列表和键入d和分区的号码来删除它。最终,你会得到一个空白的分区表:
代码 4.6: 一个空白的分区表 |
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
现在内存中的分区表已经空了,我们已经准备开始创建分区了。我们会使用之前讨论过的分区模式。当然,如果你不想要同样的分区模式,不要完全照抄如下的指南!
创建PPC PReP启动分区
我们首先创建一个小的PReP启动分区。键入n来创建一个新的分区,然后键入p来选择一个主分区,紧接着键入1来选择第一个主分区。当碰到要填写第一个柱面时,按回车键。遇到要填写最后一个柱面时,输入+7M来创建一个大小为7M的分区。在这之后,键入t设置分区类型,1用来选择你刚创建的分区,然后键入41来设置分区为“PPC PReP Boot”。最终,你需要将PReP分区标为可启动。
代码 4.7: 创建PReP启动分区 |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6761, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-6761, default
6761): +8M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 41
Changed system type of partition 1 to 41 (PPC PReP Boot)
Command (m for help): a
Partition number (1-4): 1
Command (m for help):
|
现在,当你键入p时,你会看到如下的分区信息:
代码 4.8: 创建启动分区 |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3 13293 41 PPC PReP Boot
Command (m for help):
|
创建交换分区
让我们现在开始创建交换分区吧。首先键入n来创建一个新的分区,然后按p告知fdisk你想要一个主分区。接着按2来创建第二个主分区,我们例子中使用/dev/sda2。当遇到填写第一个柱面时,按回车。遇到填写最后一个柱面时,输入+512M来创建一个512M大小的分区。在这之后,键入t来设置分区类型,2来选择你刚刚键入的磁盘分区,接着键入82来设置分区类型为“Linux Swap”。在完成这些步骤后,键入p应该可以看到近似以下的分区表:
代码 4.9: 创建一个交换分区后的分区列表 |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3 13293 41 PPC PReP Boot
/dev/sda2 4 117 506331 82 Linux swap
Command (m for help):
|
创建root分区
最后,我们来创建root分区。首先键入n来创建一个新的分区,随后键入p来告诉fdisk你想要一个主分区。接着输入3来创建第三个主分区,我们例子中使用/dev/sda3。当遇到填写第一个柱面时,按回车。到遇到填写最后一个柱面时,按回车来创建一个使用余下所有磁盘上剩余空间的分区。在完成这些步骤后,键入p应该可以近似于如下的分区表:
代码 4.10: 创建好root分区后的分区列表 |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3 13293 41 PPC PReP Boot
/dev/sda2 4 117 506331 82 Linux swap
/dev/sda3 118 6761 29509326 83 Linux
Command (m for help):
|
保存分区布局
保存分区布局和退出fdisk,键入w。
代码 4.11: 保存和退出fdisk |
Command (m for help): w
|
现在你的分区已经创建好了,请继续阅读创建文件系统。
4.e. 创建文件系统
介绍
至此你的分区都创建好了,是时候在上面放置文件系统了。如果你不介意选择什么文件系统而且对本手册中默认使用的文件系统满意,请继续看将文件系统应用到分区上。否则就继续阅读以了解可用的文件系统……
文件系统?
注意:
好几个文件系统可用。安装光盘中的内核支持ext2、ext3、ReiserFS。JFS和XFS可以通过内核模块的方式支持。
|
ext2是经考验证明可靠的Linux文件系统,但是没有元数据日志,这意味这在启动系统时的ext2文件系统的日常检查相当耗时。现在相当一部分的新一代的日志文件系统可供选择,它们可以非常迅速检查一致性,并且比那些非日志文件系统更受欢迎。当你启动系统碰巧遇到文件系统状态不一致时,日志文件系统不会在那里耽搁很长时间。
ext3是ext2文件系统的带日志版本,提供了元数据日志模式,目的是为了快速恢复数据,此外还提供了其他的增强日志模式,如完整数据日志模式和有序数据日志模式。它使用了HTree索引,在几乎所有的情况下都能保持高性能。简而言之,ext3是非常好及可靠的文件系统。
ReiserFS是基于B+树的文件系统,它有着非常全面的性能,并且在处理小文件(小于4k的文件)上远远胜过ext2和ext3,通常是它们的10倍至15倍。ReiserFS是一种适用范围极其广泛且具有元数据日志的文件系统。它坚固且不仅可以用于一般用途的文件系统,而且还适用于极端情况下,如创建大文件系统、超大型文件和包含无数小文件的目录。
XFS是一种带元数据日志的文件系统,并且在Gentoo Linux的xfs-sources内核中可得到完整支持。它有一个健壮的特性集,并且对可伸缩性进行了优化。我们仅推荐在带有高端SCSI设备或光纤通道存储和不间断电源供电的Linux系统上使用这个文件系统。因为XFS会大量地在内存中缓存正在传输的数据,如果系统意外关机,那些设计不合理的程序(写入文件到磁盘时未做足准备措施的程序,而且这种程序相当多)可能会丢失大量数据。
JFS是IBM的高性能日志文件系统。它最近已经可以投入实用了。
应用文件系统到分区上
要在分区或卷上创建文件系统,对于每个可能的文件系统都有专门的工具:
文件系统 |
创建命令 |
ext2 |
mke2fs |
ext3 |
mke2fs -j |
reiserfs |
mkreiserfs |
xfs |
mkfs.xfs |
jfs |
mkfs.jfs |
例如,将root分区(本例中的/dev/sda4)设为ext3,你应该使用:
代码 5.1: 应用一个文件系统到分区上 |
# mke2fs -j /dev/sda4
|
现在在你新建的分区(或逻辑卷)上创建文件系统。
重要:
如果你的/选择使用ReiserFS,并且你将使用yaboot作为你的引导程序的话,不要改变ReiserFS的默认块大小,就像配置引导程序里所解释的。
|
激活交换分区
mkswap是用于初始化交换分区的命令:
代码 5.2: 创建一个交换分区签名 |
# mkswap /dev/sda3
|
要激活交换分区,使用swapon:
代码 5.3: 激活这个交换分区 |
# swapon /dev/sda3
|
现在创建和激活之前命令中提及的交换分区。
4.f. 挂载
现在你的分区已经初始化好,而且也有了文件系统,是时候来挂载这些分区了。使用mount命令。不要忘记创建为每个你创建的分区必要的挂载目录。这里有个例子,我们创建了一个挂载点,并挂载root分区:
代码 6.1: 挂载分区 |
# mkdir /mnt/gentoo
# mount /dev/sda4 /mnt/gentoo
|
注意:
如果你希望/tmp目录在一个独立的分区上,确保在挂载之后修改它的权限:chmod 1777 /mnt/gentoo/tmp。这同样适用于/var/tmp目录。
|
请继续阅读安装Gentoo安装文件。
[ << ]
[ < ]
[ 主页 ]
[ > ]
[ >> ]
本文档的内容遵循知识共享-署名-相同方式共享许可协议
|