Автор Тема: ZFS install скрипт фром скрач :)  (Прочетена 4079 пъти)

HQ

  • Напреднали
  • *****
  • Публикации: 195
  • Distribution: *BSD
  • Window Manager: none
    • Профил
Добър вечер!
Опитвам се да си направя 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 стъпка (най-важната) приключва изпълнение ?!
Можете ли да ударите едно рамо? Предполагам че скрипта ще бъде полезен за много хора! Благодаря!
« Последна редакция: Dec 17, 2012, 18:43 от HQ »
Активен

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: ZFS install скрипт фром скрач :)
« Отговор #1 -: Dec 17, 2012, 23:11 »
1. Махни ; не са необходими, и без това всеки ред започва да се изпълнява след като предния е приключил. Тук има особеност - ако командата изисква време за изпълнение тя може да приключи без да е приключила (?! - не питай), тогава може да вмъкваш "sleep (брой секунди)" между двете. Друга особеност ако следващата трябва да продължи само ако предишната е приключила успешно ще требва да следиш кода на грешката $?, или да връзваш две/няколко команди в един ред с разделител &&
2. Тук:

#STEP 9
echo 'step 9'

sh;

пускаш нов шел, който ако не ме лъже инстинкта е интерактивен, и скрипта ще продължи след неговото завършване, т.е. след като Ctrl-D или exit. Решението е просто, махни sh.

На 4,5 стъпки сложи повече слип и независима провекра монтиран ли е пула или не.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

HQ

  • Напреднали
  • *****
  • Публикации: 195
  • Distribution: *BSD
  • Window Manager: none
    • Профил
Re: ZFS install скрипт фром скрач :)
« Отговор #2 -: Dec 18, 2012, 00:13 »
Пробвах,махнах sh, но просто така беше в инструкциите...
Доколкото установих от многото опити,на step 9
(for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz; )
 се въвежда,но това след него не ... мъчих се да го измисля да е на 1 ред но не става. До там всичко е ок,а това че не маунтва пуула е в стъпка 3  ??? ще пробвам и там да сложа повече слийп.

Може и да съм объркал секцията в бързината  ::)
Активен

gangov

  • Напреднали
  • *****
  • Публикации: 141
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
    • Профил
Re: ZFS install скрипт фром скрач :)
« Отговор #3 -: Dec 18, 2012, 08:45 »
OFF TOPIC !!!
 Изкефи ме шльокавицата на заглавието  ;D
Активен

-----------------------------------------------------------------------------------------------------------------
65 62 61 20 6c 75 69 62 6f 70 69 74 6e 69

HQ

  • Напреднали
  • *****
  • Публикации: 195
  • Distribution: *BSD
  • Window Manager: none
    • Профил
Re: ZFS install скрипт фром скрач :)
« Отговор #4 -: Dec 18, 2012, 14:55 »
Такаааа ... ами да ви се поФаля скрипта вече окончателно РАБОТИ!!!
Искам да благодаря на моите базови познания по bash или по-точно sh,специални благодарности на снапшотите във VMware и генералното спонсорство на фирма за производство на чипс и една друга произвеждаща черна газирана напитка.
Между временно открих и поправих още няколко грешки - на 11 стъпка
echo 'vfs.root.mountfrom="zfs:$POOL"' >> /mnt/boot/loader.conf;
пъха $POOL в конфига и трябва да се замени с името на пула иначе греда.

Ето малко снимки :





Ето го и самия скрипт:
http://www.2shared.com/file/R9kGqxUZ/zfsbash45.html
Не забравяйте,че не нося отговорност за изгорели палачинки,пържоли и тежки психични разтройства в следствие от използване на софтуера!
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
KDE 3.2 Install
Настройка на програми
gamehack 4 3312 Последна публикация Jan 26, 2004, 05:35
от
Install
Хардуерни и софтуерни проблеми
Йордан 1 2947 Последна публикация Feb 13, 2004, 22:03
от
Install
Системни настройки
smitev 6 5328 Последна публикация Jun 30, 2004, 01:34
от n3c
Kde install
Настройка на програми
Morpheus 3 3301 Последна публикация Dec 16, 2004, 22:16
от biglamer
Install help
Настройка на хардуер
intox 3 3371 Последна публикация Jan 04, 2005, 15:11
от rpetrov