第一个驱动器上的数据完好无损,第二个驱动器上的数据为“不可用”。覆盖的原因是我在应用 dd 命令时注意力不集中……
命令
sudo zpool replace -f hgst 4596995095197485503 /dev/sdd
给予
invalid vdev specification the following errors must be manually repaired: /dev/sdd1 is part of active pool 'hgst'
我让磁盘离线,并用 Gparted 删除了分区。重启后,它们又出现了,而且zpool replace
-command 不起作用。
命令
dd if=/dev/zero of=/dev/sdd bs=1M count=2 seek=2048
和
dd if=/dev/zero of=/dev/sdd bs=512 seek=$(( $(blockdev --getsz /dev/sdd) - 1 )) count=1
也没什么帮助。
命令sudo zpool labelclear /dev/sdd
然后zpool replace
-command 给了
cannot replace 4596995095197485503 with /dev/sdd: /dev/sdd is busy
也忙于指挥
sudo zpool replace -f hgst 4596995095197485503 /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ
答案1
嗯,它是一面镜子,所以看起来你只需要在被擦除的磁盘上重新创建分区表和正确大小的分区,然后添加它,然后删除剩余的条目。
此命令将向镜像添加新设备
zpool add hgst mirror good_device_name new_device
并移除旧设备
zpool remove hgst old_device_id
或者只需一步
zpool replace hgst old_device_id new_device
链接
PS 确保你有一个好的已验证外部备份,因为您不想让事情变得更糟。
答案2
我会使用这些命令:
zpool detach hgst <corrupted_device>
zpool attach -f hgst <online_device> <new_device>
(确认man pool
无误)
谨慎使用池添加,因为您很容易最终得到条纹池而不是镜像池!
答案3
我把磁盘离线了
zpool offline hgst /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ
分离驱动器
zpool detach hgst 4596995095197485503
已清除标签
zpool labelclear -f /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ
将磁盘重新装回
zpool attach hgst ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ
现在正在重新镀银。
NAME STATE READ WRITE CKSUM
hgst ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ ONLINE 0 0 0
ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ ONLINE 0 0 0 (resilvering)