From e378d97eeb2b8961f312cc04d4751579a7b70741 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sun, 26 Apr 2026 13:28:05 +0300 Subject: [PATCH] init.8: add RECOVERING section Reviewed by: imp, jilles Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D56536 --- sbin/init/init.8 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/sbin/init/init.8 b/sbin/init/init.8 index f86adf53b361..85b1db2ddf06 100644 --- a/sbin/init/init.8 +++ b/sbin/init/init.8 @@ -401,6 +401,41 @@ Specifies the path used to search for the init binary. More than one binary can be listed in the string, candidate file names are split by the \[lq]:\[rq] separator. Each name is opened in sequence until a valid executable is found. +.Sh RECOVERING +If the +.Pa /sbin/init +binary is broken or cannot be executed by the current kernel, +recovery requires console access. +Then, the +.Va init_path +loader tunable can be used to specify alternative +.Nm +location. +.Pp +By default, system install leaves copy of the previous +.Nm init +binary at +.Pa /sbin/init.bak , +and this path is set as one component of the default +.Va init_path . +.Pp +If +.Nm +cannot be run, the +.Fx +version of +.Xr sh 1 +has a special provision for running as PID 1. +If the shell detects that it is running as init, it opens +.Pa /dev/console +as it standard input and output and enters the +command loop. +.Pp +The session should be exited using +.Ic reboot Fl q +or exec-ing fixed +.Nm , +since a normal exit will cause a kernel panic. .El .Sh FILES .Bl -tag -width /var/log/init.log -compact