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