Top > FreeBSD > Install FreeBSD 10.2-Release on pure ZFS
サーバの構成をサーバー構成 20150922へ変更後、改めてインストールした時のまとめです
Install FreeBSD 8.2-RC3 on pure ZFSを参考にして、BSDInstallを使用してインストールします
The FreeBSD Projectから必要なイメージをダウンロードします
celeron N3150 なのでamd64を選択
USBメモリからインストールするので、FreeBSD-10.2-RELEASE-amd64-memstick.imgをダウンロードし"dd"や"DDforWindows"を使って書き込みます
USBメモリから起動すると通常のインストール画面になりますので環境に合わせて設定します
"Japanese 106" を選択
"hogehoge.com" など任意のホスト名を入力
"lib32" と "src"を選択
"IPv6 Japan" を選択
"Shell" を選択
# dmesg | grep da[0-9] ... da0: <ADATA USB Flash Drive 1100> Removable Direct Access SPC-4 SCSI device ... ... da1: <ADATA USB Flash Drive 1100> Removable Direct Access SPC-4 SCSI device ...
# dd if=/dev/zero of=/dev/da0 count=1 bs=1m # dd if=/dev/zero of=/dev/da1 count=1 bs=1m
# gpart create -s gpt /dev/da0 # gpart create -s gpt /dev/da1
# gpart add -a 4k -s 512k -t freebsd-boot da0 # gpart add -a 4k -s 512k -t freebsd-boot da1
# gpart show da0 => 34 60620733 da0 GPT (29G) 34 6 - free - (3.0K) 40 1024 1 freebsd-boot (512K) 1064 60620767 - free - (29G)
# gpart add -s 28g -t freebsd-zfs -l usb0 da0 # gpart add -s 28g -t freebsd-zfs -l usb1 da1
# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 da0 # gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 da1
# gpart show da0 => 34 60620733 da0 GPT (29G) 34 6 - free - (3.0K) 40 1024 1 freebsd-boot (512K) 1064 58720256 2 freebsd-zfs (28G) 58721320 1899447 - free - (927M) # gpart show da1 => 34 60620733 da0 GPT (29G) 34 6 - free - (3.0K) 40 1024 1 freebsd-boot (512K) 1064 58720256 2 freebsd-zfs (28G) 58721320 1899447 - free - (927M)
# mount -t tmpfs tmpfs /boot/zfs
# zpool create tank0 mirror gpt/usb0 gpt/usb1
# zfs set checksum=fletcher4 tank0
# zfs set atime=off tank0
# zfs set mountpoint=legacy tank0
# zfs create tank0/system # zfs create tank0/system/sysroot # zfs create tank0/system/usr # zfs create tank0/system/var # zfs create tank0/system/var/crash # zfs create tank0/system/var/db # zfs create tank0/system/var/db/pkg # zfs create tank0/system/var/empty # zfs create tank0/system/var/log # zfs create tank0/system/var/mail # zfs create tank0/system/var/run # zfs create tank0/system/var/tmp # zfs create tank0/src # zfs create tank0/ports # zfs create tank0/home # zfs create tank0/jail
# zfs set compression=gzip-9 tank0/system/var/crash # zfs set compression=gzip-9 tank0/system/var/db/pkg # zfs set compression=gzip-9 tank0/system/var/log # zfs set compression=gzip-9 tank0/system/var/mail # zfs set compression=gzip-9 tank0/system/var/tmp # zfs set compression=gzip-9 tank0/src # zfs set compression=gzip-9 tank0/ports # zfs set compression=gzip-9 tank0/jail
# zfs set exec=off tank0/system/var/crash # zfs set exec=off tank0/system/var/db # zfs set exec=off tank0/system/var/empty # zfs set exec=off tank0/system/var/log # zfs set exec=off tank0/system/var/mail
# zfs set setuid=off tank0/system/var/crash # zfs set setuid=off tank0/system/var/db # zfs set setuid=off tank0/system/var/db/pkg # zfs set setuid=off tank0/system/var/empty # zfs set setuid=off tank0/system/var/log # zfs set setuid=off tank0/system/var/mail # zfs set setuid=off tank0/system/var/tmp # zfs set setuid=off tank0/src # zfs set setuid=off tank0/ports
# zfs set dedup=on tank0/jail
# zpool set bootfs=tank0/system/sysroot tank0
# mount -t zfs tank0/system/sysroot /mnt # mkdir /mnt/tmp # chmod 1777 /mnt/tmp # mkdir /mnt/usr # mount -t zfs tank0/system/usr /mnt/usr # mkdir /mnt/usr/home # mount -t zfs tank0/home /mnt/usr/home # ln -s /usr/home /mnt/home # mkdir /mnt/usr/ports # mkdir /mnt/usr/src # mount -t zfs tank0/src /mnt/usr/src # mkdir /mnt/var # mount -t zfs tank0/system/var /mnt/var # mkdir /mnt/var/crash # mount -t zfs tank0/system/var/crash /mnt/var/crash # mkdir /mnt/var/db # mount -t zfs tank0/system/var/db /mnt/var/db # mkdir /mnt/var/db/pkg # mount -t zfs tank0/system/var/db/pkg /mnt/var/db/pkg # mkdir /mnt/var/empty # mount -t zfs tank0/system/var/empty /mnt/var/empty # mkdir /mnt/var/log # mount -t zfs tank0/system/var/log /mnt/var/log # mkdir /mnt/var/mail # mount -t zfs tank0/system/var/mail /mnt/var/mail # mkdir /mnt/var/run # mount -t zfs tank0/system/var/run /mnt/var/run # mkdir /mnt/var/tmp # mount -t zfs tank0/system/var/tmp /mnt/var/tmp # chmod 1777 /mnt/var/tmp
# Device Mountpoint FStype Options Dump Pass # tank0/system/usr /usr zfs rw 0 0 tank0/system/var /var zfs rw 0 0 tank0/system/var/crash /var/crash zfs rw 0 0 tank0/system/var/db /var/db zfs rw 0 0 tank0/system/var/db/pkg /var/db/pkg zfs rw 0 0 tank0/system/var/empty /var/empty zfs ro 0 0 tank0/system/var/log /var/log zfs rw 0 0 tank0/system/var/mail /var/mail zfs rw 0 0 tank0/system/var/run /var/run zfs rw 0 0 tank0/system/var/tmp /var/tmp zfs rw 0 0 tank0/src /usr/src zfs rw 0 0 tmpfs /tmp tmpfs rw,mode=1777,size=4294967296 0 0
# exit
この後、インストーラ上で設定を行います(下記以外のものもありますが適宜設定します)
"re0" を選択 IPv4:"DHCP" を選択 IPv6:"No" を選択
"Asia" を選択 "Japan" を選択
"sshd" と "powerd" を有効にします
インストーラ終了確認時に"Live CD"を選択します
# zfs set readonly=on tank0/system/var/empty
# chroot /mnt
echo 'zfs_enable="YES"' >> /etc/rc.conf
echo 'zfs_load="YES" >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:tank0/system/sysroot"' >> /boot/loader.conf echo 'vm.kmem_size="8192M"' >> /boot/loader.conf echo 'vm.kmem_size_max="8192M"' >> /boot/loader.conf echo 'vfs.zfs.arc_min="1024M"' >> /boot/loader.conf echo 'vfs.zfs.arc_max="4096M"' >> /boot/loader.conf echo 'vfs.zfs.vdev.cache.size="1024M"' >> /boot/loader.conf echo 'vfs.zfs.write_limit_override=1073741824' >> /boot/loader.conf echo 'kern.maxvnodes=400000' >> /boot/loader.conf
echo 'hw.usb.no_shutdown_wait=1' >> /boot/loader.conf
# cd /etc/mail # make aliases
# exit
再作成 # mkdir /boot/zfs; zfs export tank0; zfs import tank0 コピー # cp /boot/zfs/zpool.cache /mnt/boot/zfs/zpool.cache
# exit
# zfs set mountpoint=/usr/home tank0/home