Centos系统将/dev/centos/home存储空间转移到/dev/centos/root

文章目录

  • 前言
  • 操作步骤
    • [1. 备份数据](#1. 备份数据)
    • [2. 卸载/home分区](#2. 卸载/home分区)
    • [3. 调整逻辑卷](#3. 调整逻辑卷)
    • [4. 调整文件系统](#4. 调整文件系统)
    • 补充

前言

在CentOS系统(以及许多其他Linux发行版)中,默认情况下/home分区有较大空间而/root(实际上是根分区/)较小,这种设计有官方处于实用和安全方面的考虑,但是对于个人开发者而言,我们自己用的主机大部分都是root账号,/home下的空间基本不会用到,如下图,笔者的机器/home下完全没有使用,但是/home目录所属磁盘分区分配了180多G空间,比较浪费,故而我们尝试把这块空间挪到常用的/dev/centos/root下。

操作步骤

1. 备份数据

所有磁盘类操作,建议都先备份数据,防止出现问题时可以恢复数据。

针对本次问题,我们需要手动备份/home下的数据,可以直接打包/home目录,放入/tmp或其他空间暂存,代码示例如下:

shell 复制代码
tar zcvf /tmp/home.tar /home

2. 卸载/home分区

使用umount命令卸载/home分区

shell 复制代码
umount /dev/centos/home

3. 调整逻辑卷

使用LVM(逻辑卷管理)的工具减少/home的大小,并增加/root的大小。

您可以使用lvreduce来减少/home的大小,然后使用lvextend来增加/root的大小,如果你完全不再需要/home空间,可以使用lvremove命令移除/home目录所属分区。

  • 减少/home的大小
shell 复制代码
# 方法1:减少特定大小空间,比如100G
lvreduce -L -100G /dev/centos/home

# 方法2:完全移除分区(笔者采用该方式)
lvremove /dev/centos/home

命令行会弹出交互式提示,是否确认操作,选择y

  • 而后将腾出来的空间,加到/dev/centos/root分区
shell 复制代码
# 示例:为/dev/centos/root分区增加180G
lvextend -L +180G /dev/centos/root

此时,实际还有一些零碎的空间,我们可以继续尝试增加,根据提示调整大小(前提是不再需要/home目录,如果有需要,可以留一小部分空间重新建立/dev/centos/home)

OK,至此基本没有冗余空间了。

4. 调整文件系统

在调整了逻辑卷的大小之后,需要调整文件系统以匹配新的分区大小。对于ext4文件系统,可以使用xfs_growfs 命令。

shell 复制代码
xfs_growfs /dev/centos/root

至此,笔者的需求已满足,/dev/centos/home分区磁盘空间已转移到/dev/centos/root分区下。

补充

如果你需要/home目录,只是需要空间小一点,可以通过调整逻辑卷和文件系统来实现

shell 复制代码
# 创建逻辑卷,如果上述步骤3采用的是lvreduce,则无需执行该步骤
lvcreate -L 40G -n /dev/centos/home 

# 创建文件系统
mkfs.xfs /dev/centos/home

# 挂载home
mount /dev/centos/home

# 恢复/home目录文件
tar zxvf /tmp/home.tar -C /home/

【星猿科技】:在这里我们共同探索科技新趋势,分享积累的点滴,从人工智能到高性能计算,我们追求技术的进步,同时珍视分享的力量。欢迎关注我们,在科技与影视的精彩世界中一起遨游,发现更多未知!

相关推荐
iteye_993929 分钟前
让 3 个线程串行的几种方式
java·linux
渡我白衣1 小时前
Linux操作系统:再谈虚拟地址空间
linux
阿巴~阿巴~1 小时前
Linux 第一个系统程序 - 进度条
linux·服务器·bash
小白爱电脑1 小时前
什么是2.5G交换机?
运维·网络·5g·千兆宽带
?ccc?1 小时前
容器技术技术入门与 Docker 环境部署
运维·docker·容器
时时刻刻看着自己的心1 小时前
docker启动报错
运维·docker·容器
DIY机器人工房1 小时前
代码详细注释:通过stat()和lstat()系统调用获取文件的详细属性信息
linux·嵌入式
我科绝伦(Huanhuan Zhou)2 小时前
华为泰山服务器重启后出现 XFS 文件系统磁盘“不识别”(无法挂载或访问),但挂载点目录仍在且无数据
运维·服务器·华为
匆匆那年9672 小时前
Docker容器中安装MongoDB,导入数据
运维·docker·容器
望获linux2 小时前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件