Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2022 12:55:22 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        Free BSD <freebsd-arm@freebsd.org>
Subject:   Re: Mountroot problems on RPi3/aarch64
Message-ID:  <54365257-9DA2-4058-9354-B5D76E7AAC70@yahoo.com>
In-Reply-To: <20220621192448.GA1874@www.zefox.net>
References:  <20220601154142.GA41835@www.zefox.net> <5FA108CF-0973-4A53-A3B7-FA7BE41EB16D@yahoo.com> <20220601214401.GA42494@www.zefox.net> <20220602045202.GA44686@www.zefox.net> <1B845A0C-EDDC-407C-96A8-AAF4E92C2A4D@yahoo.com> <20220613153325.GA12588@www.zefox.net> <50CE21C4-CBE5-4ECB-A27E-42B7AAF71822@yahoo.com> <CE0A908C-EFF3-455D-B303-BCC56C95EAB1@yahoo.com> <20220619042225.GA2267@www.zefox.net> <3458F90E-CFC9-4B91-8C4A-DD5788239172@yahoo.com> <20220621192448.GA1874@www.zefox.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2022-Jun-21, at 12:24, bob prohaska <fbsd@www.zefox.net> wrote:

> On Sun, Jun 19, 2022 at 02:20:35PM -0700, Mark Millard wrote:
>> On 2022-Jun-18, at 21:22, bob prohaska <fbsd@www.zefox.net> wrote:
>>=20
>>> On Sat, Jun 18, 2022 at 03:54:19PM -0700, Mark Millard wrote:
>>>> I finally started my round of updates from:
>>>>=20
>>>> main-n255745-77649f35a7e5-dirty: Sat May 21 18:48:32 PDT 2022
>>>>=20
>>>> to:
>>>>=20
>>>> main-n256189-4014365e4219-dirty: Sat Jun 18 01:47:44 PDT 2022
>>>>=20
>>>> So far all the UFS media that I've tried (older and newer)
>>>> have worked fine with the update, including fsck_ffs not
>>>> finding any problems.
>>>>=20
>>>> It does not appear that I'll end up replicating your problem.
>>>>=20
>>>=20
>>> When one invokes fsck at the single-user root prompt what actually
>>> gets used on a UFS filesystem? Maybe I've got a name problem.....
>>>=20
>>=20
>> The below is for a single-user boot, showing:
>>=20
>> A) That / is already read-only at that point
>> B) A fsck_ffs that just reports (no repairs)
>> C) A fsck_ffs that repairs (and reports)
>>=20
>=20
> My question is perhaps more naive than you expected 8-)
>=20
> I'm just asking how we get to fsck_ffs (or _whatever) from
> fsck. There's no explanation I recognize in the fsck man
> page, though fsck_ffs is mentioned in the fsck man page.

One way to notice the fsck_ffs man page:

# man -k fsck
git-fsck(1) - Verifies the connectivity and validity of the objects in =
the database
git-fsck-objects(1) - Verifies the connectivity and validity of the =
objects in the database
fsck(8) - file system consistency check and interactive repair
fsck_ffs, fsck_ufs, fsck_4.2bsd(8) - file system consistency check and =
interactive repair
fsck_msdosfs(8) - DOS/Windows (FAT) file system consistency checker

fsck_ffs is a separate command. fsck is a wrapper that can
put fsck_ffs to use:

QUOTE (from man fsck)
HISTORY
     A fsck utility appeared in 4.0BSD.  It was reimplemented as a =
filesystem
     independent wrapper in NetBSD 1.3 and first appeared in FreeBSD =
5.0.  The
     original filesystem specific utility became fsck_ffs(8) at this =
point.
END QUOTE

QUOTE (from man fsck)
     -T fstype:fsoptions
             List of comma separated file system specific options for =
the
             specified file system type, in the same format as mount(8).
END QUOTE

Using fsck_ffs directly has more explicit options, such as:

QUOTE (from man fsck_ffs)
     -E      Clear unallocated blocks, notifying the underlying device =
that
             they are not used and that their contents may be discarded. =
 This
             is useful for filesystems which have been mounted on =
