Код: Выделить всё
#!/bin/sh
#
hdd=$1;
zpool=$2;
umount /dev/md1
mdmfs -s 512M md1 /tmp
sysctl kern.geom.debugflags=0x10
dd if=/dev/zero of=/dev/${hdd} bs=1024k count=10
zpool create -f ${zpool} /dev/${hdd}
zpool set bootfs=${zpool} ${zpool}
zfs set atime=off ${zpool}
zfs set checksum=fletcher4 ${zpool}
zfs set mountpoint=/mnt ${zpool}
zpool export ${zpool}
zpool import -o cachefile=/tmp/zpool.cache ${zpool}
zfs create ${zpool}/usr
zfs create ${zpool}/usr/home
zfs create ${zpool}/var
zfs create -o compression=on -o exec=on -o setuid=off ${zpool}/tmp
zfs create -o compression=lzjb -o setuid=off ${zpool}/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off ${zpool}/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off ${zpool}/usr/ports/packages
zfs create -o compression=lzjb -o exec=off -o setuid=off ${zpool}/usr/src
zfs create -o compression=lzjb -o exec=off -o setuid=off ${zpool}/var/crash
zfs create -o exec=off -o setuid=off ${zpool}/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off ${zpool}/var/db/pkg
zfs create -o exec=off -o setuid=off ${zpool}/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off ${zpool}/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off ${zpool}/var/mail
zfs create -o exec=off -o setuid=off ${zpool}/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off ${zpool}/var/tmp
#zfs create -V 4G ${zpool}/swap
#zfs set org.freebsd:swap=on ${zpool}/swap
#zfs set checksum=off ${zpool}/swap
chmod 1777 /mnt/tmp
chmod 1777 /mnt/var/tmp
cd /mnt ; ln -s usr/home home
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz kernel.txz games.txz doc.txz src.txz; do (cat $file | tar --unlink -xvpJf - -C ${DESTDIR:-/}); done
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
cat << EOF > /mnt/etc/rc.conf
# ZFS
zfs_enable="YES"
EOF
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:'${zpool}'"' >> /mnt/boot/loader.conf
touch /mnt/etc/fstab
zfs set readonly=on ${zpool}/var/empty
zfs umount -a
zfs set mountpoint=legacy ${zpool}
zfs set mountpoint=/tmp ${zpool}/tmp
zfs set mountpoint=/usr ${zpool}/usr
zfs set mountpoint=/var ${zpool}/var
dd if=/boot/zfsboot of=/dev/${hdd} count=1
dd if=/boot/zfsboot of=/dev/${hdd} skip=1 seek=1024
echo "script: done"
Иногда выдает сообщение "zfsboot error 128" ждет пять секунд и начинает грузить ядро.
Собственно вопрос как правильно ставить систему на SSD, нужно ли как-то тюнить ZFS с учетом размера блока в 4к, может, что-то ещё нужно тюнить в настройках (чтоб быстро не убить SSD)? И вообще нормальная схема ZFS без разделов на SSD? Что-то не понял как у ZFS с тримом и нужен ли он вообще? Как будет жить система без свопа (памяти 4Gb)?
Прошу помощи т.к. читал много обо всем, но ниче конкретного не прочитал, четкой картины не сложилось, в голове каша, подскажите у кого есть опыт.