Archive de août, 2013

Commentaires fermés

Installation complète d’un home serveur sous FreeBSD 9


2013
17.08

1/ install de freebsd

#!/bin/sh
 
echo '#5 Create ZFS Pool sys_tank'
mkdir /boot/zfs
zpool create sys_tank /dev/gpt/ssd-intel
zfs set checksum=fletcher4 sys_tank
zfs set dedup=on sys_tank
zfs set compression=off sys_tank
#zfs set mountpoint=/mnt sys_tank
 
echo '#6 At this point export and import the pool while preserving zroot.cache in /tmp.'
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
echo '#7 Create ZFS filesystem hierarchy'
zfs create                                                      sys_tank/root
zfs create                                                      sys_tank/usr
zfs create -o compression=lzjb                  -o setuid=off   sys_tank/usr/ports
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/distfiles
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/packages
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/usr/src
zfs create                                                      sys_tank/var
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/crash
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/db
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/db/pkg
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/empty
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/log
zfs create -o compression=gzip  -o exec=off     -o setuid=off   sys_tank/var/mail
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/run
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/tmp
zfs create -o compression=on    -o exec=on      -o setuid=off   sys_tank/tmp
 
zpool set bootfs=sys_tank/root sys_tank
 
echo '# Make /var/empty readonly'
zfs set readonly=on sys_tank/var/empty
 
echo '#8 Add swap space and disable checksums.'
zfs create -V 10G sys_tank/swap
zfs set org.freebsd:swap=on sys_tank/swap
zfs set checksum=off sys_tank/swap
zfs set dedup=off sys_tank/swap
 
zfs umount -a
zfs set mountpoint=none sys_tank
zfs set mountpoint=/ sys_tank/root
zfs set mountpoint=/tmp sys_tank/tmp
zfs set mountpoint=/usr sys_tank/usr
zfs set mountpoint=/var sys_tank/var
 
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
chmod 1777 /mnt/tmp
#cd /mnt ; ln -s usr/home home
chmod 1777 /mnt/var/tmp
 
echo '# Install FreeBSD to sys_tank'
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done
 
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
 
echo '# Installe fstab, rc.conf et loader.conf and some cool stuff'
# copy rc.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/rc.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/sysctl.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/make.conf
# copy fstab
touch /mnt/etc/fstab
# copy loader.conf
cd /mnt/boot/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/loader.conf
 
# Install du script post_install
mkdir /mnt/usr/scripts
mkdir /mnt/usr/scripts/userland
cd /mnt/usr/scripts
fetch http://192.168.1.96/zurp_fs/scripts/update_scripts.sh
chmod +x update_script.sh
 
shutdown -r now

2/ post install et clean

3/ services natifs :

4/ ez_jail
5/ services en jail :
-0 netatalk/samba.nfs
-1 SubSonic
-2 RetroShare & transmission
-3 un bureau Gnome (debian ?)
-4 serveur web public
-5 serveur web privé (administration, webmin …)
-6 virtualbox

Commentaires fermés

Installation de FreeBSD avec ZFS


2013
17.08

Avant de commencer, il faut préparer le disque système pour recevoir une partition ZFS.
pensez bien à corriger le chemin de votre disque en fonction de votre machine :)
comme d’hab, direction les pages de man pour le detail des options.

gpart -s gpt ada0
gpart add -b 34 -s 512 -t freebsd-boot ada0
gpart add -t freebsd-zfs -l ssd ada0

une fois ceci fait, on peut créer les datasets ZFS et installer le système :

#!/bin/sh
 
echo '#5 Create ZFS Pool sys_tank'
mkdir /boot/zfs
zpool create sys_tank /dev/gpt/ssd-intel
zfs set checksum=fletcher4 sys_tank
zfs set dedup=on sys_tank
zfs set compression=off sys_tank
#zfs set mountpoint=/mnt sys_tank
 
echo '#6 At this point export and import the pool while preserving zroot.cache in /tmp.'
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
echo '#7 Create ZFS filesystem hierarchy'
zfs create                                                      sys_tank/root
zfs create                                                      sys_tank/usr
zfs create -o compression=lzjb                  -o setuid=off   sys_tank/usr/ports
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/distfiles
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/packages
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/usr/src
zfs create                                                      sys_tank/var
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/crash
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/db
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/db/pkg
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/empty
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/log
zfs create -o compression=gzip  -o exec=off     -o setuid=off   sys_tank/var/mail
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/run
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/tmp
zfs create -o compression=on    -o exec=on      -o setuid=off   sys_tank/tmp
 
zpool set bootfs=sys_tank/root sys_tank
 
echo '# Make /var/empty readonly'
zfs set readonly=on sys_tank/var/empty
 
echo '#8 Add swap space and disable checksums.'
zfs create -V 10G sys_tank/swap
zfs set org.freebsd:swap=on sys_tank/swap
zfs set checksum=off sys_tank/swap
zfs set dedup=off sys_tank/swap
 
zfs umount -a
zfs set mountpoint=none sys_tank
zfs set mountpoint=/ sys_tank/root
zfs set mountpoint=/tmp sys_tank/tmp
zfs set mountpoint=/usr sys_tank/usr
zfs set mountpoint=/var sys_tank/var
 
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
chmod 1777 /mnt/tmp
chmod 1777 /mnt/var/tmp
 
echo '# Install FreeBSD to sys_tank'
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done
 
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache