linux管理磁盘分区-逻辑卷管理器(LVM)和管理磁盘贮存区

从 Red Hat Linux 8.0 开始,逻辑卷管理器(LVM)可以在硬盘驱动器分配上使用。

LVM 是一种把硬盘驱动器空间分配成逻辑卷的方法,这样硬盘就不必使用分区而被简易地重划大小。

使用 LVM,硬盘驱动器或硬盘驱动器集合就会分配给一个或多个 物理卷(physical volumes) 。物理卷无法跨越一个以上驱动器。

物理卷被合并成 逻辑卷组(logical volume group) ,唯一的例外是 /boot 分区。 /boot 分区不能位于逻辑卷组,因为引导装载程序无法读取它。如果你想把 / 分区放在逻辑卷上,你需要创建一个分开的 /boot 分区,它不属于卷组的一部分。

由于物理卷无法跨越一个以上驱动器,如果你想让逻辑卷组跨越一个以上驱动器,你就应该在驱动器上创建一个或多个物理卷。

图 4-1. 逻辑卷组

逻辑卷组被分成 逻辑卷(logical volumes) ,它们被分配了挂载点(如 /home 和 / ),以及文件系统类型(如 ext3)。当“分区”达到了它们的极限,逻辑卷组中的空闲空间就可以被添加给逻辑卷来增加分区的大小。当某个新的硬盘驱动器被添加到系统上,它可以被添加到 逻辑卷组中,逻辑卷是可以扩展的分区。

图 4-2. 逻辑卷

另一方面,如果系统使用 ext3 文件系统来分区,硬盘驱动器将被分隔成指定大小的分区。如果某分区被填满,要扩展该分区的大小并不那么容易。即便某分区被移到另一个硬盘驱动器上,原来的硬盘驱动器空间必须得被重新分配为不同的分区或不被使用。

LVM 支持必须被编译入内核。默认的 Red Hat Linux 9 内核中已编译入了 LVM 支持。

要了解在 Red Hat Linux 安装过程中配置 LVM 的详情,请参阅 第11章 。

5. 管理磁盘贮存区

在你安装了 Red Hat Linux 系统后,你可能想查看现存的分区表,改变分区的大小, 删除分区,或从空闲空间或附加的硬盘驱动器上添加分区。 parted 工具会允许你执行这些任务。本章讨论如何使用 parted 命令来执行文件系统任务。此外,你还可以使用 fdisk 来执行多数此类任务(除重新划分分区以外)。要获得 fdisk 的更多信息,请阅读其说明书页(man)或信息页(info)。

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

如果你想创建、删除分区或重新划分分区大小,分区所在设备不能正在被使用(分区不能被挂载,并且交换空间不能被启用)。 达到这个目的的最简单方法是在救援模式中引导系统。 当提示挂载文件系统时,选择 「跳过」 

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

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

命令 描述 check minor-num 执行文件系统的简单检查 cp from to 把文件系统从一个分区复制到另一个分区; from 和 to 是分区的次要号码 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 移动分区 print 显示分区表 quit Quit parted resize minor-num start-mb end-mb 重新划分分区大小,从 start-mb 到 end-mb rm minor-num 删除分区 select device 选择另一个设备来配置 set minor-num flag state 在分区上设置标志; state 要么是 on,要么是 off

表 5-1. parted 命令

5.1. 查看分区表

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

print

A table similar to the following will appear:

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 。然后,你便可以查看或配置它的分区表。

5.2. 创建分区

警告:不要试图在正在被使用的设备上创建分区。

在创建分区前,引导入救援模式(或卸载设备上的所有分区并关闭设备上的交换空间)。

启动 parted ,/dev/ hda 是要在其中创建分区的设备:

parted /dev/ hda

查看当前的分区表来判定设备上是否有足够的空闲空间。

print

如果空闲空间不够,你可以重新划分现存分区的大小。详情请参阅第 5.4 节。

5.2.1. 制作分区

根据分区表来决定新分区的起止点和分区类型。每个设备上只能有四个主分区(无扩展分区)。 如果你想有四个以上分区,你可以有三个主分区,一个扩展分区,在扩展分区内你可以有多个逻辑分区。关于磁盘分区的概述,请参阅 《Red Hat Linux 安装指南》 中的附录“ An Introduction to Disk Partitions ” 。

例如,要在某个硬盘驱动器上从 1024 MB 到 2048 MB 间创建一个文件系统为 ext2 的主分区,键入以下命令:

mkpart primary ext3 1024 2048

窍门:如果你使用 mkpartfs 命令,分区创建后文件系统也会被创建。然而, parted 不支持创建 ext3 文件系统。因此,如果你想创建一个 ext3 文件系统,请使用 mkpart ,然后使用稍后会说明的 mkfs 命令来创建文件系统。 mkpartfs 可以在 linux-swap 文件系统类型上使用。

只有你一按 [Enter] 键,改变就会发生,因此在执行前请检查一下命令。

创建了分区后,使用 print 命令来确认所建分区在分区表中,并具备正确的分区类型、文件系统类型和大小。 你还需要记住新分区的次要号码,这样你才可以给它注以标签。你应该查看

cat /proc/partitions

的输出来确定内核能够识别这个新分区。

5.2.2. 格式化分区

分区现在还没有文件系统。用下面的命令来创建文件系统:

/sbin/mkfs -t ext3 /dev/ hdb3

警告:格式化分区会永久地破坏目前存在于该分区上的任何数据。

5.2.3. 给分区注明标签

下一步,给分区注明标签。例如,如果新分区是 /dev/hda3 ,你想把它标为 /work :

e2label /dev/hda3 /work

Red Hat Linux 安装程序默认使用分区的挂载点作为分区的标签来确定标签的独特性。你可以使用任何想用的标签。

5.2.4. 创建挂载点

以根用户身份创建挂载点:

mkdir /work

5.2.5. 添加到 /etc/fstab

以根用户身份编辑 /etc/fstab 文件来包括新分区。新添的这一行应该类似:

LABEL=/work /work ext3 defaults 1 2

第一列应该包含 LABEL= ,然后跟随你给分区注明的标签。第二列应该包含新分区的挂载点,下一列应该是文件系统类型(如 ext3 或 swap)。如果你想了解更多关于格式化的信息,请阅读 man fstab 的说明书(man)页。

如果第四列是 defaults 这个词,分区就会在引导时被挂载。要不重新引导而挂载分区,以根用户身份键入以下命令:

mount /work

5.3. 删除分区

警告:不要试图删除正在被使用的设备上的分区。

在删除分区前,引导入救援模式(或卸载设备上的所有分区,关闭设备上的交换空间)。

启动 parted ,这里的 /dev/ hda 是你要在其中删除分区的设备:

parted /dev/ hda

查看当前的分区表来判定要删除的分区的次要号码:

print

使用 rm 来删除分区。例如,要删除次要号码为 3 的分区:

rm 3

只有你一按 [Enter] 键,改变就会发生,因此在执行前请检查一下命令。

删除了分区后,使用 print 命令来确认分区在分区表中已被删除。你还应该查看

cat /proc/partitions

的输出来确定内核知道分区已被删除。

最后一步是把它从 /etc/fstab 文件中删除。找到和已被删除的分区相应的行,然后从文件中删除它。

5.4. 重新划分分区大小

警告:不要试图重新划分正在被使用的设备上的分区的大小。

在重新划分分区大小前,引导入救援模式(或卸载设备上的所有分区并关闭设备上的交换空间)。

启动 parted ,/dev/ hda 是要在其中重新划分分区大小的设备:

parted /dev/ hda

查看当前的分区表来判定要重划大小的分区的次要号码以及它的起止点:

print

警告:要重划大小的分区上已用的空间必须大于新建的大小。

要重新划分分区大小,使用 resize 命令,然后跟随分区的次要号码,以 MB 为单位的起始点和终止点。例如:

resize 3 1024 2048

分区被重新划分了大小后,使用 print 命令来确认分区已被正确地重新划分了大小,并且具备正确的分区类型和文件系统类型。

在正常模式下重新引导了系统后,使用 df 命令来确定分区已被挂载,并且它们的新大小也已被识别。

猜你喜欢

转载自foolraty.iteye.com/blog/833644