summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/namespace4
-rwxr-xr-xrc/bin/cpurc7
-rwxr-xr-xrc/bin/termrc7
-rw-r--r--sys/src/9/boot/bootfs.proto1
-rwxr-xr-xsys/src/9/boot/bootrc8
-rw-r--r--sys/src/9/port/devroot.c1
6 files changed, 18 insertions, 10 deletions
diff --git a/lib/namespace b/lib/namespace
index 31e74bcfe..f98f62a2a 100644
--- a/lib/namespace
+++ b/lib/namespace
@@ -31,8 +31,8 @@ mount -a /srv/cs /net
mount -a /srv/dns /net
mount -a /srv/net /net
-mount -qC /srv/boot /n/other other
-bind -qc /n/other/usr/$user/tmp /usr/$user/tmp
+mount -C /srv/boot /n/other other
+bind -c /n/other/usr/$user/tmp /usr/$user/tmp
bind -c /usr/$user/tmp /tmp
cd /usr/$user
diff --git a/rc/bin/cpurc b/rc/bin/cpurc
index d20cf07e1..38d6745fb 100755
--- a/rc/bin/cpurc
+++ b/rc/bin/cpurc
@@ -8,10 +8,11 @@ for(i in m i P S t u '$')
mount -qb /srv/cons /dev
-# mount points
-mntgen -s slashn && chmod 666 /srv/slashn
+# mount points (if not done by bootrc already)
+>[2]/dev/null {
+mntgen -s slashn /n && chmod 666 /srv/slashn
mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt
-mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport
+mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport}
# move factotum from /mnt to /mnt/factotum
mount /srv/factotum /mnt/temp
diff --git a/rc/bin/termrc b/rc/bin/termrc
index cd40ec7a6..74b3566dd 100755
--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -9,10 +9,11 @@ rm -f /env/i
mount -qb /srv/cons /dev
-# mount points
-mntgen -s slashn && chmod 666 /srv/slashn
+# mount points (if not done by bootrc already)
+>[2]/dev/null {
+mntgen -s slashn /n && chmod 666 /srv/slashn
mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt
-mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport
+mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport}
# move factotum from /mnt to /mnt/factotum
mount /srv/factotum /mnt/temp
diff --git a/sys/src/9/boot/bootfs.proto b/sys/src/9/boot/bootfs.proto
index 02ca92979..6b1366b37 100644
--- a/sys/src/9/boot/bootfs.proto
+++ b/sys/src/9/boot/bootfs.proto
@@ -10,6 +10,7 @@ $objtype
bind
cat
cfs
+ chmod
cryptsetup
dd
disk
diff --git a/sys/src/9/boot/bootrc b/sys/src/9/boot/bootrc
index 09cbd4b79..b8c96cc17 100755
--- a/sys/src/9/boot/bootrc
+++ b/sys/src/9/boot/bootrc
@@ -1,6 +1,10 @@
#!/bin/rc
-mntgen -s slash /mnt
+# mount points
+mntgen -s slashn /n && chmod 666 /srv/slashn
+mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt
+mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport
+
bind /root /mnt/broot
unmount /root
@@ -229,5 +233,5 @@ while(){
# cleanup so it can be restarted
nobootprompt=()
- rm -f /srv/^(cfs boot slashn cs dns)
+ rm -f /srv/^(cfs boot cs dns)
} </dev/cons
diff --git a/sys/src/9/port/devroot.c b/sys/src/9/port/devroot.c
index 338432505..d125cd368 100644
--- a/sys/src/9/port/devroot.c
+++ b/sys/src/9/port/devroot.c
@@ -101,6 +101,7 @@ rootreset(void)
addrootdir("env");
addrootdir("fd");
addrootdir("mnt");
+ addrootdir("n");
addrootdir("net");
addrootdir("net.alt");
addrootdir("proc");