Soekris image producerende script...

From: Poul-Henning Kamp (none@phk--freebsd.org.lh.bsd-dk.dk)
Date: Sat 14 Dec 2002 - 22:30:05 CET


To: bsd-dk@bsd-dk.dk
Subject: Soekris image producerende script...
From: Poul-Henning Kamp <none@phk--freebsd.org.lh.bsd-dk.dk>
Date: Sat, 14 Dec 2002 22:30:05 +0100


Som lovet under foredraget:

Det her er det script jeg bruger til at generere flash images til en
af mine soekris'er.

#!/bin/sh
MD=75
SZ=26000
set -ex
umount /mnt || true
mdconfig -d -u $MD || true
mdconfig -a -t malloc -s 246m -u $MD
echo '#
g c984 h16 s32
p 1 165 32 503776
a 1
' > _.fdisk
fdisk -f _.fdisk md${MD}
fdisk md${MD}
echo '
# /dev/md75s1c:
type: unknown
disk: amnesiac
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 1
sectors/cylinder: 63
cylinders: 7996
sectors/unit: 503776
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0

8 partitions:
# size offset fstype [fsize bsize bps/cpg]
  a: XXX 128 unused 0 0 # (Cyl. 0 - 7996*)
  c: 503776 0 unused 0 0 # (Cyl. 0 - 7996*)
' | sed "s/XXX/${SZ}/" > _.disklabel

disklabel -R -B md${MD}s1 _.disklabel
disklabel md${MD}s1
newfs /dev/md${MD}s1a
mount /dev/md${MD}s1a /mnt

cd /usr/src/etc
make obj && make depend && make all distrib-dirs DESTDIR=/mnt

echo '/dev/ad0s1a / ufs ro 1 1' > /mnt/etc/fstab

echo '
# server 212.242.86.186
# server 192.38.7.240

pps /dev/oncore.pps.0 assert
server 127.127.30.0

driftfile /mnt/ntp.drift

statsdir /mnt/Ntp/
statistics loopstats peerstats clockstats rawstats

filegen loopstats file loopstats type day
filegen peerstats file peerstats type day
filegen clockstats file clockstats type day
filegen rawstats file rawstats type day

' > /mnt/etc/ntp.conf

echo '
MODE 2
ASSERT
' > /mnt/etc/ntp.oncore

echo -h > /mnt/boot.conf

cp /bang/l135/NTP/Prs10/prs10 /mnt/sbin

echo '#!/bin/sh
set -ex
/sbin/ifconfig sis0 media autoselect
/sbin/mdconfig -a -t malloc -s 1m -u 0
/sbin/newfs /dev/md0
/sbin/mount /dev/md0 /var
( cd /var.template && /usr/bin/find . -print | /usr/bin/cpio -dump /var )
/usr/sbin/syslogd -ss -vv
/sbin/ifconfig lo0 127.0.0.1/32
/sbin/ifconfig sis0 212.242.86.135/27
/sbin/route add default 212.242.86.140
/sbin/mount_nfs -b -s 212.242.86.145:/bang/l135/NTP /mnt
/usr/sbin/ntpdate -b 212.242.86.186 192.38.7.240
/usr/sbin/ntpdate -b 212.242.86.186 192.38.7.240
/usr/sbin/ntpdate -b 212.242.86.186 192.38.7.240
(
cd /dev
/bin/ln -s cuaa5 oncore.serial.0
/bin/ln -s elan-mmcr oncore.pps.0
)
/usr/sbin/ntpd
/sbin/prs10 212.242.86.175:4444
while true
do
        /bin/sh -i
        echo "shell died, sleeping 10 seconds "
        sleep 10
done
' > /mnt/etc/rc

echo '
*.* /dev/console
' > /mnt/etc/syslog.conf

for i in sbin/init \
         bin/sh \
         bin/ln \
         usr.sbin/ntp \
         sys/boot \
         sbin/ifconfig \
         sbin/route \
         sbin/mdconfig \
         sbin/newfs \
         sbin/mount \
         sbin/mount_nfs \
         usr.sbin/syslogd \
         usr.bin/find \
         gnu/usr.bin/cpio
do
        cd /usr/src/$i
        make -s clean && make -s cleandir && make -s obj && make -s clean
        make -s depend && make -s all install \
            DESTDIR=/mnt NOMAN=yes NOSHARED=yes CLOCKDEFS="-DDEBUG"
done

for i in netconfig services
do
        cd /usr/src/etc
        cp $i /mnt/etc
done

cd /usr/src/sys/i386/conf
config GPS2
cp GENERIC.hints /mnt/boot/device.hints
cd ../compile/GPS2
rm -rf /mnt/boot/kernel
make -s depend && make -s -j 4 && make -s install DESTDIR=/mnt

mv /mnt/var /mnt/var.template
mkdir /mnt/var

df -k /mnt

if false ; then
rm -rf /bang/plywood
mkdir -p /bang/plywood
cd /mnt
find . -print | cpio -dump /bang/plywood

cp /bang/plywood/etc/fstab /bang/plywood/etc/_fstab
sed 's/^/#/' /bang/plywood/etc/_fstab > /bang/plywood/etc/fstab
fi

umount /mnt
dd if=/dev/md${MD} count=`expr $SZ + 256` of=/bang/plywood/gps2.ad0

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:26 CET