Trying do mount a slice containing a mounted partition makes the filesystem unreadable
Arrigo Marchiori
ardovm at yahoo.it
Sat Feb 27 13:00:38 UTC 2021
Hello Helge, Kevin, and thank you for replying.
On Sat, Feb 27, 2021 at 09:21:39AM +0100, Helge Oldach wrote:
> Kevin P. Neal wrote on Sat, 27 Feb 2021 03:04:35 +0100 (CET):
> > On Fri, Feb 26, 2021 at 06:25:05PM +0100, Helge Oldach wrote:
> > > Arrigo Marchiori via freebsd-stable wrote on Fri, 26 Feb 2021 17:02:35 +0100 (CET):
> > > > Description: when a BSD partition is mounted to / (suppose
> > > > /dev/da0s2a), if I try to mount its containing slice (/dev/da0s2) I
> > > > receive a ``strange'' error message, and from that moment the mounted
> > > > filesystem becomes unreadable.
> > >
> > > Actually you are mounting the same location on disk twice under
> > > different file systems which is a bad idea.
> > >
> > > For example:
> > >
> > > # gpart show -p ada0s2
> > > => 0 250064341 ada0s2 BSD (119G)
> > > 0 241172480 ada0s2a freebsd-ufs (115G)
> > > 241172480 8891861 ada0s2b freebsd-swap (4.2G)
> > >
> > > Note the "0" offset for both ada0s2 and ada0s2a. When you mount, both
> > > "look" like a proper, distinct UFS but actually it's the same location
> > > on disk so UFS will get confused if you have both mounted rw. It should
> > > go well however if only one is mounted rw and the other(s) ro.
I believe that the memstick images may not organized as you pointed
out. The standard behavior of mkimg(1) is to leave a small gap
between the beginning of the slice and the beginning of the first
partition. But I will be able to confirm on Monday, when I will be
back to the office.
> > Wait, really? It seems like the ro mount wouldn't see any blocks (or other
> > unit of data) cached by the rw mount. So the ro mount would see an
> > inconsistent filesystem and I personally would expect a crash or other
> > misbehavior.
>
> Of course the ro "view" will show inconistencies. That's actually what
> one asks for if doing such bad things as mounting volumes twice. However
> it shouldn't crash as the rw mount of / maintains consistency.
On the memstick, the root filesystem is mounted read-only. I
apologize, I should have told it explicitly. The ``invalid'' attempt
is to mount it read-write (no mode is indicated on the command line).
I did not try the mount command in read-only mode. I can try this on
Monday as well.
IMHO it is important to note that everything works as expected when
the partition is mounted from /dev/ufs/label: the mount attempt is
not permitted and nothing else happens.
Even if mounting an already-mounted partition is an invalid action, I
do not think that it should render a system unstable.
I understand that ``the root user should be allowed to do anything'',
even shoot themselves in the foot. But on the other hand, there are
features such as kern.geom.debugflags that explicitly avoid it.
I hope I could explain myself clearly.
Best regards,
--
Arrigo
http://rigo.altervista.org
More information about the freebsd-stable
mailing list