Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jan 2023 12:04:38 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Mike Karels <karels@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: git: 8664e266d6a4 - main - growfs(7): clarify assumptions and limitations
Message-ID:  <91eca973-ca30-2e0d-d421-aaa729192c25@grosbein.net>
In-Reply-To: <202301060044.3060iOli020349@gitrepo.freebsd.org>
References:  <202301060044.3060iOli020349@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
06.01.2023 7:44, Mike Karels wrote:

> The branch main has been updated by karels:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=8664e266d6a4573d1875ee8f4ce0cdb091171780
> 
> commit 8664e266d6a4573d1875ee8f4ce0cdb091171780
> Author:     Mike Karels <karels@FreeBSD.org>
> AuthorDate: 2023-01-05 13:15:21 +0000
> Commit:     Mike Karels <karels@FreeBSD.org>
> CommitDate: 2023-01-06 00:44:16 +0000
> 
>     growfs(7): clarify assumptions and limitations
>     
>     Document that the growfs(7) script works only if the root file system
>     is in the last partition and free space immediately follows it.
>     Don't imply that /usr can be a separate partition, as that would
>     likely mean that root is not last.
>     
>     Reported by:    marklmi at yahoo dot com

Meantime, growfs(8) binary command living in /sbin successfully growfs root file system
being NOT last, if there is following free space immediately after it.

I use that feature occasionally dealing with installworld problem for systems installed
long time ago (pre-date introduction of Clang in FreeBSD)
when distinct root and /usr partitions sized 512MB were more than enough.

For example:

swap partition (b) 8GB
root partition (a) 512MB
/usr partition (d) 512MB
others including /usr/local, /home etc...

For major source based upgrade 512MB is not enough to hold new /usr contents,
so I temporary destroy swap partition at the beginning and recreate it 1GB less to make hole
that is used to create alternative 1GB sized partition temporary mounted as /mnt/usr.
I dump|restore /usr to /mnt/usr, change /etc/fstab to mount new partition as /usr
and not mount old one at all, and reboot. After that:

swap partition (b) 7GB
/usr partition (g) 1GB
root partition (a) 512MB
former /usr partition (d) 512MB
others...

Then I destroy partition (d) making free space immediately following root partition
that is NOT last one. And growfs(8) works on mounted r/w root just fine.
That worked every time I tried.

I wonder why growfs(7) should have the limitation described in cited commit.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?91eca973-ca30-2e0d-d421-aaa729192c25>