Summary: | 15-CURRENT installation fails when /usr is on seperate UFS volume | ||
---|---|---|---|
Product: | Base System | Reporter: | Michael Osipov <michaelo> |
Component: | bin | Assignee: | Dag-Erling Smørgrav <des> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | d8zNeCFG, des, michaelo, mp |
Priority: | --- | ||
Version: | 15.0-CURRENT | ||
Hardware: | Any | ||
OS: | Any | ||
URL: | https://reviews.freebsd.org/D44496 |
Description
Michael Osipov
![]() ![]() FWIW: I have tried some older ISO as well: same result. The issue is base.txz having hard links across filesystems (/ for /etc and /usr). This looks to have been introduced via the below commit where the install flags were changed from "-lrs" to "-lm". As "make distributeworld" creates the base directory on a single filesystem when certctl is run, "-lm" creates hard links which requires /etc and /usr/ to be on the same filesystem. https://github.com/freebsd/freebsd-src/commit/a401c8cb26b22688087ad7c5ee527718459df15a This patch should fix this specific issue. diff --git a/usr.sbin/certctl/certctl.sh b/usr.sbin/certctl/certctl.sh index 997a7d835d53..f95b4561d852 100755 --- a/usr.sbin/certctl/certctl.sh +++ b/usr.sbin/certctl/certctl.sh @@ -110,7 +110,7 @@ create_trusted() { local hash certhash otherfile otherhash local suffix - local link=${2:+-lm} + local link=${2:+-lrs} hash=$(do_hash "$1") || return certhash=$(openssl x509 -sha1 -in "$1" -noout -fingerprint) @@ -159,7 +159,7 @@ resolve_certname() create_untrusted() { local srcfile filename - local link=${2:+-lm} + local link=${2:+-lrs} set -- $(resolve_certname "$1") srcfile=$1 A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=3fed4f0db53a66a0135bea5c491431eb3348cf51 commit 3fed4f0db53a66a0135bea5c491431eb3348cf51 Author: Mark Peek <mp@FreeBSD.org> AuthorDate: 2024-03-25 15:58:46 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2024-03-25 15:59:02 +0000 certctl: Revert to symlinks. Unfortunately tar will not be able to extract base.txz to a system where /etc and /usr are not on the same filesystem if the certificates are hard links. PR: 277828 Reviewed by: mp Differential Revision: https://reviews.freebsd.org/D44496 usr.sbin/certctl/certctl.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) See also bug 275449 Thanks guys for the quick fix. Quite surprised that such a simple change can have such an impact. |