Mercurial > docs
changeset 6:0c4833b61520
FreeBSD: add install_zfs_gpt.md
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 28 Aug 2017 13:29:58 +0200 |
parents | 435b53af6b96 |
children | c32b5c002aad |
files | FreeBSD/install_zfs_gpt.md |
diffstat | 1 files changed, 108 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FreeBSD/install_zfs_gpt.md Mon Aug 28 13:29:58 2017 +0200 @@ -0,0 +1,108 @@ +FreeBSD ZFS on root with GPT +============================ + +This small guide will show you how to install FreeBSD on root using ZFS from a +FreeBSD shell. + +You need to boot a FreeBSD shell userland, official FreeBSD ISOs have a shell +option when booting them. + +Partitioning +------------ + +In this example, we will use one disk `/dev/ada0` and one swap partition of 4GB +size, adjust to your needs. + +### Destroy and create GPT scheme + + gpart destroy -F ada0 + gpart create -s gpt ada0 + +### Add partitions + + gpart add -t freebsd-boot -s 128k -l boot0 ada0 + gpart add -t freebsd-swap -s 4g -l swap0 ada0 + gpart add -t freebsd-zfs -l disk0 ada0 + gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 + +### Create zpool + + kldload zfs + zpool create -f -o altroot=/mnt -O canmount=off -m none zroot /dev/gpt/disk0 + +### Create ZFS datasets + +The following datasets are mandatory. + + zfs set checksum=fletcher4 zroot + zfs set atime=off zroot + zfs create -o mountpoint=none zroot/ROOT + zfs create -o mountpoint=/ zroot/ROOT/default + zpool set bootfs=zroot/ROOT/default zroot + +The following datasets are optional. + + zfs create -o mountpoint=/tmp -o compression=lz4 -o setuid=off zroot/tmp + zfs create -o mountpoint=/usr zroot/usr + zfs create zroot/usr/local + zfs create -o mountpoint=/home -o setuid=off zroot/home + zfs create -o compression=lz4 -o setuid=off zroot/usr/ports + zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles + zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages + zfs create -o compression=lz4 -o exec=off -o setuid=off zroot/usr/src + zfs create zroot/usr/obj + zfs create -o mountpoint=/var zroot/var + zfs create -o compression=lz4 -o exec=off -o setuid=off zroot/var/crash + zfs create -o exec=off -o setuid=off zroot/var/db + zfs create -o compression=lz4 -o exec=on -o setuid=off zroot/var/db/pkg + zfs create -o exec=off -o setuid=off zroot/var/empty + zfs create -o compression=lz4 -o exec=off -o setuid=off zroot/var/log + zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail + zfs create -o exec=off -o setuid=off zroot/var/run + zfs create -o compression=lz4 -o exec=on -o setuid=off zroot/var/tmp + +Required if you have created the following datasets. + + chmod 1777 /mnt/tmp + chmod 1777 /mnt/var/tmp + +Installation +------------ + +Now we will fetch our sets for FreeBSD, adjust the version, in this guide we +will use 11.1-RELEASE. + + cd /mnt + fetch http://ftp.fr.freebsd.org/pub/FreeBSD/releases/amd64/11.1-RELEASE/base.txz + fetch http://ftp.fr.freebsd.org/pub/FreeBSD/releases/amd64/11.1-RELEASE/kernel.txz + tar xJpf base.txz + tar xJpf kernel.txz + +Configuration +------------- + +Enter the chroot to do minimal mandatory steps. + +### Setup root password + + chroot /mnt + passwd + +### Enable ZFS + + echo "/dev/gpt/swap0 none swap sw 0 0" >> /etc/fstab + echo "zfs_load=YES" >> /boot/loader.conf + echo "zfs_enable=YES" >> /etc/rc.conf + +### Add an user (optional) + + pw useradd your_user -c "Real Name" -G wheel,operator -m + passwd your_user + +Terminate +--------- + +Exit the chroot and reboot. + + exit + shutdown -r now