折腾闲置的二手笔记本,装了CentOS做内网服务器的,结果被我弄得连不上网了,不知道怎么恢复,只好重装系统。
这次重装系统偷了一下懒,分区是选择的自动。
系统安装完之后第一件事就是安装宝塔面板。
然后在宝塔面板里面发现有两个文件系统存在。一个是根目录,一个是HOME目录。
这个时候正在通过FTP往根目录里传文件。根目录的容量只有55G,HOME目录的容量是409G,正在往根目录传送的文件总共有200多G,磁盘空间这明显是不够用啊。
想着要是把HOME目录的空间和根目录的空间合并在一起就好了。
估计万能的度娘肯定有资料。
先是查了扩容相关的内容,基本上都是针对第二块新增加的磁盘进行操作的,和我这个目录合并不太一样。
接着就直接搜索关键词:根目录和HOME目录合并,很容易就找到了。
根据找到的教程一步一步的操作,成功了,过程也还比较顺利。
首先查看当前磁盘分区情况:
df -lh
根据资料显示,只需注意/dev/目录下的就好,其他应该是系统处理不用管。
可以看到只有三个磁盘分区,分别是/dev/mapper/centos-root、/dev/sda1、/dev/mapper/centos-home,顺便记录下home目录的可用空间是多少,以备后用。
如果home目录有文件的话,先把home目录的文件备份一下,没有内容可以不用备份:
tar cvf /tmp/home.tar /home
备份之后卸载/home
umount /home
卸载时如果出现分区卷正忙的提示,有的终端是英文提示:"Logical volume contains a filesystem in use"
说明是有进程占用了/home分区,用下面的命令找到进程:
fuser -m /dev/mapper/centos-home
找到后再杀掉进程:
kill -9 <把上一条命令得到的所有结果的字母去掉(比如kernel),纯数字复制到这里>
我通过fuser命令查询到的进程提示是这样的:
/dev/dm-2 874c
要结束掉这个进程就执行:
kill -9 874
结束进程后,再次卸载/home分区:
umount /home
卸载完成后要删除/home分区,先用命令查看lv分区信息:
lvdisplay
然后删除分区:
lvremove /dev/centos/home
如果删除失败了的话,就用命令reboot,重启一下再删除。
删除成功之后就要把/home分区的空间扩容到根目录。扩容/root目录,增加/home的大小,之前记录下来的/home分区的可用空间是409.13G,那就增加409.13G:
lvextend -L +409.13G /dev/centos/root
必须出现success才行,如果失败了,可能是空间不够。
扩展根目录文件系统(刷新):
xfs_growfs /dev/centos/root
将之前备份的/home目录下的文件进行恢复:
cd / tar -xvf /tmp/home.tar
然后编辑/etc/fstab文件删除 /home分区:
vi /etc/fstab
将文件中home分区的一行内容删除,保存退出。这是必须要删除这段内容的,否则系统重启了将无法启动。
最后确认一下结果,还是用最开始的命令:
df -lh
可以看到根目录的大小已经变了,home目录没有了。
回到宝塔面板刷新之后也只显示根目录,不再显示home目录了。
至此,根目录和home目录合并成功了。
也是幸运,找到的资料,分区跟我现在系统的分区是一样,连卷名都是一样,估计也是安装系统的时候用了自动分区,才想要把这两个目录合并的吧。
整个过程都比较顺利,就在卸载home分区这一步卡了一小会。主要是找进程,然后kill命令不知道要怎么用,试过才明白。