Re: git: 900bc0206348 - main - rc.d/zpool: change mountcritlocal dep from BEFORE to REQUIRE
Date: Sat, 14 Jun 2025 06:29:06 UTC
In message <202506131548.55DFmqnu004627@gitrepo.freebsd.org>, Warner Losh
write
s:
> The branch main has been updated by imp:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=900bc0206348a439b3a0625a7239cb87
> a2dc27c5
>
> commit 900bc0206348a439b3a0625a7239cb87a2dc27c5
> Author: Siva Mahadevan <me@svmhdvn.name>
> AuthorDate: 2025-03-14 15:52:12 +0000
> Commit: Warner Losh <imp@FreeBSD.org>
> CommitDate: 2025-06-13 15:47:25 +0000
>
> rc.d/zpool: change mountcritlocal dep from BEFORE to REQUIRE
>
> In cases where the `/boot` directory is mounted from a different disk,
> `/boot/zfs/zpool.cache` will not be found during a `rc.d/zpool`
> run. This is because `/etc/fstab` mounts are mounted in
> `rc.d/mountcritlocal`, which currently runs AFTER (i.e. `REQUIRE:`)
> `rc.d/zpool`.
>
> This change swaps the `rcorder` of `rc.d/zpool`'s dependency on
> `mountcritlocal` from `BEFORE:` to `REQUIRE:`. This will ensure that
> `/boot` (or even `/etc/` in some configurations) to be visible while
> searching for `zpool.cache`.
>
> Reviewed by: imp
> Pull Request: https://github.com/freebsd/freebsd-src/pull/1614
> Closes: https://github.com/freebsd/freebsd-src/pull/1614
> ---
> libexec/rc/rc.d/zpool | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/libexec/rc/rc.d/zpool b/libexec/rc/rc.d/zpool
> index 94e107bd9ae0..63f040ad122b 100755
> --- a/libexec/rc/rc.d/zpool
> +++ b/libexec/rc/rc.d/zpool
> @@ -3,8 +3,7 @@
> #
>
> # PROVIDE: zpool
> -# REQUIRE: hostid disks
> -# BEFORE: mountcritlocal
> +# REQUIRE: hostid disks mountcritlocal
> # KEYWORD: nojail
>
> . /etc/rc.subr
>
This causes systems which boot off UFS with ZFS to fail boot. The machine
drops into single user until one can /etc/rc.d/zpool start and hit
control-d to continue the boot.
The reason this fails is /etc/fstab with legacy ZFS will no longer boot
into multiuser.
slippy$ grep zfs /etc/fstab | head
# tank/usr/lib/debug/amd64 /usr/lib/debug zfs rw,noatime
0 0
tank/sfw/modules /boot/modules zfs rw,noatime 0 0
tank/sfw/local /usr/local zfs rw,noatime 0 0
tank/sfw/compat /usr/compat zfs rw,noatime 0 0
tank/sfw/var/lib /var/lib zfs rw,noatime 0 0
tank/sfw/var/db/pkg /var/db/pkg zfs rw,noatime 0 0
tank/sfw/var/db/ports /var/db/ports zfs rw,noatime 0 0
tank/var/db/mysql /var/db/mysql zfs rw,noatime 0 0
tank/db/pgsql /var/db/postgres zfs rw,noatime 0 0
tank/var/db/local /var/db/local zfs rw,noatime 0 0
slippy$
Please revert this.
--
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX: <cy@FreeBSD.org> Web: https://FreeBSD.org
NTP: <cy@nwtime.org> Web: https://nwtime.org
e**(i*pi)+1=0