CentOS 7
file system is XFS
, And resize2fs
doesn't work. I need to shrink /home
to 400G and add 100G space to /
. What should I do?
# 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
The output of lvs, vgs and pvs are:
[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]~#
As others have pointed out, XFS filesystem cannot be shrunk.
So your best bet is to backup /home, remove and recreate its volume in a smaller size and give the rest to your /root volume just as Koen van der Rijt outlined in his post.
• backup the contents of /home
• test the backup
• unmount home
• remove the home logical volume
• recreate a new 400GB logical volume for /home, format and mount it
• extend your /root volume with ALL of the remaining space and resize (-r) the file system while doing so
• restore your backup
• check /etc/fstab for any mapping of /home volume. IF it is using UUID you should update the UUID portion. (Since we created a new volume, UUID has changed)
That's it.
Hope this helps.
Kindly add this to sync the changes:
An addition to Ari's answer as I was unable to ssh using public key authentication after following his instructions.
With selinux enabled you may get this message in /var/log/messages (with debug enabled in sshd_config) because /home was recreated:
Fix it by:
You can't shrink an XFS filesystem.
You can only grow them with
xfs_growfs
.See: https://access.redhat.com/solutions/540013
and
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsgrow.html
Find out what's taking so much space under
/
and split it out as its own filesystem.you can only do this on a live system if it is partitioned with LVM - logical volume management. what is the output of:
The first thing you need to do is check what has used up all your free disk space otherwise this problem will occur again sometime in the future.
If u really need to resize my approach would be:
umount /home
lvremove
)lvextend
,resize2fs
)lvcreate
,mkfs.xfs
)mount -a
orreboot