Attenzione: versioni diverse di PVE hanno metodi abbastanza diversi fra loro. Se si usa UEFI e non BIOS ci sono differenze. Se si usa systemd-bootloader o come cavolo si chiama e non GRUB ci sono differenze. Questa procedura funzione SOLO con le condizioni sotto indicate
Questa procedura è stata usata in questa configurazione:
La condizione iniziale è un failure del mirror, che si presenta cosi`:
#zpool status pool: rpool state: DEGRADED status: One or more devices has been removed by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: scrub repaired 0B in 0 days 02:57:11 with 0 errors on Sun Sep 11 03:21:12 2022 config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 ata-HGST_HUS722T2TALA604_WMC6N0P2VZD7-part3 REMOVED 0 0 0 ata-HGST_HUS722T2TALA604_WMC6N0P3WHRV-part3 ONLINE 0 0 0
I dischi sono partizionati (default dell'installer di PVE) in questo modo:
La caratteristica peculiare di questa installazione (default di PVE prima di 6.4) è che usa GRUB con il supporto per ZFS, ergo boota caricando il kernel dalla partizione ZFS (sda3 / sdb3) e non dalla partizione EFI, nella quale comunque si trova una copia del kernel e (credo) del bootloader di systemd, che non viene usato. Ricordo che il PC boota in modalità BIOS e non UEFI. Ogni versione di PVE ha piccole differenze, e la documentazione purtroppo non è dettagliatissima, specie per le versioni piu` vecchie.
zpool offline rpool ata-HGST_HUS722T2TALA604_WMC6N0P2VZD7-part3
sgdisk /dev/sdb -R /dev/sda
sgdisk -G /dev/sda
# zpool replace rpool ata-HGST_HUS722T2TALA604_WMC6N0P2VZD7-part3 ata-HGST_HUS722T2TALA604_WMC6N0R544H5-part3
zpool status
pve-efiboot-tool format /dev/sda2 pve-efiboot-tool init /dev/sda2 mount /dev/sda2 /mnt cp -a /boot/grub /mnt umount /mnt
grub-install /dev/sda
Riferimento dal quale ho preso parte della procedura: https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev