Добър вечер!
Опитвам се да си направя bash script в който да вкарам командите от
този сайт и да си улесня инсталацията пък и да вкарвам допълнителни неща без писане на едни и същи неща по 100 пъти .
Ето го и скрипта :
export POOL=tank
echo 'the poolname is set to '$POOL
export DISK=da0
echo 'the disk to install is set to '$DISK
#STEP 2
echo 'step 2'
gpart create -s gpt $DISK;
gpart add -b 34 -s 94 -t freebsd-boot $DISK;
gpart add -t freebsd-zfs -l disk0 $DISK;
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISK;
sleep 5
#STEP 3
echo 'step 3'
zpool create $POOL /dev/gpt/disk0;
sleep 5
#STEP 4
echo 'step 4'
zpool set bootfs=$POOL $POOL;
zfs set checksum=on $POOL;
zfs set mountpoint=/mnt $POOL;
sleep 5
#STEP 5
echo 'step 5'
zpool export $POOL;
zpool import -o cachefile=/var/tmp/zpool.cache $POOL;
sleep 5
#STEP 6
echo 'step 6'
zfs create $POOL/usr;
zfs create $POOL/usr/home;
zfs create $POOL/var;
zfs create -o compression=on -o exec=on -o setuid=off $POOL/tmp;
zfs create -o compression=on -o setuid=off $POOL/usr/ports;
zfs create -o compression=off -o exec=off -o setuid=off $POOL/usr/ports/distfiles;
zfs create -o compression=off -o exec=off -o setuid=off $POOL/usr/ports/packages;
zfs create -o compression=on -o exec=on -o setuid=off $POOL/usr/src;
zfs create -o compression=on -o exec=off -o setuid=off $POOL/var/crash;
zfs create -o exec=off -o setuid=off $POOL/var/db;
zfs create -o compression=on -o exec=on -o setuid=off $POOL/var/db/pkg;
zfs create -o compression=off -o exec=off -o setuid=off $POOL/var/empty;
zfs create -o compression=on -o exec=off -o setuid=off $POOL/var/log;
zfs create -o compression=on -o exec=off -o setuid=off $POOL/var/mail;
zfs create -o exec=off -o setuid=off $POOL/var/run;
zfs create -o compression=on -o exec=on -o setuid=off $POOL/var/tmp;
sleep 5
#STEP 7
echo 'step 7'
zfs create -V 1G $POOL/swap;
zfs set org.freebsd:swap=on $POOL/swap;
# !!! zfs set checksum=off $POOL/swap;
sleep 5
#STEP 8
echo 'step 8'
chmod 1777 /mnt/tmp;
cd /mnt ; ln -s usr/home home;
chmod 1777 /mnt/var/tmp;
sleep 5
#STEP 9
echo 'step 9'
sh;
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 -xpJf - -C ${DESTDIR:-/}); done;
sleep 5
#STEP 10
echo 'step 10'
cp /var/tmp/zpool.cache /mnt/boot/zfs/zpool.cache;
sleep 5
#STEP 11
echo 'step 11'
echo 'zfs_enable="YES"' >> /mnt/etc/rc.conf;
echo 'zfs_load="YES"' >> /mnt/boot/loader.conf;
echo 'vfs.root.mountfrom="zfs:$POOL"' >> /mnt/boot/loader.conf;
touch /mnt/etc/fstab;
sleep 5
#STEP 12
echo 'step 12'
zfs set readonly=on $POOL/var/empty;
zfs umount -af;
zfs set mountpoint=legacy $POOL;
zfs set mountpoint=/tmp $POOL/tmp;
zfs set mountpoint=/usr $POOL/usr;
zfs set mountpoint=/var $POOL/var;
sleep 5
echo 'COMPLETED!!!'
1 въпрос : как да накарам всеки ред да започне да се изпълнява след като е приключено изпълнението на горния ред, така с ";" не знам дали е правилно?
2 въпрос : на 4 или 5 стъпка ми изписва че не може да маунтне пуула,а гледам че успява и продължава, обаче ... щом стигне до 9 стъпка (най-важната) приключва изпълнение ?!
Можете ли да ударите едно рамо? Предполагам че скрипта ще бъде полезен за много хора! Благодаря!