#!/bin/sh # # Instalator FreeBSD :) # Copyright (C) 2004 Krzysztof Kozlowski # License: GNU General Public License # http://www.gnu.org/licenses/gpl.txt # WERSJA=0.3.3 # Skladnia: # instalator nr_dysku nr_partycji roz_BSD_w_sektorach roz_swapa_w_MB # Uruchamiac po fdisku ! if [ $# -ne 4 ]; then echo 1>&2 "Usage: $0 nr_dysku nr_partycji roz_BSD_sekt roz_swap_MB" echo 1>&2 " by Kozik, v${WERSJA}" exit 127 fi PART_BSD="/dev/ad${1}s${2}" DYSK_BSD="/dev/ad${1}" echo "Uruchomiles fdiska? Jesli nie, to przerwij... " echo -n "Majstruje na $PART_BSD" read NULEK # ####################################################### # Zmienne... PLIK_DISKLABEL=/tmp/kozik_disk_label_${1}_${2} DATA=`date "+%d.%m.%Y"` DESTDIR=/mnt/f1 export DESTDIR WERSJA_BSD=5.3 # ####################################################### # Przygotowywanie disklabela #ROZMIAR_BSD=`echo "2*1024*${3}" | bc` ROZMIAR_BSD=`echo "$3" | bc` ROZMIAR_SWAP=`echo "2*1024*${4}" | bc` ROZMIAR_ROOT=`echo "$ROZMIAR_BSD - $ROZMIAR_SWAP" | bc` OFFSET_ROOT=`echo "$ROZMIAR_SWAP" | bc` #OFFSET_SWAP= # Dzielenie partycji BSD rm $PLIK_DISKLABEL 2> /dev/null touch $PLIK_DISKLABEL echo "# $PART_BSD:" > $PLIK_DISKLABEL echo "8 partitions:" >> $PLIK_DISKLABEL echo "# size offset fstype [fsize bsize bps/cpg]" >> $PLIK_DISKLABEL echo " a: $ROZMIAR_ROOT $OFFSET_ROOT 4.2BSD 2048 16384 28552" >> $PLIK_DISKLABEL echo " b: $ROZMIAR_SWAP 0 swap" >> $PLIK_DISKLABEL echo " c: $ROZMIAR_BSD 0 unused 0 0 # raw part, don't edit" >> $PLIK_DISKLABEL echo "Palaszuje dysk na kawalki..." bsdlabel -w $PART_BSD bsdlabel -R $PART_BSD $PLIK_DISKLABEL if [ $? -ne 0 ]; then echo "Mamy bleda przy palaszowaniu" fi rm $PLIK_DISKLABEL 2> /dev/null #echo "OK, dysk spalaszowany" # ####################################################### # Bootmanager echo "Wgrywam bootmanagera..." boot0cfg -B $DYSK_BSD if [ $? -ne 0 ]; then echo "Mamy bleda przy wgrywaniu BM" fi # ####################################################### # Format echo -n "Tworze system plikow na ${PART_BSD}... czy kontynuowac? (y/n) " read NULEK if [ "$NULEK" = "y" ]; then newfs ${PART_BSD}a else exit 127 fi if [ $? -ne 0 ]; then echo "Mamy bleda formatowaniu" fi #niepotrzebne: #newfs ${PART_BSD}b # ####################################################### # Zamontowanie partycji echo "Montuje nowa partycje pod /mnt/f1..." umount /mnt/f1 2> /dev/null mount ${PART_BSD}a /mnt/f1 if [ $? -ne 0 ]; then echo "Mamy bleda przy montowaniu partycji" fi # ####################################################### # Zamontowanie obrazu plyty echo -n "Montuje obraz (${WERSJA_BSD}) plytki (1-MINIINST, 2-DISC1) pod /mnt/tmp... Podaj nr " read CEDEK if [ "$CEDEK" = "1" ]; then PLYTKA=${WERSJA_BSD}-RELEASE-i386-miniinst.iso elif [ "$CEDEK" = "2" ]; then PLYTKA=${WERSJA_BSD}-RELEASE-i386-disc1.iso else exit 127 fi fmount /ftp/pub/FreeBSD/releases/i386/ISO-IMAGES/${PLYTKA} /mnt/tmp # ####################################################### # Faktyczne kopiowanie danych echo "Instaluje podstawowa zawartosc BSD..." cd /mnt/tmp/base ./install.sh # Porty: echo "Instaluje porty..." cd /mnt/tmp/ports ./install.sh # ####################################################### # Poinstalacyjna konfiguracja # ####################################################### # /etc/fstab echo "Instalka wykonana - czaruje /etc/fstab..." rm /tmp/fstab_kozik 2> /dev/null touch /tmp/fstab_kozik echo "# Generated by Kozik_script v${WERSJA} on $DATA" > /tmp/fstab_kozik echo "# Device Mountpoint FStype Options Dump Pass#" >> /tmp/fstab_kozik echo "$PART_BSD none swap sw 0 0" >> /tmp/fstab_kozik echo "$PART_BSD / ufs rw 1 1" >> /tmp/fstab_kozik cp /tmp/fstab_kozik /mnt/f1/etc/fstab rm /tmp/fstab_kozik 2> /dev/null # ####################################################### # /etc/rc.conf echo "Czaruje /etc/rc.conf..." rm /tmp/rc.conf_kozik 2> /dev/null touch /tmp/rc.conf_kozik echo "# Generated by Kozik_script v${WERSJA} on $DATA" > /tmp/rc.conf_kozik echo moused_enable="yes" >> /tmp/rc.conf_kozik echo ifconfig_xl0="DHCP" >> /tmp/rc.conf_kozik echo -n "Wrzucic sshd? (y/n) " read NULEK if [ "$NULEK" = "y" ]; then echo sshd_enable="yes" >> /tmp/rc.conf_kozik echo sshd_flags="-4" >> /tmp/rc.conf_kozik fi echo -n "Wrzucic inetd? (y/n) " read NULEK if [ "$NULEK" = "y" ]; then echo inetd_enable="yes" >> /tmp/rc.conf_kozik #echo inetd_flags="-4" >> /tmp/rc.conf_kozik fi echo -n "Wrzucic NIS-server? (y/n) " read NULEK if [ "$NULEK" = "y" ]; then echo nis_server_enable="yes" >> /tmp/rc.conf_kozik echo nisdomainname="kozik.pl" >> /tmp/rc.conf_kozik mkdir /var/yp/kozik.pl fi echo -n "Wrzucic NFS? (y/n) " read NULEK if [ "$NULEK" = "y" ]; then echo portmap_enable="yes" >> /tmp/rc.conf_kozik echo nfs_server_enable="yes" >> /tmp/rc.conf_kozik echo mountd_flags="-r" >> /tmp/rc.conf_kozik echo "Czaruje /etc/exports... (domyslnie udostepniam wszystkim RO /tmp/nfs)" rm /tmp/exports_kozik 2> /dev/null touch /tmp/exports_kozik mkdir /mnt/f1/tmp/nfs 2> /dev/null echo "# Generated by Kozik_script v${WERSJA} on $DATA" > /tmp/exports_kozik echo "/tmp/nfs -ro" >> /tmp/exports_kozik cp /tmp/exports_kozik /mnt/f1/etc/exports rm /tmp/exports_kozik 2> /dev/null fi cp /tmp/rc.conf_kozik /mnt/f1/etc/rc.conf rm /tmp/rc.conf_kozik 2> /dev/null # ####################################################### # /etc/make.conf echo "Czaruje /etc/make.conf..." rm /tmp/make.conf_kozik 2> /dev/null touch /tmp/make.conf_kozik echo "# Generated by Kozik_script v${WERSJA} on $DATA" > /tmp/make.conf_kozik echo "MASTER_SITE_OVERRIDE?=ftp://ftp.icm.edu.pl/pub/FreeBSD/distfiles/" >> /tmp/make.conf_kozik cp /tmp/make.conf_kozik /mnt/f1/etc/make.conf rm /tmp/make.conf_kozik 2> /dev/null # ####################################################### # Koniec echo "Odmontowuje partycje BSD i CD..." cd / umount /mnt/f1 fumount /mnt/tmp echo "Instalacja zakonczona!" exit 0