#!/bin/sh # création de la table GPT sur le disque ada0 (1er disque sata de la machine, à adapter chez vous) #gpart -s gpt ada0 # création d'une partition de boot, début au secteur 34, taille 512 secteurs #gpart add -s 34 -b 512 -t freebsd-boot ada0 # création de la partition système, début au secteur 2048 (4k ready), sur tout le disque restant, label "ssd-intel" #gpart add -s 2048 -t freebsd-zfs -l ssd-intel ada0 # utile ... mkdir /boot/zfs # on crée un dataset ZFS nomée sys_tank sur la partition gpt/ssd-intel zpool create sys_tank /dev/gpt/ssd-intel # on change le checksum zfs set checksum=fletcher4 sys_tank # on active la deduplication zfs set dedup=on sys_tank # on desactive la compression par défaut zfs set compression=off sys_tank # on export et réimporte le pool dans /mnt, en préservant zroot.cache dans /tmp zpool export sys_tank zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank # on crée l'arboréscence ZFS # on installe le système dans sys_tank/root, ça permet de changer le /root si besoin (upgrade ...) 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 # on définit l'emplacement de la racine pour le boot zpool set bootfs=sys_tank/root sys_tank # /var/empty en lecture seule zfs set readonly=on sys_tank/var/empty # swap de 10Go, sans dedup ni checksum 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 # on umount le tout et on refait les points de montage propres 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 # on export et importe le pool 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 # Install de FreeBSD dans sys_tank/root, monté sur /mnt 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 # on remet le cache zfs cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache # Installe fstab, rc.conf sysctl.conf, make.conf et loader.conf cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/rc.conf cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/sysctl.conf cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/make.conf cd /mnt/boot/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/loader.conf touch /mnt/etc/fstab # Install du script post_install mkdir /mnt/usr/scripts mkdir /mnt/usr/scripts/userland cd /mnt/usr/scripts fetch http://192.168.1.96/zurp_fs/scripts/update_scripts.sh chmod +x update_script.sh shutdown -r now |
Commentaires fermés
Installation de FreeBSD sur un pool ZFS
2012
30.01
30.01