声明: 本手册已经被新版本代替了,不再被维护。

4. 预备磁盘

内容:

4.a. 块设备介绍

块设备

我们要好好了解下Gentoo Linux以及普通Linux中有关磁盘方面的知识,包括Linux文件系统、分区和块设备。然后,一旦你熟悉了磁盘和文件的方方面面,我们将会指导你设置分区和文件系统,为你安装Gentoo Linux做好准备。

一开始我们先介绍块设备。最有名的块设备可能就是Linux系统中表示第一个IDE硬盘的/dev/sda。SCSI硬盘和Serial ATA硬盘都是/dev/sda。如果你正在使用内核里新的libata架构,即便IDE硬盘也会是/dev/sd*。如果你用的是旧的设备架构,你的第一个IDE硬盘将是/dev/hda

上面介绍的块设备代表磁盘的抽象接口。用户程序可以使用这些块设备来与你的磁盘进行交互,而不用理会你的驱动器到底是IDE、SCSI还是其他的。程序可以把磁盘当作一系列连续的、可随机访问的512字节大小的块来访问。

分区

尽管在理论上可以使用一整块磁盘来安装你的Linux系统,但是在实际中几乎从不这样做。相反,整个磁盘块设备被分割成更小、更容易管理的块设备。在大多数系统中,这些被称作分区

4.b. 设计分区方案

默认分区方案

如果你没有兴趣为你的系统设计分区方案,你可以使用我们在本手册中使用的方案。为你正在安装的PowerPC系统选择最适合的文件系统布局。

Apple New World

Apple New World架构的机器是相当容易配置的。第一个分区通常是一个Apple Partition Map。这个分区维护着你磁盘的布局。你不能删除这个分区。下一个分区通常是一个bootstrap分区。这个分区包含了一个小的(800k)HFS文件系统,它包含了一份启动程序yaboot的复本以及它的配置文件。这个分区是像其他一些架构上的/boot分区。在启动分区后,根据以下的模式置有通常的Linux文件系统。交换分区是一个当你的系统用完物理内存时暂时存放的地方。root分区会包含gentoo安装的系统。如果你想要双启动,确保yaboot先启动后OSX分区可以进入任何bootstrap分区后的系统。

注意: 你磁盘上可能会有“Disk Driver”分区,比如Apple_Driver63Apple_Driver_ATAApple_FWDriverApple_Driver_IOKitApple_Patches。这些是用来启动Mac OS的,所以你如果不需要它们,你可以通过mac-fdisk的i选项来初始化磁盘删除它们。这样会完全抹除整个磁盘!如果你不确定该怎么处理它们,干脆不要动它们。

注意: 如果你是通过Apple的磁盘工具分区的,在分区之间会有128M的保留空间是Apple为了“将来使用”预留的。你可以安全的删除掉它们。

分区 大小 文件系统 描述
/dev/sda1 32k Apple分区表
/dev/sda2 800k HFS Apple Bootstrap
/dev/sda3 512MB Swap Linux交换分区
/dev/sda4 磁盘剩余空间 ext3, reiserfs, xfs Linux Root分区

Apple Old World

Apple Old World架构的机器相对来说配置起来有点复杂。第一个分区通常是Apple Partition Map。这个分区记录着磁盘的布局。你不能删除掉这个分区。如果你正在使用BootX,如下的配置是假设MacOS安装在一个独立的磁盘上的。如果不是这样,会有额外的“Apple Disk Drivers”分区比如Apple_Driver63、Apple_Driver_ATA、Apple_FWDriver、Apple_Driver_IOKit、Apple_Patches和MacOS安装文件。如果你正在使用Quik,你会需要创建一个包含有内核的启动分区,这点不像其他的Apple启动方法。在启动分区之后,就是一些如下模式通常的Linux文件系统了。交换分区是一个当你物理内存用完后暂时存储的地方。root分区会包含Gentoo安装的文件。

注意: 如果你正在使用一台OldWorld架构的机器,你需要保持MacOS可用。 这儿的布局是假设MacOS被安装于一块独立的磁盘上的。

分区 大小 文件系统 描述
/dev/sda1 32k Apple分区表
/dev/sda2 32MB ext2 Quik启动分区(只针对quik)
/dev/sda3 512MB Swap Linux交换分区
/dev/sda4 磁盘剩余空间 ext3, reiserfs, xfs Linux Root分区

Pegasos

Pegasos分区布局相对Apple布局来说简单。第一个是启动分区,它包含启动时的内核,同一个代表启动菜单的OpenFirmware脚本。启动分区之后,就是如下模式的通常的Linux文件系统了。交换分区是物理内存用完后一个用来暂时存储的地方。root分区是用来保存Gentoo安装的地方。

分区 大小 文件系统 描述
/dev/sda1 32MB affs1或ext2 启动分区
/dev/sda2 512MB Swap Linux交换分区
/dev/sda3 磁盘剩余空间 ext3, reiserfs, xfs Linux Root分区

