磁盘挂载与迁移【自用复制】

第一阶段:准备新磁盘

1. 对 /dev/vdb 进行分区

我们将创建一个主分区 /dev/vdb1

Bash

复制代码
sudo fdisk /dev/vdb

交互操作说明(请依次输入):

  1. 输入 n (新建分区) -> 回车
  2. 输入 p (主分区) -> 回车
  3. 输入 1 (分区号) -> 回车
  4. (起始扇区) -> 直接回车(使用默认)
  5. (结束扇区) -> 直接回车(使用默认,用完所有空间)
  6. 输入 w (保存并退出) -> 回车
2. 格式化分区

您的系统根目录使用的是 xfs 文件系统(麒麟/CentOS 默认),为了性能和兼容性,建议新磁盘也用 xfs

Bash

复制代码
sudo mkfs.xfs /dev/vdb1

第二阶段:停止服务与数据迁移 (关键步骤)

⚠️ 注意: 在移动数据前,必须停止正在使用该目录的软件。

3. 停止业务程序

您需要根据实际情况停止服务。如果不确定服务名,可以先尝试杀死相关进程(请确保业务允许停机):

Bash

复制代码
# 示例:查找并停止相关java进程,或者使用 systemctl stop xxx
# 请根据您的实际服务名操作,例如:
# systemctl stop xxx
# 或者手动 kill
4. 备份并重命名现有目录

我们将现有的目录改名,既做到了备份,又腾出了原来的路径名。

Bash

复制代码
mv /opt/zxnbmk /opt/zxnbmk_backup
5. 创建新挂载点并挂载

现在创建一个空的 /opt/zxnbmk,并将新磁盘挂载上去。

Bash

复制代码
mkdir /opt/zxnbmk
mount /dev/vdb1 /opt/zxnbmk
6. 恢复数据

将备份目录的数据完整复制 到新磁盘中。使用 -a 参数确保权限、时间戳、所有者完全不变。

Bash

复制代码
cp -a /opt/zxnbmk_backup/* /opt/zxnbmk/
7. 验证数据和权限

检查新磁盘里的内容是否和备份一致。

Bash

复制代码
ls -ld /opt/zxnbmk
ls -la /opt/zxnbmk/

第三阶段:设置永久挂载

8. 获取新分区的 UUID

执行以下命令,复制 /dev/vdb1 的 UUID:

Bash

复制代码
blkid /dev/vdb1

输出示例(复制双引号里的内容): UUID="1234-5678-abcd-efgh" ... TYPE="xfs"

9. 编辑 /etc/fstab

打开文件:

Bash

复制代码
vi /etc/fstab

G 跳到最后一行,按 o 在下方插入新行。 写入以下内容(请务必将 UUID 替换为你刚刚获取的真实 UUID):

Plaintext

复制代码
UUID=你的UUID粘贴在这里  /opt/zxnbmk  xfs  defaults  0  0
  • 解释:
    • xfs: 对应之前格式化的文件系统。
    • defaults: 默认挂载参数。
    • 0 0: 第一个0表示不备份,第二个0表示开机不进行fsck检查(xfs文件系统通常设为0)。

保存退出(按 Esc,输入 :wq 回车)。

这两个数字在 Linux 运维中被称为 Dump(转储)Pass(检查次序) 。虽然现在大多数服务器为了启动速度都把它们设为 0 0,但了解它们的规则能让你在维护时更有底气。

这是它们的详细选择指南:


第五列:Dump(备份标志)

这一位是给 dump 备份工具看的。它决定了该文件系统是否需要被备份。

数值 含义 建议
0 不备份(忽略)。这是目前 99% 场景下的选择。 推荐选择 。现代备份通常使用云快照或专门的备份软件,很少用到古老的 dump 命令。
1 需要备份。表示该分区是重要数据。 除非你真的在使用 dump 工具进行每日定时备份,否则没必要设为 1。

第六列:Pass(fsck 检查顺序)

这一位决定了在系统开机自检(fsck)时,检查磁盘错误的先后顺序。

数值 含义 建议
0 不检查。开机时不进行磁盘完整性自检。 XFS 推荐选 0。由于 XFS 是日志型文件系统,它有自己的故障恢复机制,强制在启动时执行 fsck 反而可能出错。
1 最高优先级 。通常只给根目录 / 使用。 系统必须先确保根目录正常,才能挂载其他东西。
2 次级优先级。检查完根目录后,再并行检查这些分区。 如果是 ext4 等非根分区,通常设为 2。

💡 针对你的情况(Kylin V10 + XFS + 3TB/500G)

你的最佳选择是:0 0

  • 原因 1 :你使用的是 XFS 文件系统。XFS 在设计上就不建议使用传统的 fsck(它甚至没有 fsck.xfs 这种命令,而是用 xfs_repair)。在 fstab 里设为 0 可以避免系统启动时出现不必要的自检卡顿。
  • 原因 2 :磁盘很大(3TB)。如果设为 2,万一触发了大规模自检,开机可能要多等半小时。

📌 总结一下最终写法:

Plaintext

复制代码
# 这种写法最稳妥,开机最快
UUID=xxxxxx  /opt/zxnbmk  xfs  defaults  0  0

温馨提示 :在保存 /etc/fstab 后,千万记得运行 mount -a。如果命令没报错,说明配置对了;如果报错了请立即修改,否则重启后系统可能会进入"紧急模式(Emergency Mode)"导致无法正常开机。

10. 测试自动挂载配置

这一步是为了防止配置错误导致开机起不来。

Bash

复制代码
# 先卸载刚才手动挂载的
umount /opt/zxnbmk

# 测试通过 fstab 挂载
mount -a

如果没有任何报错 ,且 df -h 能看到 /opt/zxnbmk 大小是 500G,说明配置成功!


第四阶段:收尾

11. 启动服务

启动您的服务,并验证软件是否正常运行。

12. 处理旧数据(可选)

确认软件运行正常,且新磁盘数据无误后(建议观察几天),您可以删除之前的备份以释放根目录空间:

Bash

复制代码
# ⚠️ 确认一切正常后再执行!
rm -rf /opt/zxnbmk_backup

✅ 最终检查清单

执行完上述步骤后,运行以下命令给我看(或者你自己检查),确认最终状态:

Bash

ArteryBase 复制代码
df -h /opt/zxnbmk
lsblk
cat /etc/fstab
相关推荐
YQ_012 小时前
Ubuntu下安装WPS
linux·ubuntu·wps
小义_2 小时前
【Docker】知识四
linux·运维·docker·容器
小志biubiu2 小时前
Linux_进程概念(A)-进程部分【Ubuntu】
linux·运维·服务器·ubuntu·操作系统·进程
普通网友2 小时前
Ubuntu 入门及安装全指南
linux·运维·ubuntu
wei_shuo2 小时前
OpenHarmony Linux 命令行工具适配实战:基于 Cursor × WSL 的 tree 2.2.1 交叉编译与 HNP 打包全流程指南
linux·openharmony·tree
xlp666hub2 小时前
你对 argc 和 argv 的理解有多深?
linux
xdpcxq10293 小时前
嵌入式Linux手动交叉编译
linux·运维·服务器
花间相见3 小时前
【Ubuntu实用工具】—— Gnome拓展管理器及实用拓展
linux·运维·ubuntu
A星空1234 小时前
二、交叉编译工具链(arm-linux-gnueabihf-gcc)安装与验证,搭建 TFTP+NFS 服务,调试开发板网络连通性;
linux·c++·驱动开发·单片机·嵌入式硬件