我的池很干净并且工作正常,但在创建时我使用了一些 vdev、设备名称而不是与 GPT 表关联的标签,现在我有了
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
da0p2 ONLINE 0 0 0
da1p2 ONLINE 0 0 0
gpt/data:3 ONLINE 0 0 0
而不是
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
gpt/data:1 ONLINE 0 0 0
gpt/data:2 ONLINE 0 0 0
gpt/data:3 ONLINE 0 0 0
这只是装饰性的,但我想修复它。 做
zpool replace -f data da1p2 gpt/data:2
不起作用:
invalid vdev specification
the following errors must be manually repaired:
/dev/gpt/data:2 is part of active pool 'data'
如何做?当然,不能完全销毁 vdev,并且必须重新同步整个池!
有没有办法使用zdb来编辑MOS配置,并在那里更改它?
data:
vdev_tree:
children[1]:
path: '/dev/da1p2'
zpool set path=/dev/gpt/<label> <pool> <vdev>
听说设置后需要重启。但它在这里对我有用(FreeBSD 14.1,ZFS 2.2.4),无需重新启动。