linux添加新硬盘挂载分区和数据迁移

linux添加新硬盘挂载分区和数据迁移

添加硬盘和挂载分区

开始前,停止所有与迁移数据目录相关的服务和容器

bash 复制代码
systemctl stop nginx
systemctl stop docker
# 关闭自启动,防止重启后有新的请求进入到服务
systemctl disable nginx
systemctl disable docker
  1. 查看现有分区
bash 复制代码
lsblk

看出这里只有一个系统盘vda(虚拟环境的系统都是以vdX命名,例如云服务器,物理设备是以sdX命名)

bash 复制代码
# 查看硬盘是ssd还是hdd,rota为1表示可旋转的hdd,0为ssd
lsblk -d -o name,rota
# 或者
cat /sys/block/vda/queue/rotational
  1. 增加后再次执行lsblk会增加一个类似vdb命名的硬盘
  2. 开始挂载分区
bash 复制代码
# 创建分区
fdisk /dev/vdb
# 在fdisk中: n(新建分区)->p(主分区)->1(分区号)->(默认起始扇区)->(默认结束扇区)->w(保存)

保存之后执行fdisk -l查看新建的分区vdb1

  1. 格式化分区
bash 复制代码
# 高io推荐xfs
mkfs.xfs /dev/vdb1
  1. 开始挂载分区
bash 复制代码
# 新建挂载目录
mkdir /mnt/vdb1
# 临时挂载
mount /dev/vdb1 /mnt/vdb1
# 永久挂载
echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb1) /mnt/vdb1 xfs defaults 0 0" | sudo tee -a /etc/fstab

重启执行lsblk验证

迁移数据

  1. 拷贝数据
bash 复制代码
# 复制数据到新磁盘
rsync -avzh --progress /docker_v/ /mnt/vdb1/docker_v/
# 验证数据完整性,如果无输出,表示完全一致
diff -r /docker_v/ /mnt/vdb1/docker_v/
  1. 重启容器服务
  • 2.1 方式一、使用软连接方式(生产环境优选)
bash 复制代码
# 确保软链接的目标目录权限与原目录一致
chown -R root:root /mnt/vdb1/docker_v
# 重命名原目录(保险操作)
sudo mv /docker_v /docker_v_old
# 创建软连接
ln -sf /mnt/vdb1/docker_v /docker_v

优点

快速无缝迁移:容器无需修改配置,所有路径保持不变

缺点

若软链接被误删或新磁盘挂载失败,或目录权限被更改,Docker 将无法访问数据。

  • 2.2 方式二、修改容器挂载目录方式(建议开发测试环境采用)
  • 修改容器配置,提前记录好每个容器主要参数,如原挂载信息,端口映射,网络模式,镜像版本等(使用docker inspect <容器名>查看,最好保存到文档)
  • 删除容器(不删数据卷)docker rm <容器名>
  • 重新创建容器,将挂载路径改为新目录-v /mnt/vdb1/docker_v/?:/path/in/container(同时留意该容器其他启动参数是否正确)

优点

直接管理数据路径,降低复杂度避免误操作更稳定,灵活性高。

缺点

操作繁琐,需修改容器配置

  1. 测试检查
bash 复制代码
#启动docker容器和相关服务测试有无问题
systemctl start docker
systemctl start nginx
# 无问题,恢复自启动
systemctl enable nginx
systemctl enable docker
相关推荐
羑悻的小杀马特21 小时前
零成本搞定!异地访问 OpenClaw 最简方案:SSH 端口映射组网!
运维·服务器·人工智能·docker·自动化·ssh·openclaw
NineData21 小时前
NineData 亮相 2026 德国汉诺威工业博览会,加速拓展欧洲及全球市场
运维·数据库·人工智能·数据库管理·ninedata·ai服务·玖章算术
宵时待雨1 天前
linux笔记归纳3:linux开发工具
linux·运维·笔记
magrich1 天前
安装NoMachine并解决无外接显示器桌面黑屏
linux·运维·服务器
fish_xk1 天前
Linus基础指令
linux·服务器
L1624761 天前
Nginx 6 种发布方式(滚动发布、蓝绿发布(Blue/Green)、金丝雀发布(Canary 灰度)等) 实操全集(配置 + 分步操作 + 回滚)
运维·nginx
宁波阿成1 天前
在ubuntu22.04源码级安装sub2api
linux·运维·ubuntu·ai·api·token·中转站
charlie1145141911 天前
嵌入式Linux驱动开发(7) 从虚拟设备到真实硬件 —— LED驱动硬件基础
linux·开发语言·驱动开发·内核·c
Mortalbreeze1 天前
软件包管理器yum和编辑器vim详解 —— 附带vim配置链接
linux·服务器
李日灐1 天前
< 7 > Linux 开发工具:git 版本控制器 和 cgdb/gdb 调试器
linux·运维·服务器·开发语言·git·调试器·gdb/cgdb