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