Alright, I need some help to ensure I get this right. I need to replace both SSDs in a mirror, because they're approacing the end of their wear level:
I boot via UEFI.
The disks I'm putting in are twice the size (512GB vs 256GB).
Finally, I should mention my current zfs-mirror is GELI encrypted (only the zfs partitions), I don't know how that fits into all this? The new pool should be encrypted as well.
I suppose
In broad terms, am I correct that I should:
1. Partition the first drive to be replaced with similar EFI and swap partition, then create a zfs partition in the remaining space, init this partition with
2. Add an UEFI boot entry for the new drive
3. Repeat the process for the last remaining original drive?
Alternatively, could I disconnect one drive and resilver to one of the new ones? And then remove the remaining drive and resilver again? I would still need GELI to play along.
Any pros and cons?
Code:
gpart show
=> 40 500118112 ada0 GPT (238G)
40 532480 1 efi (260M)
532520 2008 - free - (1004K)
534528 41943040 2 freebsd-swap (20G)
42477568 457639936 3 freebsd-zfs (218G)
500117504 648 - free - (324K)
=> 40 500118112 ada1 GPT (238G)
40 532480 1 efi (260M)
532520 2008 - free - (1004K)
534528 41943040 2 freebsd-swap (20G)
42477568 457639936 3 freebsd-zfs (218G)
500117504 648 - free - (324K)
Code:
zpool status zroot
pool: zroot
state: ONLINE
scan: scrub repaired 0B in 00:06:30 with 0 errors on Mon Aug 17 18:20:48 2026
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0p3.eli ONLINE 0 0 0
ada1p3.eli ONLINE 0 0 0
errors: No known data errors
I boot via UEFI.
Code:
efibootmgr -v
Boot to FW : false
BootCurrent: 0000
Timeout : 1 seconds
BootOrder : 0000, 0006, 0007, 0002, 0003, 0004, 0005
+Boot0000* FreeBSD HD(1,GPT,179f128f-79f3-11f1-88d5-001b21f2d048,0x28,0x82000)/File(\EFI\FREEBSD\LOADER.EFI)
gpt/efiboot0:/EFI/FREEBSD/LOADER.EFI /boot/efi//EFI/FREEBSD/LOADER.EFI
Boot0006* UEFI OS HD(1,GPT,179f128f-79f3-11f1-88d5-001b21f2d048,0x28,0x82000)/File(\EFI\BOOT\BOOTX64.EFI)
gpt/efiboot0:/EFI/BOOT/BOOTX64.EFI /boot/efi//EFI/BOOT/BOOTX64.EFI
Boot0007* UEFI OS HD(1,GPT,17ad7ae0-79f3-11f1-88d5-001b21f2d048,0x28,0x82000)/File(\EFI\BOOT\BOOTX64.EFI)
ada1p1:/EFI/BOOT/BOOTX64.EFI (null)
The disks I'm putting in are twice the size (512GB vs 256GB).
Finally, I should mention my current zfs-mirror is GELI encrypted (only the zfs partitions), I don't know how that fits into all this? The new pool should be encrypted as well.
I suppose
zpool-replacerequires the new drives to be connected? I currently don't have any free sata ports, but I have an LSI card that I pass through to a bhyve VM. I can stop all VM's and Jails and disable the ppt device for the card if I need to have them connected.In broad terms, am I correct that I should:
1. Partition the first drive to be replaced with similar EFI and swap partition, then create a zfs partition in the remaining space, init this partition with
geli init, geli configure -b and geli attach, then proceed with zpool-replace? Will that work when specifying a larger volume? Or should the volume be the exact same size as the one it's replacing? According to the man page, I get the impression the size can be larger.2. Add an UEFI boot entry for the new drive
3. Repeat the process for the last remaining original drive?
Alternatively, could I disconnect one drive and resilver to one of the new ones? And then remove the remaining drive and resilver again? I would still need GELI to play along.
Any pros and cons?