Subject: Re: shooting oneself in the foot
To: None <email@example.com>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
Date: 01/16/2002 16:11:28
>> disklabel(8) should not be allowing modifications of mounted
>> filesystems (by checking at write time).
> Ok, My system has been running with root on wd0a, I've generated a
> new root filesystem (say for a new version of netbsd) on wd0h. [...]
> So what I want to do is swap over wd0a and wd0h on the disklabel and
There are two disklabels here: the on-disk one and the in-core one.
Modifying the in-core one in such a way as to move a mounted filesystem
is a Dangerous Thing and hence arguably shouldn't be allowed.
Modifying the on-disk one _without_ modifying the in-core one is a much
more reasonable thing to do, and is probably what you want here.
If disklabel(8) can't do it, that's a deficiency in disklabel(8). I'd
use bsdlabel (which I wrote for frobbing BSD disklabels even on
machines whose kernels don't grok them) for this. You'll need
something of the sort (to write disklabels the kernel doesn't grok) for
> NetBSD# cd /usr/mdec
> NetBSD# ./installboot bootbios.sym /dev/rwd0h
That might make it boot from wd0h. It wouldn't achieve the stated goal
(which is to swap the name->partition mapping so that you still call
your boot partition wd0a, but it's the piece of the disk that used to
be called wd0h).
> boot single user, read-only root, do your mucking/mirroring, swap the
> disklabel then reboot...
Not enough - you're still mucking with a mounted partition. Moving
partitions out from under a read-only fs is almost as dangerous as a
read-write fs. (You might not corrupt the disk, but you quite likely
will panic the system.)
Those said, for what little it may be worth, I am opposed to anything
more than a warning when doing this. Changing disklabels, to me, is a
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML firstname.lastname@example.org
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B