Sortix cross-nightly manual
This manual documents Sortix cross-nightly. You can instead view this document in the latest official manual.
NAME
sysmerge — upgrade current operating system from a sysrootSYNOPSIS
sysmerge | [-cfpsw] [-t target] [--booting] [--hook-finalize] [--hook-prepare] source |
DESCRIPTION
sysmerge upgrades the current operating system by copying the system files from the specified 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 development(7).- --booting
- It's boot time, complete the system upgrade that was delayed. This is meant to be used by init(8) through the merge boot target. This installs the /sysmerge directory onto the root filesystem and removes the /sysmerge directory.
- -c, --cancel
- Cancel a pending upgrade that would trigger on the next boot. Remove the /sysmerge directory and restore the old kernel(7) and initrd(7).
- -f, --full
- Full system upgrade that uninstalls ports not present in the source directory.
- --hook-finalize
- Run the post-upgrade hooks. This is meant to be used by the old sysmerge when it invokes the new sysmerge during a non-waiting upgrade.
- --hook-prepare
- Run the pre-upgrade hooks. This is meant to be used by the old sysmerge when it invokes the new sysmerge during a non-waiting upgrade.
- -s, --system
- Upgrade the system. This option is implied unless --ports is passed.
- -t, --target=target
- Upgrade the installation in the target directory rather than the root filesystem. This option is supported if the target is the / directory or only has ports installed and no system. This option is unsupported if target has the system installed and is not the / directory. Instead one should chroot(8) into the target and run the old sysmerge inside rather than the new sysmerge. However, this option may be useful for repairing installations and should work in practice, however it is untested and might not properly handle incompatible changes across releases.
- -p, --ports
- Upgrade the ports. This option is implied unless --system is passed.
- -w, --wait
- Wait until the next boot to complete the upgrade, rather than finishing it now. The upgrade is installed into the /sysmerge directory instead, with the new kernel and initrd files in /boot/sysmerge. The new kernel(7) has a new initrd(7) that runs /sysmerge/sbin/sysmerge --booting on boot through the chain-sysmerge init(8) boot target, which performs the operating system upgrade. The bootloader configuration is regenerated with a menu option to perform the upgrade if grub is enabled in upgrade.conf(5), otherwise the /etc/default/grub.d/10_sortix.cache bootloader fragment can be used to manually bootload the upgrade.
FILES
- /boot/sortix.bin
- Old system kernel(7).
- /boot/sortix.initrd
- Old system initrd(7).
- /boot/sysmerge/
- New system kernel and initrd files.
- /etc/default/grub.d/10_sortix.cache
- GRUB configuration fragment that boots the new system.
- /etc/machine
- Processor platform of this installation.
- /etc/sortix-release
- The current system release.
- /etc/upgrade.conf
- Controls the bootloader upgrade behavior (see upgrade.conf(5)).
- /share/sysinstall/hooks/
- A file per upgrade hook indicating that it doesn't need to be run.
- /sysmerge/
- The pending systen upgrade is stored here.