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

第一阶段:准备新磁盘

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
相关推荐
知无不研15 小时前
共享内存(Shared Memory)深度全解:Linux高性能IPC的核心机制与实战
linux·运维·c++·共享内存·共享内存与互斥锁
炸膛坦客15 小时前
Linux - Ubuntu - PC端:(一)安装虚拟机和 Ubuntu(只言片语,仅供作者自己使用)
linux·ubuntu
JiMoKuangXiangQu15 小时前
Linux hrtimer 数据结构
linux·hrtimer
河码匠16 小时前
Linux sar 命令
linux·运维·网络
偷懒下载原神16 小时前
【linux操作系统】进程间通信--管道
linux·运维·服务器
异步的告白16 小时前
嵌入式Linux学习-Makefile基本语法:目标、依赖、命令、伪目标.PHONY
linux
!沧海@一粟!16 小时前
VMware升级操作指南与常见问题
linux·运维·服务器
是小小张呀16 小时前
Linux系统查看常用命令
linux
Apibro16 小时前
【Linux 】解压/压缩命令全解析:unzip、tar、gzip、bzip2、xz
linux
IMPYLH16 小时前
Linux 的 base32 命令
linux·运维·服务器·bash·shell