FreeBSD : installation auto avec zfs
Bonjour,
Un petit billet d'update qui fait suite à un précédent article :
FreeBSD : installation auto
Cet article expliquait comment faire une installation automatique avec des partitions en UFS.
Il est possible de le faire facilement avec la version 13.0 en ZFS.
Par rapport à l'article précédent, il faut éditer le fichier installerconfig et remplacer :
PARTITIONS="${DISKSLICE} MBR {8G freebsd-ufs /, 2G freebsd-swap, 3G freebsd-ufs /var, auto freebsd-ufs /usr }"
Par :
export nonInteractive="YES"
export ZFSBOOT_DISKS="${DISKSLICE}"
export ZFSBOOT_VDEV_TYPE="stripe"
export ZFSBOOT_POOL_CREATE_OPTIONS="-O compress=lz4 -O checksum=fletcher4"
export ZFSBOOT_BEROOT_NAME="ROOT"
export ZFSBOOT_BOOTFS_NAME="default"
export ZFSBOOT_SWAPFS_NAME="swap"
ZFSBOOT_SWAP_SIZE=1g
export ZFSBOOT_DATASETS="
/ROOT mountpoint=none
/ROOT/default quota=10g,reservation=10g,mountpoint=/
/tmp quota=1g,reservation=1g,mountpoint=/tmp,exec=on,setuid=off
/usr mountpoint=/usr
/var quota=5g,reservation=5g,mountpoint=/var
"
Détail des options :
- nonInteractive = permet de dire à l'installeur qu'il n'est pas en mode intéractif et donc qu'il ne faut pas attendre de validation d'un humain
- ZFSBOOT_DISKS = détermine le disque à utiliser pour l'installation
- ZFSBOOT_VDEV_TYPE = détermine la topology disque pour ZFS dans ce cas, un seul disque = stripe
- ZFSBOOT_POOL_CREATE_OPTIONS = détermine certaines options de base pour zfs
- ZFSBOOT_BEROOT_NAME = détermine le nom du zdev root
- ZFSBOOT_BOOTFS_NAME = détermine le nom du zdev boot
- ZFSBOOT_SWAPFS_NAME = détermine le nom du zdev swap
- ZFSBOOT_SWAP_SIZE = détermine la taille du swap
- ZFSBOOT_DATASETS = détermine les différents dataset que l'on veut.
La description des datasets n'est pas obligatoire. Si rien n'est précisé, alors tout sera dans le même dataset.
Dans mon cas, cela crée plusieurs datasets pour séparer tmp/usr/var. Ces descriptions ont des options :
- quota = permet de limiter la taille maxi
- réservation = permet de réserver cette taille afin d'être sur d'avoir l'espace disque
- mountpoint = défini le point de montage
- exec = permet d'executer des fichiers depuis ce FS
- setuid = active ou pas le suid
Une fois l'iso générée et l'installation faite, cela donne ce résultat niveau "partitions" (qui sont maintenant des datasets) :
root@freebsd-auto:~ # zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 16.4G 12.2G 96K /zroot
zroot/ROOT 10.0G 12.2G 96K none
zroot/ROOT/default 107M 9.90G 107M /
zroot/tmp 108K 1024M 108K /tmp
zroot/usr 437M 12.2G 437M /usr
zroot/var 2.43M 5.00G 2.43M /var
root@freebsd-auto:~ # df -h
Filesystem Size Used Avail Capacity Mounted on
zroot/ROOT/default 10G 107M 9.9G 1% /
devfs 1.0K 1.0K 0B 100% /dev
zroot/var 5.0G 2.4M 5.0G 0% /var
zroot/tmp 1.0G 108K 1.0G 0% /tmp
zroot 12G 96K 12G 0% /zroot
zroot/usr 13G 437M 12G 3% /usr
Have fun.