跑步df -h
给了我以下内容:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 49G 1.3G 98% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 769M 7.1G 10% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-home 78G 182M 78G 1% /home
/dev/sda1 497M 338M 160M 68% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
我想分配更多空闲给/dev/mapper/centos-root
通过减少分配来分配更多的空闲空间/dev/mapper/centos-home
我如何从家里删除 50GB 并将其提供给 root?
更多信息
跑步mount
告诉我以下信息:
/dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
这是否意味着它是 XFS 文件系统?当我运行时,resize2fs
出现以下错误:
resize2fs: Bad magic number in super-block while trying to open /dev/centos/home Couldn't find valid filesystem superblock.
答案1
首先,vgs
以 root 身份运行并检查显示的卷组的 VFree 值centos
。如果它非零,则表示 VG 中有未分配的容量:它可用于扩展根文件系统,而无需先收缩/home
。如果是这样,您可以直接跳到这个答案的最后一段。
但如果vgs
报告 VFree 为零centos
,请继续阅读...
由于您的/home
文件系统显然只包含 182M 的数据,因此您可以轻松地将其内容备份到某个临时位置(甚至 USB 记忆棒),然后卸载/home
,然后破坏性地调整逻辑卷的大小并重新创建文件系统。
XFS 文件系统可以在线扩展,但不能减少。因此调整你的大小会很有用/home
,因为只要卷组中还有未分配的容量,您就可以根据需要重新扩展它。
该过程可能是这样的:
# cd /
# tar --acls --selinux --xattrs jcvf /some/where/home_archive.tar.bz2 home
<verify that the resulting archive is readable and intact>
# umount /home
# lvreduce -L 10G /dev/mapper/centos-home
# mkfs.xfs -f /dev/mapper/centos-home # WARNING: this will definitely destroy existing contents!
# mount /home
# cd /
# tar --acls --selinux --xattrs xvf /some/where/home_archive.tar.bz2
现在/home
文件系统的大小只有10G,centos
卷组中剩余的容量是空闲的。你可以用vgs
。
要在线扩展根文件系统(或位于 LVM 逻辑卷上的任何 XFS 文件系统),过程是:
# lvextend -L <new size> /dev/mapper/centos-root # lvextend wants the LV device name
# xfs_growfs / # xfs_growfs wants the filesystem mount-point as argument