类别:Ubantu / 日期:2026-08-26 / 浏览:92 / 评论:0

系统是:Ubuntu 22.04.4 LTS

如下图,需要将sdc硬盘(新)替换sdb硬盘(旧),都是10G容量,系统已使用lvm方式管理,vg组是:vg0,sdb挂载的是根/

PixPin_2026-08-26_09-36-50.jpg

想用 /dev/sdc 替换 /dev/sdb。这是一个LVM在线替换硬盘的操作,需要数据迁移设备替换两个步骤。

一、操作前确认

首先检查 /dev/sdc 的状态:

# 查看 sdc 是否已被LVM使用
pvs | grep sdc
lsblk | grep sdc

如果 sdc 显示没有任何LVM关联(如你的输出所示,sdc 单独列出没有子项),说明它是空闲的,可以用于替换。

二、操作步骤

步骤1:将 /dev/sdc 加入LVM

# 1. 初始化 sdc 为物理卷(PV)
pvcreate /dev/sdc

# 2. 将 sdc 加入到 vg0 卷组
vgextend vg0 /dev/sdc

# 3. 验证是否添加成功
pvs

PixPin_2026-08-26_09-50-28.jpg

步骤2:将数据从 /dev/sdb 迁移到 /dev/sdc

这是最关键的步骤,使用 pvmove 命令将数据从旧盘迁移到新盘:

# 将 sdb 上的所有物理块(PE)迁移到 vg0 中的其他空闲PE(即 sdc)
pvmove /dev/sdb /dev/sdc

⚠️ 重要提醒:

  • 这个操作不会停机,系统可以正常运行

  • 迁移过程中系统性能可能会有所下降

  • 10GB的数据迁移通常需要几分钟到几十分钟,取决于磁盘速度

  • 切勿中断操作,否则可能导致数据不一致

PixPin_2026-08-26_09-55-11.jpg

当前终端是可以看到进度的,或者你也可以用另一终端,用以下命令监控迁移进度:

# 查看迁移进度
pvmove -i 5
# -i 5 表示每5秒更新一次进度

# 或者在另一个终端查看磁盘I/O
iostat -x 1 /dev/sdb /dev/sdc

步骤3:验证数据迁移完成

迁移完成后,确认数据已从 sdb 移出:

# 查看 sdb 的 Used 应该变为 0
pvs -o+pv_used

# 查看 sdb 的详细信息
pvdisplay /dev/sdb

PixPin_2026-08-26_09-57-31.jpg

此时应该看到 /dev/sdb 的 Used 为 0Free PE 等于 Total PE

步骤4:从卷组中移除 /dev/sdb

# 从 vg0 卷组中移除 sdb
vgreduce vg0 /dev/sdb

# 验证移除成功
pvs
vgdisplay vg0

PixPin_2026-08-26_10-01-19.jpg

步骤5:删除 /dev/sdb 的物理卷标记(可选)

# 清除 sdb 上的LVM元数据
pvremove /dev/sdb

完成后,/dev/sdb 就变成一块普通的空盘,可以安全移除了。

PixPin_2026-08-26_10-03-51.jpg

用df -h命令,再检查下:

PixPin_2026-08-26_10-05-44.jpg

总结:

只换了硬盘,里面的数据不变,所有挂载点也不变。

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章