Trying do mount a slice containing a r/o mounted partition makes the filesystem unreadable
Arrigo Marchiori
ardovm at yahoo.it
Thu Mar 4 07:37:20 UTC 2021
Dear All,
On Tue, Mar 02, 2021 at 10:55:15AM +0200, Andriy Gapon wrote:
> On 02/03/2021 09:50, Arrigo Marchiori via freebsd-stable wrote:
> > Dear All,
> >
> > On Sat, Feb 27, 2021 at 04:34:52PM +0100, Arrigo Marchiori via freebsd-stable wrote:
> >
> >> Hello Helge, and thank you for replying again.
> >>
> >> On Sat, Feb 27, 2021 at 03:43:52PM +0100, Helge Oldach wrote:
> >>
> >>> Arrigo Marchiori via freebsd-stable wrote on Sat, 27 Feb 2021 14:00:24 +0100 (CET):
> >>>> 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).
> >>>
> >>> Try to make it r/w mounted (which I suspect you are attempting to
> >>> achieve):
> >>>
> >>> mount -uw /
> >>
> >> Ok, I will try this.
> >>
> >> But just for the record: I am not try to achieve anything. I gave the
> >> ``invalid'' mount command by mistake (I wanted to mount a partition
> >> from another disk and wrote "da0" instead of "da1") and I saw that the
> >> system became unstable. I thought that this should not happen and I
> >> reported it here.
> >
> > I have two updates.
> >
> > 1- the da0s2a slice starts 16 (blocks?) after the beginning of da0s2.
> > bsdlabel(8) output (copied by hand):
> > # /dev/da0s2:
> > 8 partitions:
> > # size offset fstype [fsize bsize bps/cpg]
> > a: 1491200 16 4.2BSD 0 0 0
> > c: 1491216 0 unused 0 0 # "raw" part, don't edit
> >
> > 2- if I mount the partition rw, then the mount command _always_ fails
> > with error "operation not permitted" and the system _always_ remains
> > stable. This is independent from mounting from /dev/ufs/label or
> > /dev/da0s2a.
> >
> > Therefore I can change the description of this problem report as:
> >
> > ----8<--------8<--------8<--------8<--------8<--------8<--------8<---------
> >
> > When a BSD partition is mounted _read_only_ 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.
> >
> > - If the partition is mounted from /dev/ufs/label, then mount(8)
> > reports "Operation not permitted" and the system remains stable.
> > This is the expected behavior IMHO.
> >
> > - If the partition is mounted read_write, from any special device,
> > then mount(8) reports:
> > - "Operation not permitted" if I try to mount the slice rw,
> > - the same strange error message if I try to mount the slice ro,
> > and the system remains stable.
> >
> > - The "strange error message" is "invalid argument" on 11.4-STABLE.
> >
> > ----8<--------8<--------8<--------8<--------8<--------8<--------8<---------
> >
> > Now to the question: is this worth a PR? Was it already reported? Or
> > is it just something that ``should not happen'' because root should be
> > allowed to shoot themselves in the foot?
> >
> > Thank you in advance and best regards,
>
> I think that this is worth a PR.
Just reported:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254005
> I think that even when mounting read-only the underlying GEOM object should be
> marked for exclusive use.
> I vaguely recall that UFS has some quirk in this respect to allow for
> modifications by fsck. That is supposed to be limited to the root filesystem.
> Maybe it should further be limited to certain boot stages to prevent
> foot-shooting after a system is fully booted.
Thank you and best regards,
--
Arrigo
http://rigo.altervista.org
More information about the freebsd-stable
mailing list