#!/bin/bash set -e function usage { echo "${0##*/} [vdisk]" exit 1 } [[ -z $2 ]] && usage platform=$1 [[ $platform != pv && $platform != hvm && $platform != baremetal ]] && usage guest=$2 vdisk=$3 [[ ! -f network.conf ]] && echo network.conf missing && exit 1 source network.conf [[ -z $sets ]] && echo \$sets not defined -- tune network.conf first && exit 1 [[ ! -f $sets/base.tar.xz ]] && echo $sets/base.tar.xz not found && exit 1 [[ $platform != pv && ! -f $sets/netbsd-INSTALL.gz ]] && echo $set/netbsd-INSTALL.gz not found && exit 1 [[ ! -z `mount | grep lala` ]] && echo lala/ already mounted && exit 1 tmp=`xl li | grep $guest` || true [[ ! -z $tmp ]] && echo XEN guest is running && echo "$tmp" && exit 1 unset tmp tmp=`losetup --list | grep $guest | awk '{print $1}'` [[ ! -z $tmp ]] && echo already looped && echo "$tmp" && exit 1 unset tmp [[ -f $guest.sparse ]] && echo $guest.sparse already exists && exit 1 if [[ $platform != baremetal ]]; then rm -f $guest.sparse $guest.sfdisk dd if=/dev/zero of=$guest.sparse bs=1000k count=0 seek=4000 fi echo #need more than 512MB for pkg_add to be happy? getting core dumps because of... what? [[ $platform = pv ]] && echo -n XEN/PV guest setup... && cat > $guest < $guest < $guest.sfdisk < 71136 --> 75672 if [[ $platform != pv ]]; then echo -n adding kern-GENERIC and netbsd-INSTALL.gz for baremetal or hvm... tar xJph --numeric-owner -f $sets/kern-GENERIC.tar.xz -C lala/ && echo done cp -v $kernel/netbsd-INSTALL.gz lala/ fi OWD=`pwd` echo working directory is $OWD/ ls -alkF lala/dev/ cd lala/dev/ #grep ' -F netbsd' MAKEDEV #grep ' -R"' MAKEDEV #grep ' -r"' MAKEDEV #grep ' -g ' MAKEDEV sed -r 's/ -F netbsd//; s/ -R"/"/; s/ -r"/"/; s/ -g [^ ]+ -u [^ ]+//; ' MAKEDEV > MAKEDEV.linux #diff grep exists non-zero #diff -bu MAKEDEV MAKEDEV.linux #grep ' -F netbsd' MAKEDEV.linux #grep ' -R"' MAKEDEV.linux #grep ' -r"' MAKEDEV.linux #grep ' -g ' MAKEDEV.linux chmod +x MAKEDEV.linux ./MAKEDEV.linux all 2>/dev/null ./MAKEDEV.linux opty cd $OWD/ unset OWD #does not need to be executable mv lala/etc/rc.local lala/etc/rc.local.dist cat > lala/etc/rc.local < /.makedev_done && echo done echo -n MAKEDEV opty... ./MAKEDEV opty && echo done cd / echo OWNERSHIPS FIXED E.G. ls -lkF /dev/cgd0 ls -lkF /dev/altq/altq fi EOF mv -i lala/etc/passwd lala/etc/passwd.dist sed '1s@/bin/sh@/bin/ksh@' lala/etc/passwd.dist > lala/etc/passwd #diff -u lala/etc/passwd.dist lala/etc/passwd mv -i lala/etc/master.passwd lala/etc/master.passwd.dist sed '1s@/bin/sh@/bin/ksh@' lala/etc/master.passwd.dist > lala/etc/master.passwd #diff -u lala/etc/master.passwd.dist lala/etc/master.passwd echo writing fstab ... [[ $platform != pv ]] && cat > lala/etc/fstab < lala/etc/fstab < lala/etc/rc.conf < lala/etc/ttys < lala/grub/grub.cfg < lala/etc/myname && echo done echo -n $netif... echo inet $cidr up > lala/etc/ifconfig.$netif && echo done echo -n hosts... cat > lala/etc/hosts < lala/etc/mygate && echo done echo -n hosts/gw... cat >> lala/etc/hosts <<-EOF && echo done $gw gw EOF else echo no gateway fi rm -f lala/etc/resolv.conf for ip in $dns; do echo -n nameserver $ip... cat >> lala/etc/resolv.conf < lala/root/.ssh/authorized_keys < lala/etc/ssh/sshd_config cat >> lala/etc/ssh/sshd_config <> lala/etc/rc.conf && echo done umount lala/ [[ $platform = hvm ]] && losetup --detach $disk echo echo all done-- $disk $partition is ready [[ $platform != baremetal ]] && cat <