【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南

文章目录

    • [📋 一、准备工作](#📋 一、准备工作)
      • [1. 备份重要数据](#1. 备份重要数据)
      • [2. 确认新硬盘设备信息](#2. 确认新硬盘设备信息)
    • [🛠️ 二、格式化新硬盘(如未格式化)](#🛠️ 二、格式化新硬盘(如未格式化))
      • [1. 格式化为 ext4 文件系统(推荐)](#1. 格式化为 ext4 文件系统(推荐))
    • [🔁 三、临时挂载并迁移数据](#🔁 三、临时挂载并迁移数据)
      • [1. 创建临时挂载点](#1. 创建临时挂载点)
      • [2. 挂载新硬盘到临时目录](#2. 挂载新硬盘到临时目录)
      • [3. 备份原 `/home` 内容(可选但建议)](#3. 备份原 /home 内容(可选但建议))
      • [4. 卸载旧的 `/home` 分区(如果适用)](#4. 卸载旧的 /home 分区(如果适用))
      • [5. 挂载新硬盘到 `/home`](#5. 挂载新硬盘到 /home)
    • [📄 四、配置开机自动挂载](#📄 四、配置开机自动挂载)
      • [1. 获取新硬盘的 UUID(推荐方式)](#1. 获取新硬盘的 UUID(推荐方式))
      • [2. 编辑 `/etc/fstab` 文件](#2. 编辑 /etc/fstab 文件)
      • [3. 验证 fstab 配置是否正确](#3. 验证 fstab 配置是否正确)
    • [✅ 五、验证挂载状态](#✅ 五、验证挂载状态)
    • [⚠️ 六、注意事项与常见问题](#⚠️ 六、注意事项与常见问题)

📋 一、准备工作

1. 备份重要数据

  • 操作前请务必备份 /home 中的重要数据,防止意外丢失。

2. 确认新硬盘设备信息

查看系统识别到的新硬盘设备名:

bash 复制代码
lsblk

bash 复制代码
sudo fdisk -l

例如输出如下设备标识符:

复制代码
/dev/nvme0n1

🛠️ 二、格式化新硬盘(如未格式化)

1. 格式化为 ext4 文件系统(推荐)

bash 复制代码
sudo mkfs.ext4 /dev/nvme0n1

如果你的硬盘已有分区,请选择具体分区(如 /dev/nvme0n1p1)进行操作。


🔁 三、临时挂载并迁移数据

1. 创建临时挂载点

bash 复制代码
sudo mkdir /mnt/temp

2. 挂载新硬盘到临时目录

bash 复制代码
sudo mount /dev/nvme0n1 /mnt/temp

3. 备份原 /home 内容(可选但建议)

bash 复制代码
sudo rsync -avxHAX --progress /home/ /mnt/temp/
  • -a:归档模式,保留权限和符号链接;
  • -v:显示进度;
  • -x:限制在当前文件系统内同步;
  • -H:保持硬链接;
  • -A:保持 ACL;
  • -X:保持扩展属性。

4. 卸载旧的 /home 分区(如果适用)

如果 /home 是独立分区,你需要先卸载它:

bash 复制代码
sudo umount /home

如果出现"目标正在使用"错误,可以通过以下命令强制卸载:

bash 复制代码
sudo lsof /home | awk 'NR!=1 {print $2}' | xargs kill -9
sudo umount /home

5. 挂载新硬盘到 /home

bash 复制代码
sudo mount /dev/nvme0n1 /home

📄 四、配置开机自动挂载

1. 获取新硬盘的 UUID(推荐方式)

bash 复制代码
sudo blkid | grep nvme0n1

输出示例:

复制代码
UUID="abcd1234-abcd-1234-abcd-1234567890ab"

2. 编辑 /etc/fstab 文件

bash 复制代码
sudo nano /etc/fstab

添加以下内容(使用 UUID 更稳定):

复制代码
UUID=abcd1234-abcd-1234-abcd-1234567890ab /home ext4 defaults 0 2

也可以使用设备路径 /dev/nvme0n1,但在 SSD/NVMe 等热插拔场景中建议使用 UUID。

3. 验证 fstab 配置是否正确

bash 复制代码
sudo mount -a

如果没有报错,则表示配置成功。


✅ 五、验证挂载状态

重启系统后检查是否成功挂载:

bash 复制代码
df -h | grep home

应看到类似输出:

复制代码
/dev/nvme0n1   500G   20G  480G   4% /home

同时可以检查 /home 中的数据是否已从新硬盘加载。


⚠️ 六、注意事项与常见问题

问题 原因 解决方法
挂载失败 设备路径或 UUID 错误 使用 blkid 检查并修正 /etc/fstab
文件系统类型错误 硬盘不是 ext4 使用 mkfs.ext4 重新格式化
开机无法进入图形界面 /etc/fstab 配置有误 进入恢复模式修改 fstab
用户登录异常 权限变更 检查 /home/$USER 所属用户和组

通过上述步骤,你可以安全地将新硬盘挂载到 Ubuntu 的 /home 目录,并迁移现有的用户数据,无需进入 Live USB 环境。这样不仅增加了存储空间,还保留了所有用户的个人设置和文件。


📌 如果你对Linux技术感兴趣,或者正在学习Linux相关知识,这篇文章可以帮助你建立一个系统的认知框架。

💬 欢迎留言交流你在项目中使用这些技术的经验,或者你遇到的相关问题,我们一起探讨 Linux 技术的发展与实践!

相关推荐
工业HMI实战笔记1 分钟前
解放双手,声控未来:抗噪语音交互如何革新嘈杂车间的HMI操作体验
人工智能·学习·自动化·制造
知识分享小能手25 分钟前
线性代数学习教程,从入门到精通,相似矩阵及二次型 — 知识点详解(9)
学习·线性代数·机器学习
笨鸟先飞,勤能补拙44 分钟前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
佳児素花痴╮1 小时前
网络问题与基础理论
运维·服务器·网络
小弥儿1 小时前
GitHub今日热榜 | 2026-08-14:OSINT情报工具回流,本地AI赛道升温
人工智能·学习·开源·github
小黄人软件2 小时前
【证书批量转换】PEM->CER证书批量转换工具.exe 纯 Python实现,无需安装OpenSSL
人工智能·学习
highreport2 小时前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
TonyLee0172 小时前
Claude Code + DeepSeek:服务器安装与使用笔记
linux·服务器·deepseek·claude code
St_rive2 小时前
Pytest skip&&skipif跳过⽤例
运维·服务器·pytest
buhuizhiyuci2 小时前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++