Date: Thu, 6 Apr 2000 21:39:23 +0200 From: Adrian Steinmann <ast@marabu.ch> To: freebsd-small@FreeBSD.ORG Cc: "Jonathan M. Bresler" <jmb@hub.freebsd.org>, jss@subatomix.com, Warner Losh <imp@village.org> Subject: Re: Mounting and Corruption Rehashed Message-ID: <200004061939.VAA08298@marabu.marabu.ch> In-Reply-To: <200004042047.OAA70876@harmony.village.org> References: <20000404204324.3155E37B8D6@hub.freebsd.org> <200004042047.OAA70876@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello small free-bsd-ers!
"Jonathan M. Bresler" <jmb@hub.freebsd.org> recently asked:
: how about sending out at how-to on this??
I can't stand lurking anymore, so here goes:
This is my special /etc/rc.conf:
root_rw_mount=NO
rootdev=fla0
diskless_mount=/etc/rc.readonly
etc_size=1536
home_size=1024
var_size=32768
and this is my special /etc/rc.readonly:
if [ -f /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
elif [ -f /etc/rc.conf ]; then
. /etc/rc.conf
fi
echo -n "Making writable mfs filesystems:"
mount_mfs -s ${var_size:=65536} -T qp120at dummy /var
while [ -e /var/.readonly ]; do sleep 1; done
for d in root log run db msgs cron cron/tabs spool spool/mqueue \
tmp tmp/vi.recover at at/jobs at/spool
do
mkdir /var/$d && chmod 755 /var/$d
done
chmod 755 /var
chmod 1777 /var/tmp /var/tmp/vi.recover
chown daemon /var/at/jobs /var/at/spool
touch /var/run/utmp && chmod 644 /var/run/utmp
touch /var/log/wtmp && chmod 664 /var/log/wtmp
(cd /root && tar cBf - . | (cd /var/root && tar xBf -))
echo -n " var"
cp /dev/MAKEDEV /var/tmp
mount_mfs -s 256 -i 512 -T qp120at dummy /dev
while [ -f /dev/.readonly ]; do sleep 1; done
cp /var/tmp/MAKEDEV /dev && rm -f /var/tmp/MAKEDEV
cd /dev && sh MAKEDEV std ${rootdev} ${rootdev}s1h vty12 pty0 ttyd0 ttyd1
echo -n " dev"
for d in etc home
do
(cd /$d && tar cBf - .) > /var/tmp/$d.tar
eval mount_mfs -s \${${d}_size:=1024} -T qp120at dummy /$d
while [ -e /$d/.readonly ]; do sleep 1; done
(cd /$d && tar xBf /var/tmp/$d.tar)
rm -f /var/tmp/$d.tar && echo -n " $d"
done
echo
You should see this when you come up:
$ mount -p
/dev/fla0s1a / ufs ro 1 1
mfs:28 /var mfs rw,async 0 0
mfs:73 /dev mfs rw,async 0 0
mfs:816 /etc mfs rw,async 0 0
mfs:822 /home mfs rw,async 0 0
It's not so surprising that by turning just those two knobs we have a
flash system which doesn't gradually self destruct since its mounted
read-only.
When you remount / rread-write to update, just reboot and get on
with it (remounting ro works, but can we trust it?).
Shall we get /etc/rc.readonly and a special /etc/rc.conf section
mentioning "how to" put into the main distribution?
_________________________________________________________________________
Dr. Adrian Steinmann Steinmann Consulting Apollostrasse 21 8032 Zurich
Tel +41 1 380 30 83 Fax +41 1 380 30 85 Mailto:ast@marabu.ch
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-small" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004061939.VAA08298>
