两个驱动器 ZFS 池,第二个驱动器被数据覆盖。如何将数据恢复/复制回第二个驱动器?

Oht*_*erg 2 zfs drive degraded

第一个驱动器中的数据完好无损,第二个驱动器是“UNAVAIL”。覆盖的原因是我在应用 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
Run Code Online (Sandbox Code Playgroud)

也没有帮助。

命令sudo zpool labelclear /dev/sdd 然后-zpool replace命令给出

cannot replace 4596995095197485503 with /dev/sdd: /dev/sdd is busy
Run Code Online (Sandbox Code Playgroud)

也忙着指挥

sudo zpool replace -f hgst 4596995095197485503 /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

zpool 状态

Zor*_*che 5

好吧,它是一个镜像,所以看起来您似乎只需要在擦除的磁盘上重新创建分区表和正确大小的分区,然后添加它,然后删除剩余的条目。

此命令会将新设备添加到镜像

zpool add hgst mirror good_device_name new_device
Run Code Online (Sandbox Code Playgroud)

并删除旧设备

zpool remove hgst old_device_id
Run Code Online (Sandbox Code Playgroud)

或者一步到位

zpool replace hgst old_device_id new_device
Run Code Online (Sandbox Code Playgroud)

链接

PS 确保您有一个经过验证的良好外部备份,因为您不想让事情变得更糟。