usermode.conf revision 1.2.2.2       1  1.2.2.2  yamt # $NetBSD: usermode.conf,v 1.2.2.2 2013/01/23 00:04:28 yamt Exp $
      2  1.2.2.2  yamt # NetBSD/usermode customization script used by mkimage
      3  1.2.2.2  yamt custom=custom
      4  1.2.2.2  yamt image=usermode.img
      5  1.2.2.2  yamt overhead=8 # in MB
      6  1.2.2.2  yamt sets="base etc modules"
      7  1.2.2.2  yamt setsdir=/usr/build/release/$(uname -m)/binary/sets
      8  1.2.2.2  yamt size=0	# in MB
      9  1.2.2.2  yamt specialdirs="/kern /proc"
     10  1.2.2.2  yamt usermodedirs="/var.cow /etc.cow /root.cow /pkgs"
     11  1.2.2.2  yamt 
     12  1.2.2.2  yamt make_filesystems() {
     13  1.2.2.2  yamt 	${sudo} newfs /dev/r${vnddev}a
     14  1.2.2.2  yamt 	${sudo} mount /dev/${vnddev}a ${mnt}
     15  1.2.2.2  yamt }
     16  1.2.2.2  yamt 
     17  1.2.2.2  yamt make_fstab() {
     18  1.2.2.2  yamt ${sudo} cat > ${mnt}/etc/fstab << EOF
     19  1.2.2.2  yamt # NetBSD/usermode /etc/fstab
     20  1.2.2.2  yamt /dev/ld0a       /               ffs     ro              1 1
     21  1.2.2.2  yamt /dev/ld1a	/pkgs		ffs	ro		1 2
     22  1.2.2.2  yamt kernfs          /kern           kernfs  rw
     23  1.2.2.2  yamt ptyfs           /dev/pts        ptyfs   rw
     24  1.2.2.2  yamt procfs          /proc           procfs  rw
     25  1.2.2.2  yamt # mount /root as tmpfs on top of existing dir
     26  1.2.2.2  yamt tmpfs           /root.cow       tmpfs   rw,-s2M         0 0
     27  1.2.2.2  yamt /root.cow       /root           union   rw,hidden       0 0
     28  1.2.2.2  yamt # mount /etc as tmpfs on top of existing dir
     29  1.2.2.2  yamt tmpfs           /etc.cow        tmpfs   rw,-s12M        0 0
     30  1.2.2.2  yamt /etc.cow        /etc            union   rw,hidden       0 0
     31  1.2.2.2  yamt # mount /var as tmpfs on top of existing dir
     32  1.2.2.2  yamt tmpfs           /var.cow        tmpfs   rw,-s32M         0 0
     33  1.2.2.2  yamt /var.cow        /var            union   rw,hidden       - -
     34  1.2.2.2  yamt tmpfs           /tmp            tmpfs   rw,-s32M        0 0
     35  1.2.2.2  yamt /dev/cd0a       /cdrom          cd9660  ro,noauto
     36  1.2.2.2  yamt EOF
     37  1.2.2.2  yamt }
     38  1.2.2.2  yamt 
     39  1.2.2.2  yamt customize() {
     40  1.2.2.2  yamt ${sudo} cat >> ${mnt}/etc/rc.conf << EOF
     41  1.2.2.2  yamt # make sure we have the right rw filesystem at boot
     42  1.2.2.2  yamt critical_filesystems_local="/var.cow /var /etc.cow /etc /root.cow /root"
     43  1.2.2.2  yamt 
     44  1.2.2.2  yamt # Add local overrides below
     45  1.2.2.2  yamt #
     46  1.2.2.2  yamt dhcpcd=YES
     47  1.2.2.2  yamt sshd=YES
     48  1.2.2.2  yamt EOF
     49  1.2.2.2  yamt 
     50  1.2.2.2  yamt echo "${bar} making extra directories ${bar}"
     51  1.2.2.2  yamt for d in ${usermodedirs}; do
     52  1.2.2.2  yamt 	${sudo} mkdir -p ${mnt}/${d}
     53  1.2.2.2  yamt done
     54  1.2.2.2  yamt 
     55  1.2.2.2  yamt echo "${bar} customising /var/tmp ${bar}"
     56  1.2.2.2  yamt ${sudo} rm -rf ${mnt}/var/tmp
     57  1.2.2.2  yamt (cd ${mnt}/var && ${sudo} ln -s /tmp tmp)
     58  1.2.2.2  yamt 
     59  1.2.2.2  yamt # package-related stuff
     60  1.2.2.2  yamt (cat ${mnt}/etc/csh.cshrc;echo "setenv PKG_DBDIR /usr/pkg/.dbdir") > ${tmp}
     61  1.2.2.2  yamt ${sudo} mv ${tmp} ${mnt}/etc/csh.cshrc
     62  1.2.2.2  yamt (cat ${mnt}/etc/profile;echo "export PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
     63  1.2.2.2  yamt ${sudo} mv ${tmp} ${mnt}/etc/profile
     64  1.2.2.2  yamt (echo "PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
     65  1.2.2.2  yamt ${sudo} mv ${tmp} ${mnt}/etc/mk.conf
     66  1.2.2.2  yamt (cd ${mnt}/usr && ${sudo} ln -s /pkgs/usr/pkg pkg)
     67  1.2.2.2  yamt 
     68  1.2.2.2  yamt # last, customisation stage
     69  1.2.2.2  yamt if [ -d ${custom} ]; then
     70  1.2.2.2  yamt 	echo "${bar} user customisations from files in ${custom} ${bar}"
     71  1.2.2.2  yamt 	(cd ${custom} && ${sudo} pax -rwpe . ${mnt})
     72  1.2.2.2  yamt fi
     73  1.2.2.2  yamt 
     74  1.2.2.2  yamt df ${mnt}
     75  1.2.2.2  yamt }
     76  1.2.2.2  yamt 
     77  1.2.2.2  yamt cleanup() {
     78  1.2.2.2  yamt }
     79