https://wiki.freebsd.org/MasonLoringBliss/ZFSandGELIbyHAND
Paso a paso - Particionar e instalar FreeBSD 13.0Duplicación
Duplicación es la técnica de escribir los mismos datos en mas de una unidad de disco. Cada unidad de un mirror (espejo) contiene una copia idéntica de los datos. Cuando falla una unidad individual, el mirror continua funcionando y el administrador tiene tiempo para reemplazar la unidad defectuosa sin interrupción.
Mirror
Las dos unidades en un espejo pueden ser idénticas en modelo y capacidad, pero gmirror(8) no lo requiere. Los espejos creados con diferentes discos tendrán una capacidad igual a la del disco mas pequeño del mirror. Este ejemplo asume FreeBSD 13, un par de discos y el deseo de reflejar todo. Se adapta tanto a UEFI como a instalaciones heredadas, y tiene un esquema de partición predeterminado que puede tener ambas instalaciones a la vez. FreeBSD no automatiza la actualización del código de arranque y este es el enfoque adoptado por la versión actual de esta guía. Este conjunto de instrucciones configura un par de particiones freebsd-boot, un par de particiones ESP, intercambio cifrado con GELI en un gmirror y un grupo raíz cifrado con GELI.
Fuerza la destrucción de la tabla de particiones
# gpart destroy -F ada0
# gpart destroy -F ada1
Nueva tabla de particiones GPT
# gpart create -s gpt ada0
# gpart create -s gpt ada1
Particiones de arranque, primero legacy y luego UEFI/ESP
# gpart add -t freebsd-boot -s 512k -l boot0 ada0
# gpart add -t freebsd-boot -s 512k -l boot1 ada1
# gpart add -t efi -s 1m -l efi0 ada0
# gpart add -t efi -s 1m -l efi1 ada1
ESP debe ser vfat/fat32:
# newfs_msdos /dev/gpt/efi0
# newfs_msdos /dev/gpt/efi1
Swap - estos entrarán en un geom_mirror
# gpart add -t freebsd-swap -l swap0 -a 1m -s 4096m ada0
# gpart add -t freebsd-swap -l swap1 -a 1m -s 4096m ada1
Si tienes discos que no coinciden, deberás hacer que estos tengan un tamaño coincidente:
# gpart add -t freebsd-zfs -l tank0 -a 1m ada0
# gpart add -t freebsd-zfs -l tank1 -a 1m ada1
# gmirror label -v swap gpt/swap0 gpt/swap1
Establecer GELI - Configurar claves en lugar de frases de paso para GELI
# geli init -s 4096 -b -g gpt/tank0
# geli init -s 4096 -b -g gpt/tank1
# geli attach gpt/tank0
# geli attach gpt/tank1
Crear el pool root.
# zpool create -R /mnt -o cachefile=/tmp/zpool.cache -O mountpoint=/ \
-O atime=off -O canmount=off -O compression=on \
tank mirror gpt/tank0.eli gpt/tank1.eli
# zfs create -o canmount=off -o mountpoint=none tank/ROOT
# zfs create -o mountpoint=/ tank/ROOT/default
# zpool set bootfs=tank/ROOT/default tank
# zfs create tank/home
# zfs create -o canmount=off tank/usr
# zfs create tank/usr/local
# zfs create tank/usr/obj
# zfs create tank/usr/src
# zfs create tank/usr/ports
# zfs create tank/usr/ports/distfiles
# zfs create -o canmount=off tank/var
# zfs create tank/var/jail
# zfs create tank/var/log
# zfs create tank/var/tmp
# zfs create tank/tmp
# zfs set setuid=off tank/tmp
# zfs set setuid=off tank/var
# zfs set exec=off tank/var
Copiar el caché de zpool para tenerlo en el sistema en funcionamiento
# mkdir -p /mnt/boot/zfs
# cp /tmp/zpool.cache /mnt/boot/zfs
No olvide elegir la opción Shell para terminar la configuración.
# exit
cat >> /boot/loader.conf <<EOF
zfs_load="YES"
geom_eli_load="YES"
geom_mirror_load="YES"
zpool_cache_load="YES"
zpool_cache_name="/boot/zfs/zpool.cache"
zpool_cache_type="/boot/zfs/zpool.cache"
vfs.root.mountfrom="zfs:tank/ROOT/default"
EOF
cat >> /etc/rc.conf <<EOF
zfs_enable="YES"
zfsd_enable="YES"
EOF
cat >> /etc/fstab <<EOF
/dev/gpt/efi0 /boot/efi0 msdosfs rw,late 0 0
/dev/gpt/efi1 /boot/efi1 msdosfs rw,late 0 0
/dev/mirror/swap.eli none swap sw 0 0
EOF
# exit
Reiniciar
reboot
Consoles: EFI console
GELI Passphrase for disk0p4:
# geli status
Name Status Components
ada0p4.eli ACTIVE ada0p4
ada1p4.eli ACTIVE ada1p4
mirror/swap.eli ACTIVE mirror/swap
# zpool status
pool: tank
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0p4.eli ONLINE 0 0 0
ada1p4.eli ONLINE 0 0 0
errors: No known data errors
FreeBSD es genial!.