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