Freebsd
從 bsd-rescue 在 FreeBSD 上設置 ZFS
我有一個來自 OVH 的伺服器,並在https://wiki.freebsd.org/RootOnZFS/GPTZFSBoot/Mirror之後在 OVH 伺服器上的 FreeBSD10 上設置 ZFS
創建可引導的 ZFS 文件系統
zpool destroy zroot gpart destroy -F ada0 gpart destroy -F ada1 gpart create -s gpt ada0 gpart create -s gpt ada1 gpart add -b 34 -s 64k -t freebsd-boot ada0 gpart add -s 8G -t freebsd-swap -l swap0 ada0 gpart add -t freebsd-zfs -l disk0 ada0 gpart add -b 34 -s 64k -t freebsd-boot ada1 gpart add -s 8G -t freebsd-swap -l swap1 ada1 gpart add -t freebsd-zfs -l disk1 ada1 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
創建 ZFS 池 zroot
mkdir /tmp/zroot zpool create -o cachefile=/boot/zfs/zpool.cache -m none -f zroot mirror /dev/gpt/disk0 /dev/gpt/disk1 zpool set bootfs=zroot zroot zfs set checksum=fletcher4 zroot zfs set mountpoint=/tmp/zroot zroot zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
將 FreeBSD 安裝到 ZFS 文件系統
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp chmod 1777 /tmp/zroot/tmp zfs create zroot/usr zfs create 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 chmod 1777 /tmp/zroot/var/tmp zpool export zroot zpool import -o cachefile=/tmp/zpool.cache zroot cd /tmp/zroot mkdir fileinstall cd fileinstall fetch http://ftp1.fr.FreeBSD.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/base.txz fetch http://ftp1.fr.FreeBSD.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/kernel.txz fetch http://ftp1.fr.FreeBSD.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/src.txz fetch http://ftp1.fr.FreeBSD.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/doc.txz fetch http://ftp1.fr.FreeBSD.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/ports.txz sh export DESTDIR=/tmp/zroot for file in base.txz kernel.txz doc.txz src.txz ports.txz; do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done cp /tmp/zpool.cache /tmp/zroot/boot/zfs/zpool.cache chroot /tmp/zroot /bin/sh echo 'zfs_load="YES"' >> /boot/loader.conf echo 'if_em_load="YES"' >> /boot/loader.conf echo 'vfs.root.mountfrom="zfs:zroot"' >> /boot/loader.conf echo 'geom_mirror_load="YES"' >> /boot/loader.conf echo 'dumpdev="AUTO"' >> /etc/rc.conf echo 'zfs_enable="YES"' >> /etc/rc.conf echo 'sshd_enable="YES"' >> /etc/rc.conf echo 'local_unbound_enable=yes' >> /etc/rc.conf echo 'ifconfig_igb0="inet XXX.XXX.XXX.XXX netmask 255.255.255.0 broadcast XXX.XXX.XXX.XXX"' >> /etc/rc.conf echo '# IPv6 configuration' >> /etc/rc.conf echo 'ipv6_enable="YES"' >> /etc/rc.conf echo 'ipv6_network_interfaces="igb0"' >> /etc/rc.conf echo 'ipv6_activate_all_interfaces="YES"' >> /etc/rc.conf echo 'ipv6_network_interfaces="auto"' >> /etc/rc.conf echo 'ip6addrctl_policy="ipv6_prefer"' >> /etc/rc.conf echo 'ifconfig_igb0_ipv6="inet6 2001:XXX:: prefixlen 64"' >> /etc/rc.conf echo 'ipv6_static_routes="ovhgw"' >> etc/rc.conf echo 'ipv6_route_ovhgw="2001:XXX:ff -prefixlen 128 -interface igb0"' >> /etc/rc.conf echo 'ipv6_defaultrouter="2001:XXX:ff"' >> /etc/rc.conf echo 'hostname="ns426770.ip-37-187-148.eu"' >> /etc/rc.conf echo 'search ovh.net' >> /etc/resolv.conf echo 'nameserver 213.186.33.99' >> /etc/resolv.conf vi /tmp/zroot/etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/gpt/swap0 none swap sw 0 0 /dev/gpt/swap1 none swap sw 0 0 zroot / zfs rw,noatime 0 0 zroot/tmp /tmp zfs rw,noatime 0 0 zroot/usr /usr zfs rw,noatime 0 0 zroot/usr/home /usr/home zfs rw,noatime 0 0 zroot/usr/ports /usr/ports zfs rw,noatime 0 0 zroot/usr/ports/distfiles /usr/ports/distfiles zfs rw,noatime 0 0 zroot/usr/ports/packages /usr/ports/packages zfs rw,noatime 0 0 zroot/usr/src /usr/src zfs rw,noatime 0 0 zroot/var /var zfs rw,noatime 0 0 zroot/var/crash /var/crash zfs rw,noatime 0 0 zroot/var/db /var/db zfs rw,noatime 0 0 zroot/var/db/pkg /var/db/pkg zfs rw,noatime 0 0 zroot/var/empty /var/empty zfs ro 0 0 zroot/var/log /var/log zfs rw,noatime 0 0 zroot/var/mail /var/mail zfs rw,noatime 0 0 zroot/var/run /var/run zfs rw,noatime 0 0 zroot/var/tmp /var/tmp zfs rw,noatime 0 0 passwd root vi /etc/ssh/sshd_config exit exit cd / zfs umount -a zfs set mountpoint=legacy zroot zfs set mountpoint=/tmp zroot/tmp zfs set mountpoint=/usr zroot/usr zfs set mountpoint=/var zroot/var zfs create -V 4G zroot/swap zfs set checksum=off zroot/swap zfs set org.freebsd:swap=on zroot/swap zfs set readonly=on zroot/var/empty
當我重新啟動系統時,我無法訪問它並在 OVH 管理螢幕上出現錯誤,但由於我沒有 KVM 訪問權限,因此我無法看到錯誤。
在我的程序中我可能遺漏了什麼嗎?
好的,我錯過了 `echo ‘defaultrouter=“XXX.XXX.XXX.254”’ 否則一切正常