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