在更换系统镜像(如重装操作系统或更换云服务器的系统盘)时,保留原有数据盘内容的关键是:将数据存储在独立于系统盘的数据盘(挂载的磁盘)上,并确保在更换系统镜像时不格式化或替换该数据盘。
以下是具体操作建议和步骤:
✅ 一、前提条件:使用独立的数据盘
-
系统盘 vs 数据盘:
- 系统盘:安装操作系统,更换镜像时通常会被替换或格式化。
- 数据盘:用于存储用户数据,可以独立于系统盘存在。
-
确保数据已存放在数据盘中:
- 将重要数据(如网站文件、数据库、配置文件等)保存在挂载的数据盘上,而不是系统盘的
/home、/opt、/var等目录。
- 将重要数据(如网站文件、数据库、配置文件等)保存在挂载的数据盘上,而不是系统盘的
✅ 二、云服务器场景(如阿里云、腾讯云、华为云等)
操作步骤:
-
创建或已有数据盘并挂载
- 在创建云服务器时,添加一块独立的数据盘(云硬盘)。
- 登录系统后,格式化并挂载该数据盘(例如挂载到
/data或/mnt/data)。mkfs.ext4 /dev/vdb # 格式化(首次) mount /dev/vdb /data # 挂载 echo '/dev/vdb /data ext4 defaults 0 0' >> /etc/fstab # 开机自动挂载
-
将应用数据迁移到数据盘
- 例如迁移 MySQL 数据目录、网站根目录等至
/data。
- 例如迁移 MySQL 数据目录、网站根目录等至
-
更换系统镜像时注意
- 在控制台“更换系统盘”或“重装系统”时:
- 仅更换系统盘,不勾选“同时释放数据盘”或“格式化数据盘”选项。
- 确保只替换系统盘,保留原数据盘不变。
- 在控制台“更换系统盘”或“重装系统”时:
-
更换完成后重新挂载数据盘
- 新系统启动后,手动或通过
fstab自动挂载原数据盘。 - 检查数据是否完整:
ls /data
- 新系统启动后,手动或通过
-
(可选)重新配置服务指向原数据路径。
✅ 三、物理机或虚拟机本地环境
-
使用多分区或多个硬盘
- 系统安装在
/dev/sda1,数据存放在/dev/sda2或/dev/sdb。 - 重装系统时:
- 选择“自定义安装”。
- 仅格式化系统分区(如
/),不要格式化数据分区(如/data)。 - 正确挂载原有数据分区。
- 系统安装在
-
编辑
/etc/fstab确保数据盘开机自动挂载。
✅ 四、注意事项
- ❗ 更换系统镜像前务必 备份关键数据。
- 记录数据盘的设备名(如
/dev/vdb)和挂载点。 - 避免在系统盘存放业务数据。
- 使用 UUID 挂载更稳定(可通过
blkid查看):blkid /dev/vdb # 输出示例:/dev/vdb: UUID="xxxx-xxxx" TYPE="ext4"然后在
/etc/fstab中使用 UUID 挂载:UUID=xxxx-xxxx /data ext4 defaults 0 0
✅ 总结
| 关键点 | 建议 |
|---|---|
| 数据位置 | 存放在独立数据盘 |
| 更换镜像 | 仅更换系统盘,不动数据盘 |
| 挂载 | 确保新系统能正确识别并挂载原数据盘 |
| 备份 | 更换前做快照或备份 |
只要遵循“系统与数据分离”的原则,更换系统镜像时就能安全保留原有数据。
CLOUD技术笔记