systems
             without TRIM support, or with TRIM support disabled, as =
well as
             filesystems which have been copied from one device to =
another.

             See the -E and -t flags of newfs(8), and the -t flag of
             tunefs(8).
END QUOTE


>> The context that was handy was not a RPi* but that
>> should not matter.
>>=20
>> Note that I avoid being the one to type a device
>> path to the root partition: I just use "/" and let it
>> find the partition it is already using for the
>> boot sequence.
>=20
> My habit has so far been the reverse, on the notion
> that if root isn't where I expect I'd like to know.

I took the context as requiring that I (first?) check
that the boot file system in actual use. Later other
checks might be done.

> Next time things don't work as expected I'll try /.
>=20
>>=20
>> . . .
>> Enter full pathname of shell or RETURN for /bin/sh:=20
>> # mount
>> /dev/gpt/CA72optM2ufs on / (ufs, local, noatime, read-only)
>> devfs on /dev (devfs)
>> # fsck_ffs -n /
>> ** /dev/gpt/CA72optM2ufs (NO WRITE)
>> ** Last Mounted on /
>> ** Root file system
>> ** Phase 1 - Check Blocks and Sizes
>> ** Phase 2 - Check Pathnames
>> ** Phase 3 - Check Connectivity
>> ** Phase 4 - Check Reference Counts
>> ** Phase 5 - Check Cyl groups
>> 2019019 files, 45278396 used, 116718936 free (345928 frags, 14546626 =
blocks, 0.2% fragmentation)
>> # fsck_ffs -y /
>> ** /dev/gpt/CA72optM2ufs
>> ** Last Mounted on /
>> ** Root file system
>> ** Phase 1 - Check Blocks and Sizes
>> ** Phase 2 - Check Pathnames
>> ** Phase 3 - Check Connectivity
>> ** Phase 4 - Check Reference Counts
>> ** Phase 5 - Check Cyl groups
>> 2019019 files, 45278396 used, 116718936 free (345928 frags, 14546626 =
blocks, 0.2% fragmentation)
>>=20
>> ***** FILE SYSTEM IS CLEAN *****
>> #=20
>>=20
>> I will note the warning about -y use (in the man page for
>> fsck_ffs):
>>=20
>>     -y      Assume a yes response to all questions asked by fsck_ffs; =
this
>>             should be used with great caution as this is a free =
license to
>>             continue after essentially unlimited trouble has been
>>             encountered.
>>=20
>> So, if at some point you had -y "repair" a large number
>> of issues, it might have included bad repairs based on
>> already bad data. (Such could be an automatic repair,
>> rather than one manually run.)
>>=20
>> However, the (lack of) background knowledge for answering
>> each question and the volume of questions that can
>> happen, tends to lead to -y use, even for manual runs.
>>=20
>>=20
>=20
> I've never seen any discussion of how to answer fsck's questions
> and thought the knowldege required became extinct with the end of
> ST506 disks 8-)

I assume that the primary folks that work on UFS
changes (and historically did so) would have a
clue.

>> Note: recovering from a building power outage sequence
>>      and other issues delayed getting to this.
>>=20
>> But the power outage sequence happened after a 8 GiByte
>> RPi4B had spent between 17 and 18 hours short of 3 weeks
>> working on a "bulk -a -c", having built 16343 ports (and
>> 171 failures) in the UFS context. The automatic fsck
>> that happened once power stayed on took a rather long
>> time for the large number of repairs involved, likely
>> slowed by the serial console scrolling the reports.
>>=20
>> (The bulk run was an experiment with building for armv7
>> and the results were not to be kept.)
>>=20
>>=20
>> Side note on RPi2's/RPI3's:
>>=20
>> https://docs.fedoraproject.org/en-US/quick-docs/raspberry-pi/
>>=20
>> reports for Fedora's default configuration choices:
>>=20
>> QUOTE
>> The serial console is disabled by default on the Raspberry Pi 2
>> and 3 because it requires the device to run at significantly
>> slower speeds.
>> END QUOTE
>>=20
>=20
> That's quite a surprise.=20
>=20



=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54365257-9DA2-4058-9354-B5D76E7AAC70>