Definitivamente, não use dd
! O ZFS tem um comando interno para isso, que é descrito razoavelmente bem nos documentos da Oracle . Você deve poder usar zpool replace tank <old device> <new device>
para fazer a parte principal da operação, mas também existem alguns outros comandos auxiliares:
The following are the basic steps for replacing a disk:
- Offline the disk, if necessary, with the
zpool offline
command.- Remove the disk to be replaced.
- Insert the replacement disk.
- Run the
zpool replace
command. For example:zpool replace tank c1t1d0
- Bring the disk online with the
zpool online
command.
A página man também tem algumas informações adicionais:
zpool replace [-f] pool device [new_device]
Replaces old_device with new_device. This is equivalent to attaching
new_device, waiting for it to resilver, and then detaching
old_device.
The size of new_device must be greater than or equal to the minimum
size of all the devices in a mirror or raidz configuration.
new_device is required if the pool is not redundant. If new_device is
not specified, it defaults to old_device. This form of replacement
is useful after an existing disk has failed and has been physically
replaced. In this case, the new disk may have the same /dev path as
the old device, even though it is actually a different disk. ZFS
recognizes this.
-f Forces use of new_device, even if its appears to be in use.
Not all devices can be overridden in this manner.
Naturalmente, é provavelmente melhor tentar isso primeiro em uma VM que tenha discos virtuais em um zpool de configuração semelhante, em vez de tentar pela primeira vez no pool com dados que você se preocupa em recuperar.
A propósito, esta outra parte dos documentos explica um pouco mais sobre peças de reposição e talvez inclua ponteiros para explicar por que o seu não foi usado. Pode ser valioso mexer um pouco para ter certeza de que não vai sair novamente da próxima vez: (.