1. Create ZFS filesystem hierarchy

    The fletcher4 algorithm should be more robust than the fletcher2 algorithm.

     Fixit# zfs set checksum=fletcher4                                      zroot
     Fixit# zfs create -o compression=on    -o exec=on      -o setuid=off   zroot/tmp
     Fixit# chmod 1777 /zroot/tmp
     Fixit# zfs create                                                      zroot/usr
     Fixit# zfs create                                                      zroot/usr/home
     Fixit# cd /zroot ; ln -s /usr/home home
     Fixit# zfs create -o compression=lzjb                  -o setuid=off   zroot/usr/ports
     Fixit# zfs create -o compression=off   -o exec=off     -o setuid=off   zroot/usr/ports/distfiles
     Fixit# zfs create -o compression=off   -o exec=off     -o setuid=off   zroot/usr/ports/packages

    Note:

    If you use nullfs or nfs to mount /usr/ports to different locations/servers, you will also need to nullfs/nfs mount /usr/ports/distfiles and/or /usr/ports/packages.

     Fixit# zfs create -o compression=lzjb  -o exec=off     -o setuid=off   zroot/usr/src
     Fixit# zfs create                                                      zroot/var
     Fixit# zfs create -o compression=lzjb  -o exec=off     -o setuid=off   zroot/var/crash
     Fixit# zfs create                      -o exec=off     -o setuid=off   zroot/var/db
     Fixit# zfs create -o compression=lzjb  -o exec=on      -o setuid=off   zroot/var/db/pkg
     Fixit# zfs create                      -o exec=off     -o setuid=off   zroot/var/empty
     Fixit# zfs create -o compression=lzjb  -o exec=off     -o setuid=off   zroot/var/log
     Fixit# zfs create -o compression=gzip  -o exec=off     -o setuid=off   zroot/var/mail
     Fixit# zfs create                      -o exec=off     -o setuid=off   zroot/var/run
     Fixit# zfs create -o compression=lzjb  -o exec=on      -o setuid=off   zroot/var/tmp
     Fixit# chmod 1777 /zroot/var/tmp

    Note:

    1. Compression may be set to on, off, lzjb, gzip, gzip-N (where N is an integer from 1 (fastest) to 9 (best compression ratio. gzip is equivalent to gzip-6).
    2. Compression will cause some latency when accessing files on the ZFS filesystems. Use compression on ZFS filesystems which will not be accessed that often.

  2. Install FreeBSD to zroot
     Fixit# cd /dist/8.0-*
     Fixit# export DESTDIR=/zroot
     Fixit# for dir in base catpages dict doc games info lib32 manpages ports; \
              do (cd $dir ; ./install.sh) ; done
     Fixit# cd src ; ./install.sh all
     Fixit# cd ../kernels ; ./install.sh generic
     Fixit# cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/
  3. Make /var/empty readonly
     Fixit# zfs set readonly=on zroot/var/empty
  4. chroot into /zroot
     Fixit# chroot /zroot
  5. Create /etc/rc.conf
     Fixit# echo 'zfs_enable="YES"' > /etc/rc.conf
     Fixit# echo 'hostname="beastie.mydomain.local"' >> /etc/rc.conf
     Fixit# echo 'ifconfig_re0="DHCP"' >> /etc/rc.conf

    Note:

    • Replace re0 with the name of the Network interface for the new system
  6. Create /boot/loader.conf
     Fixit# echo 'zfs_load="YES"' > /boot/loader.conf
     Fixit# echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf
  7. Change root's password
     Fixit# passwd
  8. Set the local time zone
     Fixit# tzsetup
  9. Create /etc/mail/aliases.db
     Fixit# cd /etc/mail
     Fixit# make aliases
  10. Exit from the /zroot
     Fixit# umount /dev
     Fixit# exit
  11. Install zpool.cache to the ZFS filesystem
     Fixit# cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache

RootOnZFS/InstallingFreeBSD (last edited 2013-02-14T22:54:23+0000 by GavinAtkinson)