CentOS 7
文件系统是XFS
,并且resize2fs
不起作用。我需要缩小/home
到400G并添加100G空间/
。我该怎么办?
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 50G 341M 100% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 84K 7.8G 1% /dev/shm
tmpfs 7.8G 778M 7.0G 10% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 497M 241M 257M 49% /boot
tmpfs 1.6G 16K 1.6G 1% /run/user/42
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/centos-home 500G 20G 480G 4% /home
lvs、vgs、pvs的输出为:
[root@localhost]~# lvs -v
Using logical volume(s) on command line.
LV VG #Seg Attr LSize Maj Min KMaj KMin Pool Origin Data% Meta% Move Cpy%Sync Log Convert LV UUID LProfile
home centos 1 -wi-ao---- 499.38g -1 -1 253 2 4I53D9-7VSm-HN9H-QsSp-FvFU-5R9D-y5VwsN
root centos 1 -wi-ao---- 50.00g -1 -1 253 0 LGRoEL-0EHz-G135-p6vx-Lt2s-RvI5-qdT9Sm
swap centos 1 -wi-ao---- 7.81g -1 -1 253 1 UYB5xP-cEyV-lWvn-blIq-8s13-9kVB-ykjIWI
[root@localhost]~# vgs -v
Using volume group(s) on command line.
VG Attr Ext #PV #LV #SN VSize VFree VG UUID VProfile
centos wz--n- 4.00m 1 3 0 557.26g 64.00m Gd5c08-ujdQ-fsix-o7z6-Wfsv-C0uW-XzDois
[root@localhost]~# pvs -v
Using physical volume(s) on command line.
Found same device /dev/sda2 with same pvid TCmreQr93apETNoTl8bMc54l57FZ5hut
PV VG Fmt Attr PSize PFree DevSize PV UUID
/dev/sda2 centos lvm2 a-- 557.26g 64.00m 557.26g TCmreQ-r93a-pETN-oTl8-bMc5-4l57-FZ5hut
[root@localhost]~#
答案1
正如其他人指出的那样,XFS 文件系统不能缩小。
因此,最好的选择是备份 /home,删除并以较小的尺寸重新创建其卷,然后将其余部分提供给 /root 卷,正如 Koen van der Rijt 在他的帖子中所概述的那样。
• 备份 /home 的内容
tar -czvf /root/home.tgz -C /home .
• 测试备份
tar -tvf /root/home.tgz
• 卸载主页
umount /dev/mapper/centos-home
• 删除主逻辑卷
lvremove /dev/mapper/centos-home
• 为 /home 重新创建一个新的 400GB 逻辑卷,格式化并挂载它
lvcreate -L 400GB -n home centos
mkfs.xfs /dev/centos/home
mount /dev/mapper/centos-home
• 使用所有剩余空间扩展您的 /root 卷,同时调整 (-r) 文件系统的大小
lvextend -r -l +100%FREE /dev/mapper/centos-root
• 恢复您的备份
tar -xzvf /root/home.tgz -C /home
• 检查 /etc/fstab 中是否有 /home 卷的映射。如果它使用 UUID,则应更新 UUID 部分。(由于我们创建了新卷,因此 UUID 已更改)
就是这样。
希望这可以帮助。
请添加此项以同步更改:
dracut --regenerate-all --force
答案2
对 Ari 的回答做一个补充,因为我按照他的指示操作后仍然无法使用公钥认证进行 ssh 。
启用 selinux 后,您可能会在 /var/log/messages 中收到此消息(在 sshd_config 中启用了调试),因为 /home 已重新创建:
SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys
修复方式如下:
restorecon -R -v /home
答案3
你不能缩小 XFS 文件系统.
你只能用 来培育它们xfs_growfs
。
看:https://access.redhat.com/solutions/540013
和
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsgrow.html
目前无法使用 xfs 文件系统减小分区或逻辑卷的大小。在某些环境中,作为一种可能的解决方法,可以将精简配置的 LVM 卷视为 XFS 文件系统下的附加层。
找出占用如此多空间的内容/
并将其分离为自己的文件系统。
答案4
您需要做的第一件事是检查是什么耗尽了您的所有可用磁盘空间,否则这个问题将来可能会再次出现。
如果你真的需要调整大小,我的方法是:
- 备份 /home 的内容。(只有 20g)
umount /home
- 销毁主逻辑卷(
lvremove
) - 根据需要分配空间,调整卷大小。(
lvextend
,resize2fs
) - 为 /home 重新创建一个新的逻辑卷,格式化并挂载它(
lvcreate
,mkfs.xfs
) - 恢复备份
- 仔细检查 /etc/fstab 的内容,确保为 /home 挂载正确的卷
- 运行
mount -a
或reboot