Avant de commencer, il faut préparer le disque système pour recevoir une partition ZFS.
pensez bien à corriger le chemin de votre disque en fonction de votre machine
comme d’hab, direction les pages de man pour le detail des options.
gpart -s gpt ada0 gpart add -b 34 -s 512 -t freebsd-boot ada0 gpart add -t freebsd-zfs -l ssd ada0 |
une fois ceci fait, on peut créer les datasets ZFS et installer le système :
#!/bin/sh echo '#5 Create ZFS Pool sys_tank' mkdir /boot/zfs zpool create sys_tank /dev/gpt/ssd-intel zfs set checksum=fletcher4 sys_tank zfs set dedup=on sys_tank zfs set compression=off sys_tank #zfs set mountpoint=/mnt sys_tank echo '#6 At this point export and import the pool while preserving zroot.cache in /tmp.' zpool export sys_tank zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank echo '#7 Create ZFS filesystem hierarchy' zfs create sys_tank/root zfs create sys_tank/usr zfs create -o compression=lzjb -o setuid=off sys_tank/usr/ports zfs create -o compression=off -o exec=off -o setuid=off sys_tank/usr/ports/distfiles zfs create -o compression=off -o exec=off -o setuid=off sys_tank/usr/ports/packages zfs create -o compression=lzjb -o exec=off -o setuid=off sys_tank/usr/src zfs create sys_tank/var zfs create -o compression=lzjb -o exec=off -o setuid=off sys_tank/var/crash zfs create -o exec=off -o setuid=off sys_tank/var/db zfs create -o compression=lzjb -o exec=on -o setuid=off sys_tank/var/db/pkg zfs create -o exec=off -o setuid=off sys_tank/var/empty zfs create -o compression=lzjb -o exec=off -o setuid=off sys_tank/var/log zfs create -o compression=gzip -o exec=off -o setuid=off sys_tank/var/mail zfs create -o exec=off -o setuid=off sys_tank/var/run zfs create -o compression=lzjb -o exec=on -o setuid=off sys_tank/var/tmp zfs create -o compression=on -o exec=on -o setuid=off sys_tank/tmp zpool set bootfs=sys_tank/root sys_tank echo '# Make /var/empty readonly' zfs set readonly=on sys_tank/var/empty echo '#8 Add swap space and disable checksums.' zfs create -V 10G sys_tank/swap zfs set org.freebsd:swap=on sys_tank/swap zfs set checksum=off sys_tank/swap zfs set dedup=off sys_tank/swap zfs umount -a zfs set mountpoint=none sys_tank zfs set mountpoint=/ sys_tank/root zfs set mountpoint=/tmp sys_tank/tmp zfs set mountpoint=/usr sys_tank/usr zfs set mountpoint=/var sys_tank/var zpool export sys_tank zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank chmod 1777 /mnt/tmp chmod 1777 /mnt/var/tmp echo '# Install FreeBSD to sys_tank' cd /usr/freebsd-dist export DESTDIR=/mnt for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz; do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache |