sortix-mirror/sysinstall/sysmerge.8

147 lines
3.3 KiB
Groff

.Dd February 14, 2016
.Dt SYSMERGE 8
.Os
.Sh NAME
.Nm sysmerge
.Nd upgrade current operating system from a sysroot
.Sh SYNOPSIS
.Nm sysmerge
.Op Fl cfw
.Op Fl \-booting
.Op Fl \-hook-finalize
.Op Fl \-hook-prepare
.Ar source
.Sh DESCRIPTION
.Nm
upgrades the current operating system by copying the system files from the
specified
.Ar source
directory (usually a sysroot) onto the current root filesystem.
This is meant to be used when building the operating system from source as
described in
.Xr development 7 .
.Pp
.Nm
installs the
.Sy system
manifest from the tix repository in the
.Ar source
directory, as well as all the ports found.
If a full upgrade is done, then all ports not found will be uninstalled.
Upgrade hooks will be run if further actions are needed to migrate the system to
the new version as described in
.Xr following-development 7 .
The
.Xr initrd 7
is regenerated using
.Xr update-initrd 8 .
If grub is enabled in
.Xr upgrade.conf 5 ,
then the bootloader is reinstalled and reconfigured as needed.
.Pp
.Nm
is an automatic and non-interactive upgrade.
It is meant to be used as part of the development process to upgrade to locally
built versions.
The
.Xr sysupgrade 8
program is by contrast an interactive program.
.Pp
The options are as follows:
.Bl -tag -width "12345678"
.It Fl \-booting
It's boot time, complete the system upgrade that was delayed.
This is meant to be used by
.Xr init 8
through the
.Sy merge
boot target.
This installs the
.Pa /sysmerge
directory onto the root filesystem and removes the
.Pa /sysmerge
directory.
.It Fl c , Fl \-cancel
Cancel a pending upgrade that would trigger on the next boot.
Remove the
.Pa /sysmerge
directory and restore the old
.Xr kernel 7
and
.Xr initrd 7 .
.It Fl f , Fl \-full
Full system upgrade that uninstalls ports not present in the
.Ar source
directory.
.It Fl \-hook-finalize
Run the post-upgrade hooks.
This is meant to be used by the old
.Nm
when it invokes the new
.Nm
during a non-waiting upgrade.
.It Fl \-hook-prepare
Run the pre-upgrade hooks.
This is meant to be used by the old
.Nm
when it invokes the new
.Nm
during a non-waiting upgrade.
.It Fl w , Fl \-wait
Wait until the next boot to complete the upgrade, rather than finishing it now.
This installs into the
.Pa /sysmerge
directory instead and replaces the
.Xr kernel 7
with the new kernel
and
.Xr initrd 7
with an initrd that runs
.Sy /sysmerge/sbin/sysmerge --booting
on boot through the
.Sy chain-merge
.Xr init 8
boot target.
Backups are made of the
.Xr kernel 7
and
.Xr initrd 7
such that the operation can be rolled back.
.El
.Sh FILES
.Bl -tag -width "/boot/sortix.initrd.sysmerge.orig" -compact
.It Pa /boot/sortix.bin
system
.Xr kernel 7
.It Pa /boot/sortix.bin.sysmerge.orig
system
.Xr kernel 7
(backup)
.It Pa /boot/sortix.initrd
system
.Xr initrd 7
.It Pa /boot/sortix.initrd.sysmerge.orig
system
.Xr initrd 7
(backup)
.It Pa /etc/machine
processor platform of this installation
.It Pa /etc/sortix-release
the current system release
.It Pa /etc/upgrade.conf
controls the bootloader upgrade behavior (see
.Xr upgrade.conf 5 )
.It Pa /share/sysinstall/hooks
A file per upgrade hook indicating that it doesn't need to be run.
.It Pa /sysmerge
pending upgrade is stored here
.El
.Sh SEE ALSO
.Xr development 7 ,
.Xr initrd 7 ,
.Xr installation 7 ,
.Xr kernel 7 ,
.Xr upgrade 7 ,
.Xr sysinstall 8 ,
.Xr sysupgrade 8