On commence par dézinguer tous les anciens pools ZFS :
zpool import -fR /mnt zroot zpool destroy zroot
On crée ensuite les partitions qui vont bien aller :
une partition de boot de 512ko
une partition de swap de 2Go
le reste en partition de pool ZFS
On en profite pour installe le bootloader GPT au passage. (Le script suivant considère que vous utilisez 3 disques, adaptez-le en conséquence)
foreach n ( 0 1 2 ) gpart destroy -F ada${n} gpart create -s gpt ada${n}
gpart add -a 4k -s 512k -t freebsd-boot -l boot${n} ada${n}
gpart add -a 4k -s 2g -t freebsd-swap -l swap${n} ada${n}
gpart add -a 4k -t freebsd-zfs -l disk${n} ada${n}
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada${n}
gnop create -S 4096 /dev/gpt/disk${n}
end
On créé ensuite le pool ZFS en raidZ, avec les 3 disques formatés :
zpool create -o altroot=/mnt -O canmount=off -o compression=lz4 -o checksum=fletcher4 -o atime=off -m none zroot raidz /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2
zfs create -o mountpoint=none -o quota=10G zroot/ROOT zfs create -o mountpoint=/ zroot/ROOT/default zfs create -o mountpoint=/tmp -o quota=2G -o setuid=off zroot/tmp
Ensuite, on installe le futur système sur le pool nouvellement créé :
chmod 1777 /mnt/tmp
zpool set bootfs=zroot/ROOT/default zroot
set FREEBSD_VERSION = 10.3-RELEASE foreach file ( base kernel lib32 ) wget -O - ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/${FREEBSD_VERSION}/${file}.txz | tar -Upxf - -C /mnt end
cat > /mnt/etc/fstab <<EOF /dev/gpt/swap0 none swap sw 0 0 /dev/gpt/swap1 none swap sw 0 0 /dev/gpt/swap2 none swap sw 0 0 EOF
echo zfs_load="YES" >> /mnt/boot/loader.conf
sed -i "" "s/^#PermitRootLogin .*/PermitRootLogin prohibit-password/" /mnt/etc/ssh/sshd_config
cat > /mnt/etc/rc.conf <<EOF hostname="pony.example.org"
ifconfig_igb0="inet X.X.X.X netmask 255.255.255.0 broadcast X.X.X.255" defaultrouter="X.X.X.254"
ifconfig_igb0_ipv6="inet6 XXX:XXX:XXX:XXXX:: prefixlen 64 accept_rtadv no_radr" ipv6_network_interfaces="igb0" ipv6_default_interface="igb0" ipv6_defaultrouter="XXXX:XXXX:XXXX:XXff:ff:ff:ff:ff" ipv6_route_ovhgw="XXXX:XXXX:XXXX:XXff:ff:ff:ff:ff -prefixlen 128 -interface igb0" ipv6_static_routes="ovhgw"
dumpdev="AUTO" clear_tmp_enable="YES" accounting_enable="YES"
unbound_enable="NO" sshd_enable="YES" ntpd_enable="YES" postfix_enable="YES" zfs_enable="YES" EOF
mkdir -p /mnt/root/.ssh/ cat > /mnt/root/.ssh/authorized_keys <<EOF EOF
cat > /mnt/etc/resolv.conf <<EOF domain example.org search example.org nameserver 213.186.33.99 EOF
chroot /mnt passwd
On repasse le serveur en boot sur le disque, et on lance un reboot. Normalement, votre nouvelle machine devrait prendre vie rapidement !