在 RHEL 7 中, parted 是默认的用来处理分区的程序,且它允许你:

  • 展示当前的分区表

  • 操纵(扩大或缩小分区的大小)现有的分区

  • 利用空余的磁盘空间或额外的物理存储设备来创建分区


parted /dev/sdb

其中 /dev/sdb 是你将要创建新分区所在的设备;然后键入 print 来显示当前设备的分区表:


把分区格式化为 xfs 文件系统,然后再次打印出分区表,以此来确保更改已被应用。

# mkfs.xfs /dev/sdb1# parted /dev/sdb print


xfs 文件系统,它是 RHEL 7 中默认的文件系统


对于旧一点的文件系统,在 parted 中你可以使用 resize 命令来改变分区的大小。不幸的是,这只适用于 ext2, fat16, fat32, hfs, linux-swap, 和 reiserfs (若 libreiserfs 已被安装)。


改变分区大小的唯一方式是删除它然后再创建它(所以,确保你对你的数据做了完整的备份!)。毫无疑问,在 RHEL 7 中默认的分区方案是基于 LVM 的。


使用 parted 来移除一个分区,可以用:

# parted /dev/sdb print# parted /dev/sdb rm 1



逻辑卷管理(LVM)

一旦一个磁盘被分好了分区,再去更改分区的大小就是一件困难或冒险的事了。基于这个原因,假如我们计划在我们的系统上对分区的大小进行更改,我们应当考虑使用 LVM 的可能性,而不是使用传统的分区系统。这样多个物理设备可以组成一个逻辑组,以此来存放任意数目的逻辑卷,而逻辑卷的增大或减少不会带来任何麻烦。


使用 /dev/sdb 和 /dev/sdc 中 100% 的可用磁盘空间来创建分区 /dev/sdb1 和/dev/sdc1

# parted /dev/sdb print
# parted /dev/sdc print



分别在 /dev/sdb1 和 /dev/sdc1 上共创建 2 个物理卷。

# pvcreate /dev/sdb1# pvcreate /dev/sdc1



在上一步中创建的物理卷之上创建一个卷组(VG):

# vgcreate tecmint_vg /dev/sd{b,c}1



可使用 vgdisplay tecmint_vg 来显示有关新建的卷组的信息。


在卷组 tecmint_vg 之上创建 3 个逻辑卷(LV):

# lvcreate -L 3G -n vol01_docs tecmint_vg       [vol01_docs → 3 GB]
# lvcreate -L 1G -n vol02_logs tecmint_vg       [vol02_logs → 1 GB]
# lvcreate -l 100%FREE -n vol03_homes tecmint_vg    [vol03_homes → 6 GB]


可以使用 lvdisplay tecmintvg 来显示有关在 tecmintvg 之上新建的逻辑卷的信息。


格式化每个逻辑卷为 xfs 文件系统格式(假如你计划在以后将要缩小卷的大小,请别使用 xfs 文件系统格式!):

# mkfs.xfs /dev/tecmint_vg/vol01_docs
# mkfs.xfs /dev/tecmint_vg/vol02_logs
# mkfs.xfs /dev/tecmint_vg/vol03_homes



挂载它们:

# mount /dev/tecmint_vg/vol01_docs /mnt/docs
# mount /dev/tecmint_vg/vol02_logs /mnt/logs
# mount /dev/tecmint_vg/vol03_homes /mnt/homes



现在开始的操作是和先前相反的。

移除逻辑卷、卷组和物理卷:

# lvremove /dev/tecmint_vg/vol01_docs
# lvremove /dev/tecmint_vg/vol02_logs
# lvremove /dev/tecmint_vg/vol03_homes# vgremove /dev/tecmint_vg
# pvremove /dev/sd{b,c}1



安装 SSM,我们将看到如何只用一步就完成上面所有的操作!

# yum update && yum install system-storage-manager



上面一样,使用相同的名称和大小:

# ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 /mnt/docs /dev/sd{b,c}1
# ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 /mnt/logs /dev/sd{b,c}1
# ssm create -n vol03_homes -p tecmint_vg --fstype ext4 /mnt/homes /dev/sd{b,c}1



 SSM 可以让你:

  • 初始化块设备来作为物理卷

  • 创建一个卷组

  • 创建逻辑卷

  • 格式化逻辑卷,以及

  • 只使用一个命令来挂载它们



以使用下面的命令来展示有关物理卷、卷组或逻辑卷的信息:

# ssm list dev
# ssm list pool
# ssm list vol



 LVM 的一个显著的特点是可以在不停机的情况下更改(增大或缩小)逻辑卷的大小:

假定在 vol02logs 上我们用尽了空间,而 vol03homes 还留有足够的空间。我们将把 vol03homes 的大小调整为 4 GB,并使用剩余的空间来扩展 vol02logs:

# ssm resize -s 4G /dev/tecmint_vg/vol03_homes



再次运行 ssm list pool,并记录 tecmint_vg 中的剩余空间的大小


ssm resize -s+1.99 /dev/tecmint_vg/vol02_logs

: 在 -s 后的加号暗示特定值应该被加到当前值上。



使用 ssm 来移除逻辑卷和卷组也更加简单,只需使用:

# ssm remove tecmint_vg



管理加密的卷

  1. # yum update && yum install cryptsetup



创建加密的卷

  1. ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/docs /dev/sd{b,c}1

  2. # ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/logs /dev/sd{b,c}1

  3. # ssm create -n vol03_homes -p tecmint_vg --fstype ext4 --encrypt luks /mnt/homes /dev/sd{b,c}1



往 /etc/fstab 中添加条目来让这些逻辑卷在启动时可用,而不是使用设备识别编号(/dev/something)。

我们将使用每个逻辑卷的 UUID (使得当我们添加其他的逻辑卷或设备后,我们的设备仍然可以被唯一的标记),而我们可以使用 blkid 应用来找到它们的 UUID:

# blkid -o value UUID /dev/tecmint_vg/vol01_docs
# blkid -o value UUID /dev/tecmint_vg/vol02_logs
# blkid -o value UUID /dev/tecmint_vg/vol03_homes


用下面的内容来创建 /etc/crypttab 文件(请更改 UUID 来适用于你的设置):

docs UUID=ba77d113-f849-4ddf-8048-13860399fca8 nonelogs UUID=58f89c5a-f694-4443-83d6-2e83878e30e4 nonehomes UUID=92245af6-3f38-4e07-8dd8-787f4690d7ac none



在 /etc/fstab 中添加如下的条目。请注意到 devicename (/dev/mapper/devicename) 是出现在 /etc/crypttab 中第一列的映射标识:

# Logical volume vol01_docs:/dev/mapper/docs        /mnt/docs       ext4    defaults        0       2# Logical volume vol02_logs/dev/mapper/logs        /mnt/logs       ext4    defaults        0       2# Logical volume vol03_homes/dev/mapper/homes       /mnt/homes      ext4    defaults        0       2



现在重启(systemctl reboot),则你将被要求为每个逻辑卷输入密码。随后,你可以通过检查相应的挂载点来确保挂载操作是否成功: