当前位置: 首页 > news >正文

服务器修改/home的挂载路径

写在前面:前段时间新装了一台服务器,/home目录原本是挂在在系统盘/dev/sda4的分区下,但是系统盘的空间比较小,为了保证后续使用起来,不会遇到磁盘很快就占满的情况,现在需要将 /home 独立出来,挂载到另一块 NVMe 高速硬盘 /dev/nvme0n1p1,这样新用户的主目录将存储在这块 3.5T 空间充足的硬盘上,而不是原来的 /dev/sda4(仅 831G)。

🔹 1、列出系统的块设备

lsblk    # lsblk -f 可以查看文件系统类型、UUID 等

lsblk 是 Linux 下一个非常实用的命令,主要用于 列出系统中所有的块设备(block devices),包括硬盘、分区、U盘、SSD 等,可以得知nvme0n1p1的高速硬盘目前是挂载在data目录下;

结果解读:

  • NAME:设备名称

  • TYPE:设备类型(disk 是物理磁盘,part 是分区)

  • MOUNTPOINT:当前挂载在哪个目录

🧩 lsblk 的作用总结:

功能说明
查看磁盘和分区结构显示硬盘、分区、挂载点等信息
不显示RAMdf 不同,它只关注磁盘类设备,不显示内存使用
可以显示文件系统类型、挂载点等加参数 -f 可以显示 FSTYPE、LABEL、UUID 等
辅助挂载/格式化常与 mountmkfsfstab 配合使用

🔹 2、确认要迁移新磁盘是 ext4

lsblk -f        # 输出的 FSTYPE 那里显示ext4即可

确认 FSTYPEext4,如果没有格式化,执行:

sudo mkfs.ext4 /dev/nvme0n1p1

⚠️ 这将清空分区!

🔹 3、创建临时挂载点并挂载新分区

sudo mkdir /mnt/new_home
sudo mount /dev/nvme0n1p1 /mnt/new_home

这步首先在 /mnt 目录下创建一个名为 new_home 的空目录,用作临时挂载点

📌 说明:

  • /mnt 是 Linux 中推荐用来临时挂载其他设备的标准目录。

  • 你不能直接把分区挂载到 /home,因为 /home 当前正在使用。

  • 所以你先创建 /mnt/new_home,后续可以把目标分区挂载到这里进行数据操作。

将你的 NVMe 磁盘分区(/dev/nvme0n1p1)挂载到刚刚创建的 /mnt/new_home

📌 说明:

  • mount 是 Linux 的挂载命令,它将一个磁盘分区关联到系统目录结构中

  • 挂载后,你就可以像访问普通文件夹一样访问该磁盘内容,例如:

ls /mnt/new_home
  • 这个操作是临时生效的,重启后会失效,除非写入到 /etc/fstab

🔹 4、复制当前 /home 数据到新分区

sudo rsync -aXS --progress /home/ /mnt/new_home/

确保所有文件完整复制,包括权限和软连接。

🔧 参数说明

参数功能
-a归档模式,保留文件的所有属性(权限、时间戳、符号链接等)
-X保留扩展属性(如 ACL、SELinux 安全上下文)
-S稀疏文件优化(sparse file),节省磁盘空间
--progress显示每个文件的复制进度(用于大文件时很有用)

🔹 5、备份并编辑 /etc/fstab 

sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab

前面我们知道/data目录是挂载在NVMe 高速硬盘 /dev/nvme0n1p1上的,所以我们只需要把这里的/data修改为/home即可;

该文件每列的说明如下:

说明
file system分区标识(设备路径或 UUID)
mount point挂载点(系统目录)
type文件系统类型(如 ext4, vfat, swap
options挂载选项(如 defaults, ro, noatime
dump是否需要 dump 备份(一般为 0)
pass是否在开机时进行 fsck 检查(0=不检,1=优先,2=其次)

🔹 6、准备切换挂载点

sudo mv /home /home.bak         # 临时备份旧 home:把当前系统中的 /home 目录重命名为 /home.bak(备份),为新的 /home 腾出挂载点
sudo mkdir /home                # 创建空目录用于挂载:创建一个新的空 /home 目录,准备挂载新的 /home(此时挂载的是 /dev/nvme0n1p1)
sudo mount -a                   # 重新挂载所有文件系统:按照 /etc/fstab 中的配置重新挂载所有文件系统,此时 /dev/nvme0n1p1 应该会挂载到新建的 /home 上

🔹 7、验证挂载是否成功

df -h /home

输出如下则说明/home挂载到了 /dev/nvme0n1p1,成功 ✅ 

🔹 8、清理旧的 /home 

如果一切正常,则可以删除:

sudo rm -rf /home.bak

    实现效果:

    • 所有用户的主目录都在 /dev/nvme0n1p1

    • 系统分区 /dev/sda4 不再承担 /home 的存储负担

    • 新建用户默认目录 /home/username 也会自动位于新磁盘上

    🔹 9、删除临时挂载目录/mnt/new_home 

    (1)卸载 /mnt/new_home(保险起见)

    sudo umount /mnt/new_home
    

    ⚠️ 如果你之前用 mount 挂载了 /dev/nvme0n1p1 到这里,这一步可以释放它。

    (2)删除临时目录

    sudo rmdir /mnt/new_home
    

    补充说明:

    • rmdir 只能删除空目录(它应该是空的)

    • 如果你不执行 umount,目录是可以删除的,但推荐先 umount 更安全

    • 删除这个目录不会影响 /home,因为新 /home 现在指向的是分区,而不是 /mnt/new_home

    🔹 10、卸载data

    lsblk 
    # 若输出如下,则说明/dev/nvme0n1p1 同时挂载在两个地方: /home 和 /data
    # └─nvme0n1p1 259:1    0   3.5T  0 part /home
    #                                       /data
    sudo umount /data    # 卸载data
    

    最终输出如下即可,说明修改成功:

    http://www.xdnf.cn/news/603955.html

    相关文章:

  • 课外活动:大语言模型Claude的技术解析 与 自动化测试框架领域应用实践
  • 【心海资源】【原创开发】TG,飞机,电报,协议号及直登号转API
  • C++滑动门问题(附两种方法)
  • SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite
  • 运维打铁:生产服务器用户权限管理方案全解析
  • leetcode 3068. 最大节点价值之和
  • 阿里开源 CosyVoice2:打造 TTS 文本转语音实战应用
  • 音视频之视频压缩及数字视频基础概念
  • 看海回测系统回测过程
  • CSS 列表样式完全解析:从 ul/ol 基础到自定义样式
  • Kotlin 中该如何安全地处理可空类型?
  • 计算机图形学:(三)MVP变换扩展
  • WPF骨架屏控件(Skeleton)
  • 阿里巴巴Qwen3技术报告深度解析:开源大模型的最新突破
  • ECharts图表工厂,完整代码+思路逻辑
  • PHP实现签名类
  • Pandas:数据分析中的缺失值检测、加载、设置、可视化与处理
  • 苍穹外卖07 缓存菜品缓存套餐 添加购物车
  • 基于大模型预测发育性髋脱位的多维度研究与应用报告
  • c++面向对象基础学习笔记
  • 信号线上加小pf电容、串接电阻以备滤波、阻抗匹配
  • 基于非线性规划的电动汽车充电站最优布局
  • 华为云Astro前端页面数据模型选型及绑定IoTDA物联网数据实施指南
  • 数据结构第1章 (竟成)
  • 2025年渗透测试面试题总结-匿名[社招]安全工程师(红队方向)2(题目+回答)
  • 02-jenkins学习之旅-基础配置
  • 分布式消息队列kafka详解
  • PHP序列化数据格式详解
  • SpringBoot-10-SpringBoot结合MyBatis操作mysql并提供web服务
  • UE5.1.1 环境下 VS2019 项目跨机运行报错分析