第 5章 . 管理磁盘贮存区

许多用户可能想查看现存的分区表,改变分区的大小,删除分区,或从空闲空间或附加的硬盘驱动器上添加分区。parted 工具会允许你执行这些任务。本章讨论如何使用 parted 命令来执行文件系统任务。

如果你想查看或监视系统的磁盘空间用量,请参考第 42.3 节

你必须安装了 parted 软件包才能使用 parted 工具。要启动 parted,在 shell 提示下以根用户身份键入命令 parted /dev/hdb,这里的 /dev/hdb 是你想配置的设备名称。你会看到一个 (parted) 提示。键入 help 来查看可用命令的列表。

如果你想创建、删除分区或重新划分分区大小,分区所在设备不能正在被使用(分区不能被挂载,并且交换空间不能被启用)。分区表在被使用时不能被修改的原因是,这样做会使内核无法正确的识别所做改变。由于分区表和所挂载的分区不匹配,数据可能会被写入错误的分区而被覆盖。达到这个目的的最简单方法是在救援模式中引导系统。请参考第11章 来获得引导到救援模式的说明。当提示挂载文件系统时,选择「跳过」

如果驱动器不包含任何正在被使用的分区,你可以使用 umount 命令来卸载分区,使用swapoff 命令来关闭硬盘驱动器上的交换空间。

表 5-1包含一列最常用的 parted 命令。随后各节详细地解释了其中的一部分。

命令描述
check minor-num执行文件系统的简单检查
cp from to把文件系统从一个分区复制到另一个分区;fromto 是分区的次要号码
help显示可用的命令列表
mklabel label为分区表创建磁盘标签
mkfs minor-num file-system-type创建类型为 file-system-type 的文件系统
mkpart part-type fs-type start-mb end-mb不创建新文件系统而制作分区
mkpartfs part-type fs-type start-mb end-mb制作分区并创建指定的文件系统
move minor-num start-mb end-mb移动分区
name minor-num name仅为 Mac 和 PC98 磁盘标签的分区命名
print显示分区表
quitQuit parted
rescue start-mb end-mb拯救一个丢失的分区,从 start-mbend-mb
resize minor-num start-mb end-mb重新划分分区大小,从 start-mbend-mb
rm minor-num删除分区
select device选择另一个设备来配置
set minor-num flag state在分区上设置标志;state 要么是 on,要么是 off

表 5-1. parted 命令

5.1. 查看分区表

启动了 parted 后,键入以下命令来查看分区表:

print

一个和以下相似的表会出现:

Disk geometry for /dev/hda: 0.000-9765.492 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031    101.975  primary   ext3        boot
2        101.975    611.850  primary   linux-swap  
3        611.851    760.891  primary   ext3        
4        760.891   9758.232  extended              lba
5        760.922   9758.232  logical   ext3        

第一行显示了磁盘的大小;第二行显示了磁盘标签类型;剩余的输出显示了分区表。在分区表中,Minor(次要)标签是分区号码。例如,次要号码为1的分区和 /dev/hda1 相对。Start(开始)和 End(结束)值以MB为单位。Type(类型)是 primary、extended、logical 中的一个。Filesystem(文件系统)是文件系统的类型,它可以是 ext2、ext3、FAT、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs 或 xfs 之一。Flags(标志)列列出了分区被设置的标志。可用的标志有:boot、root、swap、hidden、raid、lvm 或 lba。

窍门窍门
 

要不重新启动 parted 来选择不同的设备,使用 select 命令,再紧跟设备名,如 /dev/hdb。然后,你便可以查看或配置它的分区表。