4.c. 使用fdisk来为你的磁盘分区
下面来解释如何创建前面说明的那个示例分区布局,即:
分区 | 说明 |
/dev/sda1 | 启动分区 |
/dev/sda2 | 交换分区 |
/dev/sda3 | 根分区 |
根据你自己的喜好来改变分区布局。
fdisk是一个流行且强大的工具,用来把你的磁盘划分为分区。启动你磁盘上fdisk程序(在示例中,我们使用/dev/sda):
代码 3.1: 启动fdisk |
# fdisk /dev/sda |
一旦启动到fdisk中,你将看到如下提示:
代码 3.2: fdisk提示 |
Command (m for help): |
键入p来显示你的磁盘的当前分区配置:
代码 3.3: 分区配置示例 |
Command (m for help): pDisk /dev/sda: 240 heads, 63 sectors, 2184 cylindersUnits = cylinders of 15120 * 512 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 14 105808+ 83 Linux/dev/sda2 15 49 264600 82 Linux swap/dev/sda3 50 70 158760 83 Linux/dev/sda4 71 2184 15981840 5 Extended/dev/sda5 71 209 1050808+ 83 Linux/dev/sda6 210 348 1050808+ 83 Linux/dev/sda7 349 626 2101648+ 83 Linux/dev/sda8 627 904 2101648+ 83 Linux/dev/sda9 905 2184 9676768+ 83 LinuxCommand (m for help): |
这个磁盘配置包含了7个Linux文件系统(每个对应于列表中名为“Linux”的分区)及一个交换分区(列表中的“Linux swap”)。
首先,我们将把磁盘上的所有分区删除。键入d来删除一个分区。例如,要删除存在的/dev/sda1:
代码 3.4: 删除分区 |
Command (m for help): dPartition number (1-4): 1 |
该分区就会被列入删除计划。如果你键入p,它也不会再出现了,然而除非你保存了所做的修改,否则它并没有被真正删除。如果你犯了一个错误,想不保存修改并退出,立刻键入q并回车,你分区就不会被删除。
现在,假设你真的想删除你系统中的所有分区,键入p来显示分区列表,然后键入d和要删除的分区的数字,并重复此过程。最后,当分区表中什么也没有的时候你就可以结束了:
代码 3.5: 空的分区表 |
Disk /dev/sda: 30.0 GB, 30005821440 bytes240 heads, 63 sectors/track, 3876 cylindersUnits = cylinders of 15120 * 512 = 7741440 bytesDevice Boot Start End Blocks Id SystemCommand (m for help): |
现在,内存中的分区表是空的,我们就可以创建分区了。我们将使用前面讨论过的那个默认的分区布局。当然,如果你不想要相同的分区方案就不要按照下面的指令来做!
首先,我们创建一个小一点的启动分区。键入n创建一个新分区,然后键入p来选择一个主分区,接下来键入1选择第一个主分区。当提示输入第一个柱面的时候,敲回车键。当提示输入最后一个柱面的时候,输入+32M,来创建一个32M大小的分区,并设置它的启动标记:
代码 4.12: 创建启动分区 |
Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-3876, default 1): (按回车)Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M |
现在,当你键入p时,你应该看到如下的分区输出:
代码 3.7: 已创建的启动分区 |
Command (m for help): pDisk /dev/sda: 30.0 GB, 30005821440 bytes240 heads, 63 sectors/track, 3876 cylindersUnits = cylinders of 15120 * 512 = 7741440 bytesDevice Boot Start End Blocks Id System/dev/sda1 1 14 105808+ 83 Linux |
我们需要把这个分区设置成可启动的。键入a来给分区添加启动标志,然后键入1。如果你再次按p键,你就会注意到,在“Boot”那一列有个*。
我们现在来创建交换分区。键入n创建一个新分区,然后键入p来告诉fdisk你创建的是主分区。接着输入2来创建第2个主分区,在本例中是/dev/sda2。当提示输入第一个柱面的时候,直接敲回车。当提示输入最后一个柱面的时候,输入+512M来创建一个512MB大小的分区。在这之后,键入t来设置分区类型,键入2选择你刚刚创建的那个分区,然后再输入82把分区类型设置成“Linux Swap”。完成以上这些步骤之后,键入p,应该显示一个与下面类似的分区表:
代码 3.8: 创建交换分区后的分区列表 |
Command (m for help): pDisk /dev/sda: 30.0 GB, 30005821440 bytes240 heads, 63 sectors/track, 3876 cylindersUnits = cylinders of 15120 * 512 = 7741440 bytesDevice Boot Start End Blocks Id System/dev/sda1 * 1 14 105808+ 83 Linux/dev/sda2 15 81 506520 82 Linux swap |
最后,我们来创建根分区。键入n创建一个新分区,然后键入p来告诉fdisk你创建的是主分区。接着输入3来创建第3个主分区,在本例中是/dev/sda3。当提示输入第一个柱面的时候,直接敲回车。当提示输入最后一个柱面的时候,单击回车把你磁盘上的剩余空间创建一个分区。完成以上这些步骤之后,键入p,应该显示一个与下面类似的分区表:
代码 3.9: 创建根分区后的分区列表 |
Command (m for help): pDisk /dev/sda: 30.0 GB, 30005821440 bytes240 heads, 63 sectors/track, 3876 cylindersUnits = cylinders of 15120 * 512 = 7741440 bytesDevice Boot Start End Blocks Id System/dev/sda1 * 1 14 105808+ 83 Linux/dev/sda2 15 81 506520 82 Linux swap/dev/sda3 82 3876 28690200 83 Linux |
键入w来保存分区布局并退出fdisk。
代码 3.10: 保存并退出fdisk |
Command (m for help): w |
现在分区已经创建完毕,你可以继续创建文件系统。
你的分区已经创建完了,现在可以在上面安装文件系统了。如果你并不介意选择何种文件系统,而且乐意使用本手册中所使用的默认设置,请阅读在分区上应用文件系统。否则,继续阅读本文来了解可用的文件系统……
Linux内核支持各种各样的文件系统。我们将介绍ext2、ext3、ReiserFS、XFS和JFS,因为它们是Linux系统中使用最普遍的文件系统。
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>。
JFS是IBM的高性能日志文件系统。JFS是一个轻量级的、快速的和稳定的基于B+树的文件系统,在很多情况下都有很好的表现。
ReiserFS是基于B+树的文件系统,它有着非常全面的性能,特别时在处理很多小文件的时候,虽然会占用多一点CPU。ReiserFS相比其他文件系统显得受维护的不够。
XFS是一种带元数据日志的文件系统,它有一个健壮的特性集,并且对可伸缩性进行了优化。XFS似乎对各种各样的硬件问题显得不够宽容。
要在分区或卷上创建文件系统,对于每种可能的文件系统都有专门的工具。
文件系统 | 创建命令 |
ext2 | mke2fs |
ext3 | mke2fs -j |
reiserfs | mkreiserfs |
xfs | mkfs.xfs |
jfs | mkfs.jfs |
例如,要使启动分区(本例中的/dev/sda1)为ext2和根分区(本例中的/dev/sda3)为ext3,应该这样做:
代码 4.1: 在分区上应用文件系统 |
# mke2fs /dev/sda1# mke2fs -j /dev/sda3 |
现在在你新建的分区(或逻辑卷)上创建文件系统。
mkswap是初始化交换分区的命令:
代码 4.2: 创建交换分区标志 |
# mkswap /dev/sda2 |
使用swapon命令来激活交换分区:
代码 4.3: 激活交换分区 |
# swapon /dev/sda2 |
使用上面提到的命令来创建和激活交换分区。
现在你的分区都已经初始化了,并且安装了文件系统,是时候来挂载这些分区了。使用mount命令进行挂载。别忘记为每个你创建的分区建立所需的挂载目录。作为例子,我们来挂载根分区和启动分区:
代码 5.1: 挂载分区 |
# mount /dev/sda3 /mnt/gentoo# mkdir /mnt/gentoo/boot# mount /dev/sda1 /mnt/gentoo/boot |