IBM PReP (RS/6000)

IBM PowerPC引用平台(PReP)需要在磁盘首分区上有一个小的PReP启动分区,紧跟着的是交换分区和root分区。

分区 大小 文件系统 描述
/dev/sda1 800k PReP Boot分区(类型 0x41)
/dev/sda2 512MB Swap Linux Swap (类型0x82)
/dev/sda3 磁盘剩余空间 ext3, reiserfs, xfs Linux Root (类型0x83)

警告: parted能够重新划分包括HFS+在内的分区的大小。不幸的是,它不能够重新划分HFS+日志文件系统,所以在重新定义大小前,为了保证最好的结果,请在Mac OS X中关闭掉日志记录功能。牢记任何重划分大小的行为都是有危险的,所以后果自负!确保在你重新划分大小前要备份好你的数据!

如果你对知道一个分区究竟应该多大或者你究竟需要多少个分区感兴趣,请继续阅读。否则,请跳转到默认:使用mac-fdisk(Apple)为你的磁盘分区或者备选:使用parted(IBM/Pegasos)为你的磁盘分区

多少和多大?

分区的数目主要根据你的系统环境来决定。例如,如果你有很多用户,你可能更希望把你的/home目录独立出来,因为这样做可以增加安全性,备份起来也更容易。如果你安装Gentoo用来做邮件服务器,你的/var目录应该独立出来,因为邮件都存储在/var目录中。选择一个好的文件系统将最大限度地提高你的系统性能。游戏服务器应该把/opt目录独立出来,因为大多数游戏服务端软件都安装在那。理由也与/home目录类似:安全与备份。无论你选择什么样的布局,你一定要使/usr目录保持足够大:因为它将不仅包含大部分应用程序,而且Portage树本身就需要大约500M空间,这还不包括存储在其中的各种源代码包。

正如你所看到的,这完全取决于你想要达到什么目的。独立的分区或卷有以下优点:

然而,多分区系统有一大缺点:如果配置的不合理,可能导致系统中一个分区有很大的空闲空间,而另一个没有空闲空间了。SCSI和SATA还有15个分区的限制。

4.c. 默认:使用mac-fdisk(Apple)为你的磁盘分区

现在,使用mac-fdisk创建你的分区:

代码 3.1: 启动mac-fdisk

# mac-fdisk /dev/sda

如果你使用Apple的磁盘工具为Linux预留空间,首先删除你事先清空的分区。在mac-fdisk中使用d来删除这些分区。它会询问你需要删除的分区号码。通常在NewWorld机器上的第一个分区(Apple_partition_map)是不能被删除的。如果你想要从一个干净的磁盘开始,你可以简单地按i来初始化磁盘。这会完全清除磁盘,所以请慎重使用。

其次,使用b来创建一个Apple_Bootstrap分区。它会询问你从哪块开始。键入你第一个空余分区的号码,然后紧跟一个p。比如在这儿,是2p

注意: 这个分区并是一个/boot分区。它根本不被Linux所用;你不需要在上面放置任何文件系统以及永远不用挂载它。Apple用户并不需要一个额外的/boot分区。

现在按c创建一个交换分区。mac-fdisk将再一次询问你想要从那块开始你的分区。因为我们之前已经使用了2来创建Apple_Bootstrap分区,因此你现在需要键入3p。当你被询问到大小的时候,输入512M(或者你所需要的任意大小--512M是我们推荐的最小大小,但通常2倍于物理内存的容量是通常被接受的大小)。当被询问到名字的时候,输入swap

键入c,来创建root分区,紧跟4p用以选择root分区从哪块开始。当被询问到大小的时候,再次输入4pmac-fdisk会将这种行为解释成“使用所有的空余空间”。当被问到名字的时候,键入root

完成分区,键入w将分区写入到磁盘上,键入q退出mac-fdisk

注意: 为了确保一切正常,你可以再次运行mac-fdisk -l来检测所有的分区是否在那儿。如果你没有看到任何你创建的分区,或者你所做的改动,在mac-fdisk中你需要按“i”来重新初始化你的分区。注意这将重新创建分区表并移除所有的分区。

现在你的分区已经创建好了,请继续阅读创建文件系统

4.d. 使用parted为你的磁盘分区(Pegasos和RS/6000)

parted,一个分区编辑器,能够操作Mac OS和Mac OS X使用的HFS+分区。通过这个工具你可以重新划分Mac-分区的大小以及为你的Linux分区创建空间。不过以下的例子只是描述了Pegasos机器的分区。

启动parted来开始分区:

代码 4.1: 启动parted

# parted /dev/sda

如果磁盘没有被分过区,运行mklabel amiga为你的磁盘创建一个新的disklabel。

