我需要缩小由 CentOS 7.4 安装程序创建的 lvm2 分区。我对 lvm 命令看到的内容感到困惑:
光伏显示
root@ubuntu:/home/ubuntu# pvdisplay
--- Physical volume ---
PV Name /dev/sdb2
VG Name sample-group
PV Size 28.32 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 7250
Free PE 0
Allocated PE 7250
PV UUID xutuoL-6546d-rttert-n7tH-eeXu-24t3-dgf33
图形显示
root@ubuntu:/home/ubuntu# vgdisplay
--- Volume group ---
VG Name sample-group
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 28.32 GiB
PE Size 4.00 MiB
Total PE 7250
Alloc PE / Size 7250 / 28.32 GiB
Free PE / Size 0 / 0
VG UUID ytjytj-QWT5-sdf-vSMj-rKtj-gfhdfh-76885
lv显示
root@ubuntu:/home/ubuntu# lvdisplay
--- Logical volume ---
LV Path /dev/sample-group/swap
LV Name swap
VG Name sample-group
LV UUID JIZL0D-kNfL-aEsR-y6Rl-1mzx-wWpO-ngcElh
LV Write Access read/write
LV Creation host, time cube, 2018-04-20 07:15:29 +0000
LV Status available
# open 0
LV Size 2.93 GiB
Current LE 751
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/sample-group/root
LV Name root
VG Name sample-group
LV UUID 4OIJBb-6MSa-y5Ua-62bI-O6Lf-pjWZ-Qnz4Gv
LV Write Access read/write
LV Creation host, time cube, 2018-04-20 07:15:30 +0000
LV Status suspended
# open 0
LV Size 25.39 GiB
Current LE 6499
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
从上面的输出中我们看到磁盘上完全没有可用空间,但这是我在文件管理器中看到的:
几乎整个磁盘都是空的,但为什么它躺在我的控制台上?
我无法估计我有多少空间,也无法缩小它。尝试使用 kvpm 并显示相同的结果。
更新:
在伊曼纽尔对parted resizepart
步骤进行操作后,它会抛出
Error: can't have the end before the start (start sector=2099200 length=-2073809)
这是什么PV/VGS显示:
PV VG Fmt Attr PSize PFree
/dev/sdb2 sample-group lvm2 a-- 4.00g 1.06g
更新2:
已成功调整分区大小,但现在 xfsdump 拒绝恢复我的文件系统:
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.6 (dump format 3.0) - type ^C for status and control
xfsdump: WARNING: most recent level 0 dump was interrupted, but not resuming that dump since resume (-R) option not specified
xfsdump: level 0 dump of ubuntu:/mnt/root
xfsdump: dump date: Sat May 26 18:14:53 2018
xfsdump: session id: 2c905a06-6e7d-400e-8a03-5e0e20ea4583
xfsdump: session label: "new"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 20800 bytes
xfsdump: positioned at media file 0: dump 0, stream 0
xfsdump: ERROR: media contains valid xfsdump but does not support append
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: NOTE: dump interrupted: 8 seconds elapsed: may resume later using -R option
xfsdump: Dump Summary:
xfsdump: stream 0 /media/ubuntu/SYSTEM/root.backup ERROR (operator error or resource exhaustion)
xfsdump: Dump Status: INTERRUPT
答案1
要缩小 LVM 分区,您需要:
- 使用 Linux Live CD/DVD 启动
- 备份您的 XFS 文件系统(不支持缩小 XFS)
- 缩小逻辑卷
- 缩小你的物理体积
- 缩小分区
- 恢复您的 XFS 文件系统
注意:
在开始之前,请检查/etc/fstab
根文件系统设备的安装方式。如果是的话/dev/sample-group/root
你就可以走了。但如果它使用文件系统标签,您需要确保使用选项-L
来mkfs.xfs
指定相同的标签。如果它使用 UUID 或类似的东西,您需要/etc/fstab
在获得新 ID 后进行调整。
备份您的 XFS 文件系统
xfsdump
使用以下命令备份您的文件系统(最好是到另一个设备) :
mkdir /mnt/backup
mkdir /mnt/root
mount /dev/sample-group/root /mnt/root
mount /dev/some-backup-device /mnt/backup
xfsdump -f /mnt/backup/root.backup /mnt/root
umount /mnt/root
“缩小”逻辑卷和物理卷以及分区
虽然可以使用 缩小根逻辑卷lvreduce
,但删除它并使用所需的大小重新创建它会更容易。因此,您将删除逻辑卷,将物理卷缩小到足以容纳剩余的逻辑卷(交换),将分区缩小到所需的大小,调整物理卷的大小,以便它用完分区中的所有空间。分区,最后重新创建逻辑卷。我知道这看起来很多,但它避免了必须准确指定调整大小单位,如果不匹配可能会导致错误。
在此示例中,新逻辑卷的目标大小为 ~10GB(3GB 交换 + 10GB 根 = 13GB 分区):
lvremove /dev/sample-group/root
pvresize --setphysicalvolumesize 4GB /dev/sdb2
parted /dev/sdb resizepart 2 13GiB
pvresize /dev/sdb2
lvcreate -ay -l 100%FREE -n root sample-group
指示使用卷组中的所有剩余空间,在本例中总计约为 10GB 100%FREE
。lvcreate
根据需要进行调整。
恢复您的 XFS 文件系统
现在您已准备好恢复 XFS 文件系统:
wipefs /dev/sample-group/root
mkfs.xfs /dev/sample-group/root
mount /dev/sample-group/root /mnt/root
xfsrestore -f /mnt/backup/root.backup /mnt/root
umount /mnt/root
umount /mnt/backup
最后,祈祷并重新启动。