vmd(8)/vmctl(8): allow vm owners to override boot kernel.
authordv <dv@openbsd.org>
Fri, 28 Apr 2023 19:46:41 +0000 (19:46 +0000)
committerdv <dv@openbsd.org>
Fri, 28 Apr 2023 19:46:41 +0000 (19:46 +0000)
commitb848b186fe256cbe9863f7f0861d64dc44120142
treeb2cdc8a09e30c5708014e74f70a7cdbcf5c64dd6
parente6a9832747f6c52442e24e3f63a8a55b68d3d016
vmd(8)/vmctl(8): allow vm owners to override boot kernel.

vmd allows non-root users to "own" a vm defined in vm.conf(5). While
the user can start/stop the vm, if they break their filesystem they
have no means of booting recovery media like a ramdisk kernel.

This change opens the provided boot kernel via vmctl and passes the
file descriptor through the control channel to vmd. The next boot
of the vm will use the provided file descriptor as boot kernel/bios.
Subsequent boots (e.g. a reboot) will return to using behavior
defined in vm.conf or the default bios image.

ok mlarkin@
usr.sbin/vmctl/main.c
usr.sbin/vmctl/vmctl.c
usr.sbin/vmd/config.c
usr.sbin/vmd/control.c
usr.sbin/vmd/parse.y
usr.sbin/vmd/vm.c
usr.sbin/vmd/vmd.c
usr.sbin/vmd/vmd.h