共计 1754 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 本文介绍如何缩减 XFS 分区格式的 / 目录。如果需要缩减逻辑卷上的 XFS 文件系统,则需要通过备份、恢复和重新创建逻辑卷来实现。 |
Centos8
这是当前文件系统布局。当前挂载点 /
容量为 17G。我们的目的时减少 /
的容量。
在缩减分区前一定要备份重要数据。如果出现问题了,可以恢复数据。
注意:需要为该服务器额外添加一块硬盘,用来备份系统分区的。
在 VMware Workstation 中,加载光盘,并开机器用。开机按 F2,进入 BIOS,切换到 Boot 选项卡。将 CD-ROM Drive 移动到 Hard Drive 上面。按 F10 保存并重启。
选择 Troubleshooting,然后选择进入救援模式。
当进入下面界面时,选择 3,直接进入 shell 界面。
进入救援模式,可以看到 /mnt/sysimage
目录没有挂载系统分区。
# ls -al /mnt/sysimage/
挂载分区之前,需要激活逻辑卷,下面激活卷组:
# vgchange -ay
2 logical volume(s) in volume group "cl" now active
# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz--n- <19.00g 0
首先从备份开始,我们需要将逻辑卷挂载在某个位置。通过临时挂载它,我们可以将 /
分区备份到任何其他位置,并且在执行还原时需要对其进行访问。
现在,在 /mnt/sysimage/ 下创建两个目录。一个用于挂载该服务器的实际 /
分区,另一个将用于存储 /
分区的备份。
# mkdir /mnt/sysimage/root
# mkdir /mnt/sysimage/backup
# mount /dev/cl/root /mnt/sysimage/root
# mount /dev/sda /mnt/sysimage/backup/
通过运行 xfsdump
来执行备份。
# xfsdump -l 0 -L "root lv backup" -M "backup" -f /mnt/sysimage/backup/root_backup.img /mnt/sysimage/root
dump 使用级别 0
(备份所有文件)时,将提示输入备份会话标签和媒体标签,我们可以通过以下选项-f
将-L
和 -M
添加到以下内容来避免出现提示:
-l 0
备份级别设置为 0,0 级指所有文件都将备份。-L
指定备份会话的标签-M
指定第一个媒介的标签-f
指定备份目的文件。
备份完成后,我们可以卸载文件系统。
# umount /mnt/sysimage/root/
使用 lvremove
命令删除逻辑卷,并使用 lvcreate
来创建新的卷。
# lvremove /dev/cl/root
Do you really want to remove active logical volume cl/root? [y/n]: y
Logical volume "root" successfully removed
之后,创建所需的逻辑卷大小,下面创建逻辑卷大小为 15G。
# lvcreate -Zy -L 15G -n root cl
使用 -Zy
将新的逻辑卷中的前 4KiB 数据清零。
# mkfs.xfs /dev/cl/root
文件系统准备就绪后,将其挂载在 /mnt/sysimage/root 目录中:
# mount /dev/cl/root /mnt/sysimage/root/
使用 xfsrestore
命令恢复之前备份的数据:
# xfsrestore -f /mnt/sysimage/backup/root_backup.img /mnt/sysimage/root
重启进入系统检查是否正常。断开虚拟机的光驱连接,开机按 F2,进入 BIOS,设置引导顺序,将硬盘放在第一项启动,F10 保存并重启:
进入系统之后,检查分区大小是否以缩减:
[root@localhost ~]# df -hT /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 15G 1.7G 14G 11% /
就这样,借助 xfsdump
和xfsrestore
实用程序,我们完成了缩减 XFS 文件系统和逻辑卷的工作。