学CentOS完全是被迫的,公司新购买了一套系统,必须安装到CentOS下,不得已,被迫地学习怎么安装和使用CentOS。
等我去机房把CentOS 8.2(见《使用U盘安装CentOS 8.2》)安装好之后,通知乙方来安装系统,乙方过来看了一眼,说,这个不行啊,我们要求根目录至少500G以上。
excuse me?软件一定要安装在C盘上吗?就不能安装到D盘吗?
乙方说,不行!
好吧,谁叫我们是甲方爸爸呢,现在不都是儿子说啥老爸就做啥吗?
对于小白而言,为了安全起见,自然还是先在虚拟机里安装了一个相同版本的CentOS 8.2,然后开始百度,对着折腾。
中间的艰辛就不说了,说多了都是泪啊,百度到的文章都没有告诉我,以上办法适用于EXT4,害得我是安了装、装了卸,经历了无数次系统崩溃、无数系统重装,终于成功了,特记录于下:
查看分区格式和容量
命令:df -Th
从运行结果中可以看出,根目录/
,使用的是默认安装,只有50G,而/home
有2.9T,所以需要将/home
的部分空间腾出来让根目录/
使用。
最重要的是:一定要看清楚,/home
的格式是xfs
,而不是ext4
,强一下,下面方法,适用于xfs
格式
备份/home
xfs格式的分区只能扩大,不能缩小,如果要强制缩小,就一定要重新格式化,那么数据就会丢失,所以在操作之前,一定要备份/home
中的文件。
CentOS中,任何资源都可以被当作文件来管理,比如目录、光驱、终端等,都是一个个文件。既然是文件,那么备份就只需要将/home
中的所有文件复制到别处进行备份:cp -R /home/ /root/
其实,XFS
提供了xfsdump
和xfsrestore
两个工具用于协助备份XFS
文件系统中的数据,类似于ghost
,更为便捷安全。xfsdump -f /root/home.img /home
卸载/home
使用umount /home
命令卸载/home
如果无法卸载,报错信息为:
umount: /home: device is busy
说明有进程正在使用/home中的文件,可以使用fuser -ck /home/
命令可以kill所有进程。
删除home逻辑卷
使用vremove /dev/cl/home
可以删除LV逻辑卷home
扩充root逻辑卷
使用lvresize -L 1T /dev/cl/root
,可以将LV逻辑卷扩充到1T。
扩充文件系统根目录
使用xfs_growfs /
可以扩充文件系统根目录
重新创建home逻辑卷并格式化
使用lvcreate -L 1.9T -n home cl
,可以重新创建home逻辑卷。
创建完后,使用mkfs.xfs /dev/mapper/cl-home
命令格式化。
挂载
使用mount –a
挂载
恢复数据
如果使用复制文件备份/home数据的话,只需要把文件再复制回来即可。
如果使用xfsdump -f /root/home.img /home使用备份数据的话,需要使用xfsrestore -f home.img /home还原数据