summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphilip <philip@FreeBSD.org>2005-07-25 08:40:13 +0000
committerphilip <philip@FreeBSD.org>2005-07-25 08:40:13 +0000
commitf6a2d54d4e1d261864af5edc92e8d460f5900937 (patch)
tree69caf1d1295b51192f04ee539b2f26bdb2843e5f
parent1384eaf756f485ea32115bc2fd29781c9d34b6ae (diff)
downloadFreeBSD-src-f6a2d54d4e1d261864af5edc92e8d460f5900937.zip
FreeBSD-src-f6a2d54d4e1d261864af5edc92e8d460f5900937.tar.gz
Add fstab entries for ALTROOTSLICE and CFGSLICE, allowing us to do away with
most of the hardcoding of device names in installed convenience scripts. Provide a new script (root/updatep) to easily update the ALTROOTSLICE. It does the same as updatep1/updatep2 without hardcoded device names. If noone protests, I'd like to get rid of updatep1/updatep2 at some point. As an extra bonus: turn on the error led while updating (on hardware with a led).
-rw-r--r--tools/tools/nanobsd/Files/root/change_password4
-rw-r--r--tools/tools/nanobsd/Files/root/save_sshkeys4
-rw-r--r--tools/tools/nanobsd/Files/root/updatep25
-rw-r--r--tools/tools/nanobsd/i386.diskimage10
4 files changed, 37 insertions, 6 deletions
diff --git a/tools/tools/nanobsd/Files/root/change_password b/tools/tools/nanobsd/Files/root/change_password
index aae27f5c..17ac794 100644
--- a/tools/tools/nanobsd/Files/root/change_password
+++ b/tools/tools/nanobsd/Files/root/change_password
@@ -10,6 +10,8 @@ set -ex
passwd root
-mount /dev/ad0s3 /mnt
+cfgslice=`grep '/cfg' /etc/fstab | cut -d \ -f 1`
+
+mount -o rw $cfgslice /mnt
cp /etc/master.passwd /etc/passwd /etc/pwd.db /etc/spwd.db /etc/group /mnt
umount /mnt
diff --git a/tools/tools/nanobsd/Files/root/save_sshkeys b/tools/tools/nanobsd/Files/root/save_sshkeys
index 19bb8cd..609fa29 100644
--- a/tools/tools/nanobsd/Files/root/save_sshkeys
+++ b/tools/tools/nanobsd/Files/root/save_sshkeys
@@ -8,7 +8,9 @@
set -ex
-mount /dev/ad0s3 /mnt
+cfgslice=`grep '/cfg' /etc/fstab | cut -d \ -f 1`
+
+mount -o rw $cfgslice /mnt
mkdir -p /mnt/ssh
(
cd /etc/ssh
diff --git a/tools/tools/nanobsd/Files/root/updatep b/tools/tools/nanobsd/Files/root/updatep
new file mode 100644
index 0000000..b308cc9
--- /dev/null
+++ b/tools/tools/nanobsd/Files/root/updatep
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Script to update the ALTROOTSLICE on NanoBSD systems.
+#
+# usage:
+# mdconfig -a -t vnode -f _.i.s1
+# ssh somewhere sh updatep < /dev/md0a
+# mdconfig -d -u 0
+#
+
+set -e
+
+altslice=`grep /alt /etc/fstab | cut -d \ -f 1`
+
+if mount | grep $altslice > /dev/null ; then
+ echo "You have $altslice mounted, unmount it first"
+ exit 1
+fi
+
+(echo 1 >/dev/led/error) 2>/dev/null || true
+dd of=$altslice obs=64k
+boot0cfg -s 1 -v ad0
+(echo 0 >/dev/led/error) 2>/dev/null || true
diff --git a/tools/tools/nanobsd/i386.diskimage b/tools/tools/nanobsd/i386.diskimage
index 678db72..f722e45 100644
--- a/tools/tools/nanobsd/i386.diskimage
+++ b/tools/tools/nanobsd/i386.diskimage
@@ -34,8 +34,10 @@ TMPFILE1=`mktemp -t nanobsd`
TMPMNT=`mktemp -d -t nanobsd`
make_fstab () {
- echo "/dev/$1 / ufs ro 1 1" > $2/etc/fstab
- ln -f $2/etc/fstab $2/conf/base/etc/fstab
+ echo "/dev/$1 / ufs ro 1 1" > $4/etc/fstab
+ echo "/dev/$2 /alt ufs ro,noauto 1 1" >> $4/etc/fstab
+ echo "/dev/$3 /cfg ufs ro,noauto 1 1" >> $4/etc/fstab
+ ln -f $4/etc/fstab $4/conf/base/etc/fstab
}
get_label () {
@@ -89,7 +91,7 @@ bsdlabel -w -B ${MD}s1
newfs ${NEWFSPARAM} ${PRIROOTLABEL} -O1 -U ${MD}s1a
mount /dev/${MD}s1a ${TMPMNT}
(cd ${WD} && find . -print | cpio -dump ${TMPMNT}) || true
-make_fstab ${PRIROOTSLICE} ${TMPMNT}
+make_fstab ${PRIROOTSLICE} ${ALTROOTSLICE} ${CFGSLICE} ${TMPMNT}
df -i ${TMPMNT}
umount ${TMPMNT}
@@ -100,7 +102,7 @@ if [ -n "${ALTROOTLABEL}" ]; then
tunefs ${ALTROOTLABEL} /dev/${MD}s2a
fi
mount /dev/${MD}s2a ${TMPMNT}
-make_fstab ${ALTROOTSLICE} ${TMPMNT}
+make_fstab ${ALTROOTSLICE} ${PRIROOTSLICE} ${CFGSLICE} ${TMPMNT}
umount ${TMPMNT}
# Prepare configuration slice
OpenPOWER on IntegriCloud