磁盘管理
1、磁盘简介
1.1 认识磁盘
磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写;绝大多数磁盘被永久封存在一个密封的盒子里。
1.2 磁盘运行机理
简单来说就是多个盘片之间靠主轴连接,电机带动主轴做旋转运动,通过多个磁头臂的摇摆和磁盘的旋转,磁头就可以在磁盘旋转的过程中就读取到磁盘中存储的各种数据。
1.3 磁盘的扇区、磁道、柱面
磁道: 磁盘的每个盘面被划分为许多同心圆,这些同心圆的轨道叫做磁道。
扇区: 一个盘面划分为若干个内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时被读入或写入。每一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节。
柱面: 每一个盘片同一大小的同心圆可以看成连在一起的柱面,磁盘在分区的时候最小单位是柱面,每一个盘片的上下面都可以读取数据,每一个磁头,不可以跨盘面读取数据。
1.4 磁盘的分类
IDE接口磁盘: 特点价格低廉,兼容性强,性价比高,数据传输较慢,不支持热插拔等。
SCSI接口磁盘: 传输速率高,读写性能好,运行稳定,可连接多个设备;可支持热插拔,占用CPU低,但是价格相对来说比较贵,一般用于工作站或服务器上。
SATA接口磁盘: 结构简单、支持热插拔。
USB接口磁盘: 移动硬盘,随身携带,性能较低。
IDE接口的磁盘在Linux系统中命名为:/dev/hd[a-z]
SCSI、SATA、USB接口的磁盘在Linux系统中命名为:/dev/sd[a-z]
虚拟化磁盘在Linux系统中命名为:/dev/vd[a-z]
打印机设备在Linux系统中命名为:/dev/lp[0-15]
2、磁盘分区
2.1 为什么要分区?
易于管理和使用:
比如说我们把磁盘分成多个盘(分区)sda1、sda2、sda3、sda4,假设sda1盘为系统盘,其他的比如说游戏、办公、软件盘,这样我们想管理哪个盘直接选中操作即可不会影响其他盘;而且根据用途我们也能较快的去使用相应的磁盘。
有利于数据的安全:
通过分区可以降低数据损失的风险;出现硬盘坏道、错误操作、重装系统都有可能造成数据损失,如果分区了,那么我们就可以将损失最小化。
节约寻找文件的时间:
寻找文件的时间是指电脑搜索文件的时间;分区以后,电脑搜索文件时只需要在相对应的分区搜索就可以了,没必要进行全盘搜索,大大节省了寻找文件的时间。
磁盘分区图示:
2.2 分区类型
MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式;这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。
MBR是Master Boot Record的简称,也就是主引导记录,是位于磁盘最前边的一段引导(Loader)代码,主要用来引导操作系统的加载与启动。
特点:
- MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘
- 只支持最多4个主分区。若想要更多分区,需要创建扩展分区,并在其中创建逻辑分区
GPT磁盘是指使用GUID分区表的磁盘,GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。
特点:
- GPT对磁盘大小没有限制
- 最多可以创建128个分区
3、分区工具使用
3.1 查看分区使用情况
df #命令查看已挂载磁盘或分区使用情况,默认K为单位
-h #以G或者T或者M人性化方式显示
-i #查看inode使用情况
-T #查看文件系统类型
[root@localhost ~]# df -h
设备名称 磁盘大小 已用大小 可用大小 使用百分比 挂载点
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0%
/sys/fs/cgroup
/dev/mapper/rhel-root 55G 14G 42G 26% /
/dev/sr0 7.9G 7.9G 0 100% /mnt/cdrom
/dev/nvme0n1p1 1014M 229M 786M 23% /boot
tmpfs 376M 4.0K 376M 1% /run/user/0
tmpfs 376M 1.2M 375M 1% /run/user/42
lsblk #查看所有磁盘和分区使用情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 7.9G 0 rom /mnt/cdrom
nvme0n1 259:0 0 60G 0 disk
|-nvme0n1p1 259:1 0 1G 0 part /boot
|-nvme0n1p2 259:2 0 19G 0 part
| |-rhel-root 253:0 0 55G 0 lvm /
| `-rhel-swap 253:1 0 2G 0 lvm [SWAP]
`-nvme0n1p3 259:3 0 40G 0 part
`-rhel-root 253:0 0 55G 0 lvm /
du #统计文件占用磁盘大小
-s #列出总和
-h #人性化显示容量信息
[root@localhost ~]# du -sh /etc/
30M /etc/
3.2 磁盘分区工具
分区工具有fdisk和gdisk,当硬盘小于2T的时候我们应该用fdisk来分区,而当硬盘大于2T的时候则应用gdisk来进行分区;fdisk默认使用MBR分区表,gdisk默认使用GPT分区表。
#生产分区建议: 如无特殊需求, 直接使用整个磁盘即可, 无需分区
#学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)
fdisk #磁盘分区工具,默认采用MBR分区表
-l #列出系统中所有磁盘
#查看系统中磁盘信息
[root@localhost ~]# fdisk -l
#对/dev/sdb进行分区
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): m #获取帮助
Command action
a toggle a bootable flag #切换分区启动标记
d delete a partition #删除分区
l list known partition types #显示分区类型
m print this menu #显示帮助菜单
n add a new partition #新建分区
o create a new empty DOS partition table #创建新的空白分区表
p print the partition table #显示分区表的信息
q quit without saving changes #不保存退出
t change a partition's system id #修改分区ID类型,可以通过l查看id
w write table to disk and exit #保存退出
#创建主分区
Command (m for help): n #新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free) #主分区
e extended #扩展分区
Select (default p): p #选择主分区
Partition number (1-4, default 1): #分区序号
First sector (2048-2097151, default 2048): #起始扇区位置,回车默认即可
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M #结束扇区位置,+50M表示此分区大小为50MB
#创建扩展分区
Command (m for help): n #新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #创建扩展分区
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): #回车默认划分所有空间给扩展分区
#创建逻辑分区
Command (m for help): n #新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #创建逻辑分区
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M #分配100MB空间
#查看分区创建
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux
#保存分区
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#安装parted, 刷新内核立即生效分区配置,无需重启
[root@localhost ~]# dnf -y install parted
[root@localhost ~]# partprobe /dev/sdb
#检查磁盘是否是MBR分区方式
[root@localhost ~]# fdisk -l /dev/sdb | grep type
Disk label type: dos
gdisk #磁盘分区工具,默认采用GPT分区表
[root@localhost ~]# gdisk /dev/sdb
Command (? for help): n #创建新分区
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M #分配500M大小
Command (? for help): p #查看分区情况
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
Command (? for help): w #保存分区
Do you want to proceed? (Y/N): y #确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
#检查磁盘是否是gpt格式
[root@localhost /]# fdisk /dev/sdb -l | grep type
Disk label type: gpt
#安装parted, 刷新内核立即生效分区配置,无需重启
[root@localhost ~]# yum -y install parted
[root@localhost ~]# partprobe /dev/sdb
3.2 磁盘格式化
mkfs命令用来格式化磁盘或分区,创建文件系统;磁盘分区后必须格式化创建文件系统才能正常使用。
mkfs #格式化磁盘或分区
-b #设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块。
-t #用来指定什么类型的文件系统,可以是ext3,ext4, xfs
-i #设定inode的大小
-N #设定inode数量,防止Inode数量不够导致磁盘不足
-L #预设该分区的标签label
#使用-t指定方式创建xfs文件系统
[root@localhost ~]# mkfs -t xfs /dev/sdb1
#也可以使用另一种方式格式化sdb1分区为ext4文件系统
[root@localhost ~]# mkfs.ext4 /dev/sdb1
3.3 磁盘挂载
磁盘分区格式化之后, 在Linux中必须进行挂载才能进行使用;挂载分区前需要创建挂载点, 挂载点就是一个目录,如果往挂载点目录写入数据, 实际上会写入到挂载的分区当中;挂载点建议是空目录, 如果不是也不影响挂载分区的使用,但是原有的文件会被隐藏。
挂载分为两种临时挂载和永久挂载;临时挂载即重启之后失效,永久挂载即开机自动挂载。
临时挂载磁盘:
mount #磁盘挂载命令,实质为文件系统指定访问入口
-t #指定挂载分区的文件系统类型,如ext3,ext4, xfs
-o #//指定挂载参数
-a #重新读取/etc/fstab配置文件的所有挂载
#挂载/dev/sdb1至db1目录
[root@localhost ~]# mkdir /mnt/disk1
[root@localhost ~]# mount -t xfs /dev/sdb1 /mnt/disk1
#fstab被损坏情况下,让只读文件系统可写(正常情况下不使用)
[root@localhost ~]# mount -o rw,remount /
永久挂载磁盘:
blkid #获取所有分区的UUID
#blkid命令获取sdb1分区的UUID
[root@localhost ~]# blkid | grep "sdb1"
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
#使用UUID临时挂载磁盘sdb1分区至于db1
[root@localhost ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /mnt/disk1
#将挂载写入到/etc/fstab中,实现永久挂载, 开机自动挂载
[root@localhost ~]# vim /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /mnt/disk1 xfs defaults 0 0
#加载fstab配置文件, 同时检测语法是否有错误
[root@localhost ~]# mount –a
fstab配置文件介绍:
[root@localhost ~]# vim /etc/fstab
分区标识(UUID或设备名) 挂载点 文件类型 挂载参数 不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /mnt/disk1 xfs defaults 0 0
#挂载参数, 可写fstab配置文件, 也可以mount时使用-o参数指定
参数 参数意义 系统默认值
async 系统每隔一段时间把内存数据写入磁盘中
sync 时时同步内存和磁盘中数据;
suid,nosuid 允许/不允许分区有suid属性 suid
rw,ro 可以指定文件系统是只读ro或读写rw rw
exec,noexec 允许/不允许可执行文件执行,不要挂载根分区 exec
user,nouser 允许/不允许root外的其他用户挂载分区 nouser
auto,noauto 开机自动挂载/不自动挂载 auto
defaults 默认文件系统挂载设置 rw, suid, dev, exec, auto, nouser, async
#加载fstab配置文件中所有配置
[root@localhost ~]# mount -a
卸载挂载磁盘:
umount #取消挂载
-lf #强制取消挂载
#使用站点目录卸载
[root@localhost ~]# umount /mnt/disk1
#使用设备名卸载/dev/sdb1
[root@localhost ~]# umount /dev/sdb1
#umount不能卸载的情况
[root@localhost db1]# umount /db1
umount: /db1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)
#如上情况解决办法有两种, 切换至其他目录或使用'-l'选项强制卸载
[root@localhost db1]# umount -lf /db1
4、SWAP交换分区
交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。交换分区一般指定虚拟内存的大小为实际内存的1~1.5倍。如果实际内存超过8GB,可以直接划分16GB给虚拟内存即可。
#为系统添加SWAP分区
#查看内存和SWAP交换分区的使用情况
[root@localhost ~]# free -mh
total used free shared buff/cache available
Mem: 1.8G 258M 103M 61M 1.4G 1.3G
Swap: 0 0 0 <--- 没有交换分区
#使用磁盘创建一个分区作为SWAP交换分区,并且把分区类型更改为82
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): n #新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #选择主分区
Partition number (1-4, default 1): #分区序号
First sector (2048-2097151, default 2048): #起始扇区位置,回车默认即可
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +2G #结束扇区位置,+2G表示此分区大小为2G
Select (default p): t #修改分区id
Partition number (default 1) #选择要成为SWAP的分区
Hex code (type L to list all codes):82 #修改成id为82
Changed type of partition 'Linux LVM' to 'Linux swap / Solaris'.
Command (m for help): p
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 82 Linux swap / Solaris <---修改成功
Command (m for help): w
#强烈建议对分区做了修改后都刷新一下
[root@localhost ~]# partprobe /dev/sdb
#把sdb1格式化为交换分区
[root@localhost ~]# mkswap /dev/sdb1
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=ba08eb90-2003-44e6-9769-9a9351aebb05
#启动交换分区
[root@localhost ~]# swapon /dev/sdb1
#启动所有交换分区
[root@localhost ~]# swanon -a
#查看交换分区
[root@localhost ~]# free -mh
total used free shared buff/cache available
Mem: 1.8G 258M 103M 61M 1.4G 1.3G
Swap: 2G 0 2G
#永久挂载交换分区
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="ba08eb90-2003-44e6-9769-9a9351aebb05" TYPE="swap"
[root@localhost ~]# vim /etc/fstab
UUID=ba08eb90-2003-44e6-9769-9a9351aebb05 swap swap defaults 0 0
[root@localhost ~]# mount -a
5、生产磁盘故障案例
#Inode被占满,导致磁盘有可用的剩余空间也无法继续使用
[root@localhost ~]# dd if=/dev/zero of=/opt/newdisk bs=1k count=1024
[root@localhost ~]# mkfs.ext4 -i 1024 /opt/newdisk
[root@localhost ~]# mkdir /mnt/data
[root@localhost ~]# mount -t ext4 -o loop /opt/newdisk /mnt/data/
#inode被占满
[root@localhost ~]# cd /mnt/data/
[root@localhost data]# touch {1..20000}
touch: cannot touch `19997': No space left on device
touch: cannot touch `19998': No space left on device
touch: cannot touch `19999': No space left on device
touch: cannot touch `20000': No space left on device
#inode被占满,剩余block也是无法继续使用
[root@localhost ~]# df -h|grep data
/opt/newdisk 891K 34K 806K 5% /mnt/data/
[root@localhost ~]# df -i | grep data
/opt/newdisk 1024 1024 0 100% /mnt/data/
#假设现在线上正在运行Nginx服务, Nginx产生的日志已经达到了20个G, 磁盘眼看就看沾满了, 请问不重启Nginx的方式如何处理
#删除文件, 但虽然文件被删除但是Nginx持续占用着文件, 所以空间并不会被释放
rm -f access.log
#正确做法如下, 使用重定向清空该文件即可释放文件内容
> access.log
6、LVM逻辑卷管理
6.1 LVM逻辑卷的作用
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足系统的需要。
LVM逻辑卷管理是一个多才多艺的硬盘系统工具;无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。
6.2 LVM逻辑卷中的名词
Physical Extend:物理拓展简称PE,逻辑卷管理的基本单位,默认大小是4M。
Physical Volume:物理卷简称PV,将一块磁盘或分区拆分为一个个PE,那么这块磁盘或分区就是PV。
Volume Group:卷组简称VG,一个空间池用来装PE;可以把一个或者多个PV加到VG当中,此时VG中就有了存储空间。
Logical Volume:逻辑卷简称LV,VG的空间不能够直接使用需要从VG中将空间提取出来,提取出来的空间就叫LV;LV的大小必须是PE的倍数。
6.3 创建LVM逻辑卷
LVM逻辑卷创建流程:
- 添加物理磁盘,创建物理卷
- 创建卷组,将物理卷加入卷组
- 在卷组中划分逻辑卷
- 格式化逻辑卷
- 挂载使用
#1.准备物理磁盘
[root@localhost ~]# lsblk |grep "sd[bcd]"
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk
#2.将磁盘转换为PV
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
#检查pv创建情况
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 1.00g 1.00g
#3.创建名为datavg的卷组,将物理卷/dev/sdb添加到该卷组
[root@localhost ~]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
#在创建卷组时可使用-s选项调整PE的大小
[root@localhost ~]# vgcreate -s 16M datavg /dev/sdb
#查看卷组
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
datavg 1 0 0 wz--n- 1020.00m 1020.00m
#4.创建逻辑卷,设置逻辑卷名称,指定从哪个卷组提取多大存储空间
[root@localhost ~]# lvcreate -L 100M -n lv1 datavg
Logical volume "datalv1" created.
#-L表示从卷组提取指定容量,-l可以指定从卷组提取多少个PE
[root@localhost ~]# lvcreate -l 25 -n lv1 datavg
#检查逻辑卷
[root@localhost ~]# lvscan
ACTIVE '/dev/datavg/lv1' [100.00 MiB] inherit
#5.格式化文件系统
[root@localhost ~]# mkfs.xfs /dev/datavg/lv1
#挂载并使用
[root@localhost ~]# mkdir /mnt/lv1
[root@localhost ~]# mount /dev/datavg/lv1 /mnt/lv1/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/datavg-lv1 97M 5.2M 92M 6% /mnt/lv1
6.4 卷组管理
扩展卷组,扩大卷组空间
#1.将新硬盘转换为PV
[root@localhost ~]# pvcreate /dev/sdc
#2.使用vgextend扩展,将新的pv加入到vg
[root@localhost ~]# vgextend datavg /dev/sdc
Volume group "datavg" successfully extended
缩减卷组,缩减卷组空间
[root@localhost ~]# vgreduce datavg /dev/sdb
Removed "/dev/sdb" from volume group "datavg"
卷组中PV数据迁移,同一卷组的PV之间才可以进行在线迁移
#1.查看当前逻辑卷VG中PV使用情况
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg1 lvm2 a -- 2.00g 1.76g
/dev/sdc vg1 lvm2 a -- 2.00g 2.00g
#2.pvmove将一个PV的数据迁移至其他PV
[root@localhost ~]# pvmove /dev/sdb /dev/sdc
/dev/sdb: Moved: 41.33%
/dev/sdb: Moved: 100.00%
#3.查看是否将sdb数据迁移至sdc
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg1 lvm2 a -- 2.00g 2.00g
/dev/sdc vg1 lvm2 a -- 2.00g 1.76g
6.5 逻辑卷管理
逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz --n- 1.88g 1.00g
#1.扩展LV逻辑卷
#扩展卷组中空闲空间按百分比扩展给逻辑卷
[root@localhost ~]# lvextend -l +50%FREE /dev/datavg/lv1
#增加800M分配给逻辑卷
[root@localhost ~]# lvextend -L +800M /dev/datavg/lv1
#把逻辑卷扩展到800M
[root@localhost ~]# lvextend -L 800M /dev/datavg/lv1
#2.扩展文件系统
#xfs文件系统扩容
[root@localhost ~]# xfs_growfs /dev/datavg/lv1
#ext文件系统扩容
[root@localhost ~]# resize2fs /dev/datavg/lv1
ext4文件系统的逻辑卷容量裁剪
#首先自己创建一个1G的逻辑卷作为裁剪的对象
[root@localhost ~]# lvcreate -L 1G -n lv2 datavg
[root@localhost ~]# mkfs.ext4 /dev/datavg/lv2
[root@localhost ~]# mkdir /mnt/lv2
[root@localhost ~]# mount /dev/datavg/lv2 /mnt/lv2
#1、如果已经挂载,必须先卸载
[root@localhost ~]# umount /dev/datavg/lv2
#2、裁剪容量,必须是先检测文件系统
[root@localhost ~]# e2fsck -f /dev/datavg/lv2
#3、检测完文件系统后,将文件系统大小裁剪到512M
[root@localhost ~]# resize2fs /dev/datavg/lv2 512M
#4、文件系统大小裁剪完毕后裁剪逻辑卷容量
[root@localhost ~]# lvreduce -L 512M /dev/datavg/lv2
WARNING: Reducing active logical volume to 512.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv2? [y/n]: y
#4、强烈建议裁剪后,再次检测文件系统
[root@localhost ~]# e2fsck -f /dev/datavg/lv2
#5、挂载测试,如果能够挂载,一般说明裁剪成功,文件系统没有损坏
[root@localhost ~]# mount /dev/datavg/lv2 /mnt/lv2
...
/dev/datavg/lv2 472M 1.6M 435M 1% /mnt/lv2 文件系统容量被刷新了