Skip to content
lavie blog

CentOS 磁盘数据迁移

Published:
Estimated reading time:3 min read

本文将手把手演示如何在 CentOS 系统中进行磁盘数据的无缝迁移,从新磁盘的挂载与格式化,到使用 Rsync 进行高效数据同步,最后完成挂载点替换与自动挂载设置,确保业务平滑过渡。

一、挂载新磁盘

1. 查看磁盘信息

lsblk -f

示例输出:

NAME   FSTYPE  LABEL    UUID                                 MOUNTPOINT
sr0    iso9660 config-2 2022-03-17-13-56-18-00               
vda                                                          
└─vda1 ext4             21dbe030-aa71-4b3a-8610-3b942dd447fa /
vdb    ext4             d146ec53-8f3c-489b-9bd4-8760d74f5b63 
vdc    ext4             42a5b87c-690a-4eea-8c6c-3c59952f8486 /ssd 

假设新磁盘为 /dev/vdb


2. 格式化分区

(根据需要选择文件系统类型)

sudo mkfs.ext4 /dev/vdb

3. 创建挂载目录并挂载

mkdir -p /mnt/newdisk
mount /dev/vdb /mnt/newdisk

验证挂载成功:

df -h | grep newdisk

二、迁移旧磁盘数据到新磁盘

假设旧磁盘挂载在 /mnt/olddisk

使用 rsync(支持断点续传、保留权限、显示进度):

rsync -avh --progress /mnt/olddisk/ /mnt/newdisk/

注意最后的 / 表示复制目录内的内容而非整个文件夹。

验证数据一致性:

rsync -avnc /mnt/olddisk/ /mnt/newdisk/

如果无输出,说明两边完全一致。


三、卸载旧磁盘并替换挂载点

1. 卸载旧磁盘

umount /mnt/olddisk

如果提示 “device is busy”,可执行:

fuser -km /mnt/olddisk
umount /mnt/olddisk

2. 卸载新磁盘(准备重新挂载到旧路径)

umount /mnt/newdisk

3. 挂载新磁盘到原旧磁盘路径

mount /dev/vdb /mnt/olddisk

验证:

df -h | grep olddisk

此时旧路径 /mnt/olddisk 已使用新磁盘的数据。


四、设置开机自动挂载

  1. 编辑 /etc/fstab
vim /etc/fstab

添加一行:

/dev/vdb /mnt/olddisk  ext4  defaults  0 2

# 或者使用磁盘UUID(lsblk -f命令查看)
UUID=9f8a0b2c-2d5a-4e80-9a1f-4c1d6c3b4a7e  /mnt/olddisk  ext4  defaults  0 2
  1. 测试配置是否正确:
mount -a

若无错误输出,则配置成功。


五、验证

  1. 重启服务器:
reboot
  1. 登录后检查挂载是否自动生效:
df -h | grep olddisk

确认 /mnt/olddisk 已挂载新磁盘。


六、可选:清理旧磁盘

确认数据迁移无误后,可以格式化旧磁盘以备他用:

mkfs.ext4 /dev/sda1
# 或 mkfs.xfs /dev/sda1

总结

步骤操作
1格式化新磁盘:mkfs.ext4 /dev/vdb
2挂载新磁盘:mount /dev/vdb /mnt/newdisk
3迁移数据:rsync -avh --progress /mnt/olddisk/ /mnt/newdisk/
4卸载旧磁盘:umount /mnt/olddisk
5卸载新磁盘:umount /mnt/newddisk
6重新挂载新磁盘到旧路径:mount /dev/vdb /mnt/olddisk
7设置自动挂载:编辑 /etc/fstab 并添加配置