Re: How to supervise an early process [root pivot]

From: Jan Bramkamp <>
Date: Tue, 21 Jun 2016 17:29:53 +0200

On 21/06/16 16:24, Martin "eto" Misuth wrote:
> On Tue, 21 Jun 2016 14:45:59 +0200
> Laurent Bercot <> wrote:
>> ...
>> With udevd, the workaround is to kill it after you have performed the
>> coldplug, and only restart it as part of your normal boot sequence once
>> you have pivot_rooted. It can be supervised at this point.
> Thank you! Especially for mdev coldplug process description!
> I asked, because it seems FreeBSD will be getting pivot_root like
> capabilities soon. This makes it more similar to Linux in a way. And opens
> some weekends for tinkering. It also introduces remote posibility of situation
> like described actually happening there too.

FreeBSD 10.3 (the latest release as of writing) includes rerooting
support. By passing the rerooting flag to the reboot systemcall the
userland can tell the kernel to start the usual shutdown (kill all
processes including init, unmount all filesystems including "/") and
after unmounting the root filesystem the kernel performs a "userland
reboot" by mounting a new root filesystem and starting a new init process.

There are lots of usecases for this e.g. configure the in-kernel iSCSI
initiator from a small netboot image and switch to an iSCSI LUN as root
file system. An other example are full disc encrypted systems without
trusted system console. In that case you can use a minimal unencrypted
system to unlock the encrypted disks and reroot into your encrypted devices.

Use kenv vfs.root.mountfrom="<fstype>:<device>" to set the filesystem
type and device path before you invoke "reroot -r".
Received on Tue Jun 21 2016 - 15:29:53 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC