日期:2014-05-16  浏览次数:20821 次

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 命令来确认所建分区在分区表中,并具备正确的分区类型、文