Hi all,
I want to test zfs of a fresh install on FreeBSD 9.1. I found these two tutorials:
They are slightly different :
I followed the first one:
Then I get:
I am a bit lost. Any help please?
I want to test zfs of a fresh install on FreeBSD 9.1. I found these two tutorials:
- https://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/9.0-RELEASE
- http://freebsdwiki.net/index.php/ZFS,_booting_from
They are slightly different :
- n°1 uses a traditional complete BSD partitioning pattern as depicted here : http://freebsdwiki.net/index.php/ZFS,_creating_datasets_for_the_FreeBSD_system
- n°2 uses option -b for partitioning with [cmd=]gpart add[/cmd] to specify the start. Is it important? n° 1 specifies only the size.
- n°1 loads the necessary kernel modules : [cmd=]kldload opensolaris[/cmd], [cmd=]kldload zfs[/cmd]
- In [cmd=]zpool create[/cmd] n°1 uses option -O canmount=off
- n°2 does not create any partition with [cmd=]zfs create[/cmd]
- If my understanding is correct, they use different techniques to mount the root:
- n°1 :
Code:
# zfs create -o mountpoint=/ zroot/ROOT # echo 'zfs_load="YES"' >> /mnt/boot/loader.conf # zpool set bootfs=zroot/ROOT zroot (may be redundant with line 1 ?) # zpool export zroot
- n°2 :
Code:
# configure /boot/loader.conf hostname# echo 'zfs_load="YES"' >> /mnt/boot/loader.conf hostname# echo 'vfs.root.mountfrom="zfs:zroot"' >> /mnt/boot/loader.conf # Install zpool.cache to the ZFS filesystem hostname# zpool export zroot hostname# zpool import -o altroot=/mnt -o cachefile=/tmp/zpool.cache zroot hostname# cp /tmp/zpool.cache /mnt/boot/zfs/
- n°1 :
I followed the first one:
Code:
gpart create -s gpt ada0
gpart create -s gpt ada1
gpart add -s 222 -t freebsd-boot -l boot0 ada0
gpart add -s 512M -t freebsd-swap -l swap0 ada0
gpart add -t freebsd-zfs -l disk0 ada0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
gpart add -s 222 -t freebsd-boot -l boot1 ada1
gpart add -s 512M -t freebsd-swap -l swap1 ada1
gpart add -t freebsd-zfs -l disk1 ada1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
kldload opensolaris
kldload zfs
zpool create -o altroot=/mnt -O canmount=off zroot mirror /dev/gpt/disk0 /dev/gpt/disk1
zfs set checksum=fletcher4 zroot
zfs create -o mountpoint=/ zroot/ROOT
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
chmod 1777 /mnt/tmp
zfs create zroot/usr
zfs create zroot/usr/local
zfs create -o setuid=off zroot/home
zfs create -o compression=lzjb -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=lzjb -o exec=off -o setuid=off zroot/usr/src
zfs create zroot/usr/obj
zfs create zroot/var
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -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=lzjb -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=lzjb -o exec=on -o setuid=off zroot/var/tmp
chmod 1777 /mnt/var/tmp
exit
# normal installation, then continuing with the LiveCD :
echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
cat << EOF > /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
/dev/gpt/swap1 none swap sw 0 0
EOF
zfs unmount -a
zpool set bootfs=zroot/ROOT zroot
zfs set mountpoint=/ zroot/ROOT
zfs set mountpoint=/zroot zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
zfs set mountpoint=/home zroot/home
zfs set readonly=on zroot/var/empty
zpool export zroot
reboot
Then I get:
Code:
"Trying to mount root from zfs:zfs/ROOT" "failed with error 2"
I am a bit lost. Any help please?