在第一个驱动器中的数据是完整的,第二个驱动器是“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
也没有帮助。
命令sudo zpool labelclear /dev/sdd然后zpool replace命令给
cannot replace 4596995095197485503 with /dev/sdd: /dev/sdd is busy
也忙于命令
sudo zpool replace -f hgst 4596995095197485503 /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ
那么,这是一个镜像,所以看起来好像你只需要重新创build分区表和大小正确的磁盘分区,并添加它,然后删除左边的条目。
这个命令会为镜像添加一个新的设备
zpool add hgst mirror good_device_name new_device
并删除旧的设备
zpool remove hgst old_device_id
或在一个单一的步骤
zpool replace hgst old_device_id new_device
链接
PS确保你有一个很好的外部备份,因为你不想让事情变得更糟。
我会使用这些命令:
zpool detach hgst <corrupted_device> zpool attach -f hgst <online_device> <new_device>
(检查man pool确定)
使用游泳池仔细,因为你很容易结束了条纹池而不是镜子!
我把磁盘脱机了
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)