在parted中你可以在任何时候键入print来显示目前的分区表。如果在任何时候你改变了主意或犯了错误,你可以键入Ctrl-c来退出parted。

如果你准备在你的Pegasos机器上安装MorphOS,你在磁盘的最开始创建一个affs1文件系统。32M已经足够用于存放MorphOS内核。如果你拥有一台Pegasos I或者想要使用除了ext2或ext3的文件系统,你同样需要将你的Linux内核存放到这个分区上(Pegasos II只能从ext2/ext3或affs1分区启动)。运行mkpart primary affs1 START END来创建一个分区,在这儿STARTEND需要被替换成以兆为单位的区间(比如:0 32)它会创建一个从0M开始至32M结束的32M大小的分区。如果你选择创建一个ext2或ext3分区,用ext2或ext3替换mkpart命令中的affs1。

你需要为Linux创建两个分区,一个root文件系统和一个交换分区。运行mkpart primary START END来创建各个分区,用需要的兆边界值来替换STARTEND

通常我们建议创建一个两倍于你内存容量大小的交换分区,但至少512M是我们推荐的。运行mkpart primary linux-swap START END其中用分区边界值来替换其中的值来创建交换分区。

当你在parted中完成了操作之后,运行quit退出。

4.e. 创建文件系统

介绍

至此你的分区都创建好了,是时候在上面放置文件系统了。如果你不介意选择什么文件系统而且对本手册中默认使用的文件系统满意,请继续看将文件系统应用到分区上。否则就继续阅读以了解可用的文件系统。

文件系统

PowerPC架构上有几种文件系统是可以使用的,包括ext2、ext3、ReiserFS和XFS。每个都有各自的优劣。

ext2是经考验证明可靠的Linux文件系统,但是没有元数据日志,这意味这在启动系统时的ext2文件系统的日常检查相当耗时。现在相当一部分的新一代的日志文件系统都可以非常迅速检查一致性,因此比那些非日志文件系统更受欢迎。当你启动系统碰巧遇到文件系统状态不一致时,日志文件系统不会在那里耽搁很长时间。如果你要在一个很小的硬盘(小于4G)上装Gentoo,那么你需要在创建ext2文件系统时预留足够的inode,执行此命令mke2fs -T small /dev/<device>.

ext3是ext2文件系统的带日志版本,提供了元数据日志模式以快速恢复数据。此外还提供了其他增强的日志模式,如完整数据日志模式和有序数据日志模式。它使用了HTree索引,在几乎所有的情况下都能保持高性能。简而言之,ext3是非常好及可靠的文件系统。如果你要在一个很小的硬盘(小于4G)上装Gentoo,那么你需要在创建ext2文件系统时预留足够的inode,执行此命令mke2fs -T small /dev/<device>

ReiserFS是基于B+树的文件系统,它有着非常全面的性能,特别时在处理很多小文件的时候,虽然会占用多一点CPU。ReiserFS相比其他文件系统显得受维护的不够。

XFS是一种带元数据日志的文件系统,它有一个健壮的特性集,并且对可伸缩性进行了优化。XFS似乎对各种各样的硬件问题显得不够宽容。

激活交换分区

mkswap是用于初始化交换分区的命令:

代码 5.1: 创建一个交换分区签名

# mkswap /dev/sda3

要激活交换分区,使用swapon

代码 5.2: 激活一个交换分区

# swapon /dev/sda3

在创建其他文件系统前先创建和激活交换分区。

应用文件系统到分区上

要在分区或卷上创建文件系统,对于每个可能的文件系统都有专门的工具:

文件系统 创建命令
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs

例如,将root分区(本例中的/dev/sda4)设为ext3,你应该使用:

代码 5.3: 应用一个文件系统到分区上

# mke2fs -j /dev/sda4

现在在你新建的分区(或逻辑卷)上创建文件系统。

重要: 如果你的/选择使用ReiserFS,并且你将使用yaboot作为你的引导程序的话,不要改变ReiserFS的默认块大小,就像配置引导程序里所解释的。

注意: 在Pegasos II上,你的存放内核的分区必须是ext2/ext3或affs1。NewWorld架构的机器能够从任何ext2、ext3、XFS、ReiserFS甚至是HFS/HFS+文件系统上启动。在使用BootX启动的OldWorld机器上,内核需要放置到HFS分区上,不过这会在你配置你的引导程序时完成。

4.f. 挂载

现在你的分区已经初始化好,而且也有了文件系统,是时候来挂载这些分区了。使用mount命令。这里有个例子,我们来挂载root分区:

代码 6.1: 挂载分区

# mount /dev/sda4 /mnt/gentoo

注意: 如果你希望/tmp目录在一个独立的分区上,确保在挂载和解压之后修改它的权限:chmod 1777 /mnt/gentoo/tmp。这同样适用于/var/tmp目录。

请继续阅读安装Gentoo安装文件