Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Sep 2023 09:12:00 -0700
From:      Chris <bsd-lists@bsdforge.com>
To:        Guido Falsi <mad@madpilot.net>
Cc:        Jason Bacon <bacon4000@gmail.com>, freebsd-hackers@freebsd.org
Subject:   Re: Single-user actions on reboot
Message-ID:  <e5a3b651c3e1e6f74b8114ce8822c929@bsdforge.com>
In-Reply-To: <67d9160e-c1fc-4e60-93fb-8c18afc2ac41@madpilot.net>
References:  <b70d24e3-ce25-f2fb-1f0f-9526f16173b0@gmail.com> <67d9160e-c1fc-4e60-93fb-8c18afc2ac41@madpilot.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2023-09-29 06:49, Guido Falsi wrote:
> On 29/09/23 15:21, Jason Bacon wrote:
>> 
>> I'm wondering if there's a canonical way to schedule a command to run 
>> automatically during the next boot cycle, but before going multiuser.
>> 
>> This would be useful, for example, to run certain tunefs commands on /, 
>> which can only be done in single-user mode, on remotely managed systems.
>> 
>> Running things after going multiuser is easy, of course, but not sufficient 
>> for tunefs commands that cannot be performed on a filesystem mounted rw.
>> 
>> Thanks...
>> 
> 
> AFAIK there is no ready made tool in base (or ports) for that.
> 
> But ezjail uses this trick with rc scripts (removing itself):
> 
> https://erdgeist.org/gitweb/ezjail/tree/examples/example/etc/rc.d/ezjail.flavour.example
> 
> This is effective but requires the disk mounted r/w which maybe is not 
> enough for you.
> 
> Problem is, without any writable media mounted, how can any script register 
> it has
> already ran?
> 
> One idea that comes to mind is adding some hook to the main rc script, 
> before
> mounting disk r/w, and a second script that removes existing hooks once 
> disks are
> r/w.
Indeed. Maybe at the same point the system tastes the disk(s) to see if 
they've been dismounted
properly and then running fsck(8) if not. Using the same method to perform 
your task(s)?

--Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e5a3b651c3e1e6f74b8114ce8822c929>