In today’s tutorial, we’ll check how easy it is to upgrade the distribution.
Difficulty: ★☆☆☆☆
📜 Table of Contents
Upgrade using the Nitrux Update System Tool
The Nitrux Update Tool System (nuts) is a utility designed to update Nitrux OS and provide a backup option for rollbacks.
⚠️ Important: The Nitrux Update Tool System (nuts) is intended to work exclusively in Nitrux OS, and using this utility in other distributions will break them or not work at all. Please do not open issues regarding this use case; they will be closed.
Nitrux Update Tool System (nuts) is a simple and minimalistic system update and rollback utility. It performs three steps:
- Creates a backup of the root directory using SquashFS and the XFS partition and stores them locally.
- Downloads the latest ISO image using the BitTorrent protocol and updates the system using rsync.
- When restoring a backup, use the locally generated SquashFS file (instead of downloading an ISO).
Requirements
- Nitrux 2.8.0+.
- An active Internet connection.
- Up to 1.6 GB of available space in the root partition and more than 3.2 GB in the home partition.
Supported Releases
Nitrux Update Tool System (nuts) specifically targets version 2.8.0+.
However, Nitrux Update Tool System (nuts) can technically work with previous releases that use an immutable root, such as Nitrux 2.6.0, 2.6.1, 2.7.0, and 2.7.1, as long as the partition labels match the specific values (NX_ROOT for the root partition and NX_HOME for the home partition which is standard since Nitrux 2.8.0).
Download
Nitrux Update Tool System (nuts) is included by default, starting with Nitrux 2.9.0.
For releases of Nitrux where the Nitrux Update Tool System (nuts) is not available by default, do the following.
git clone --depth=1 https://github.com/Nitrux/nuts.git $HOME/nuts sudo cp $HOME/nuts/usr/bin/nuts /usr/bin sudo cp $HOME/nuts/etc/nuts.conf /etc
Updating Nitrux Update Tool System
Whenever a new update to the utility is uploaded to the repository, users must do the following to update the utility itself.
sudo overlayroot-chroot mount -t devtmpfs dev /dev # Clone repository git clone --depth=1 https://github.com/Nitrux/nuts.git /nuts # Copy nuts and its config file to the root cp /nuts/usr/bin/nuts /usr/bin cp /nuts/etc/nuts.conf /etc # Optionally delete /nuts rm -r /nuts umount /dev exit # Reboot to load the changes to the overlay sudo reboot
Usage
Do the following command to use the Nitrux Update Tool System (nuts).
- 🔰 Information: Users can only interact with the program to update or restore the backup.
- 🔰 Information: Log out or reboot the computer after updating or restoring the distribution using the Nitrux Update Tool System (nuts).
sudo nuts update
- Updates the currently installed root using the specified media in nuts-query and backs up the root directory.
sudo nuts restore
- Restores the backup of the root directory generated during the update.
Upgrade using Live media (Calamares)
Using an installer like Calamares to “update” a distribution doesn’t occur to most people.
But we can do this by replacing only the old root partition with a new one. Think of it like having a text file with [abc], deleting it, and making a new one with [abc123].
Some might mistake this for “reinstalling.” But reinstalling would mean reusing the initial install media, like an ISO of version 2.9.0, resulting in the “new” root still being version 2.9.0. Nonetheless, we’re saying that if you used an ISO of version 2.9.0 for the initial installation and then used an ISO of version 2.9.1, deleted the old root, and created a new root, the new root, once installed, will be version 2.9.1.
To upgrade from previous versions of Nitrux using Calamares, do the following.
-
- ⚠️ Important: Before proceeding, we can’t stress enough that users back up their home directory using Kup to a separate device (or cloud storage) if it is the case that the previous installation was done to a single partition instead of a separate root and home (or other) partitions.
- Download and flash the latest ISO.
- 🔰 Information: We create new installation media every 30 days; users who prefer media to be available sooner (bi-weekly, weekly, daily, etc.) can contribute to this expense on OpenCollective.
- Boot to the Live session and start Calamares.
- After completing the locale, keyboard, and user configuration, select the option to do a “Manual partitioning.”
- Select and delete the previous installation root; do not delete or format other partitions unless desired; only select “Keep.”
- Select the mount point of all partitions and options (where applicable).
- Optionally, add labels to the partitions. Our recommended partition layout is below.
- Optionally, choose to encrypt the whole system (or each partition individually).
- ⚠️ Important: Please be aware that the root directory is immutable, and any directory within the root will be read-only. Do not use a single partition layout.
- ⚠️ Important: When creating the root partition, using XFS as the filesystem is critical due to our intended use of the XFS backup manipulation tools in the future.
- ⚠️ Important: When creating the EFI System Partition for Legacy BIOS devices, the partition size must be 8MiB.
- 🔰 Information: The tables below assume the target device is an x64 (x86-64, or amd64) computer using Legacy BIOS, EFI, UEFI firmware, and a GPT partition table.
- 🔰 Information: While the (new) layout below is our recommendation, users can add any directory they want as a separate partition. However, the root and home must be separate due to the root directory’s immutability.
- 🔰 Information: Please be aware that neither XFS nor F2FS partitions can’t be shrunk, only grown.
- For EFI or UEFI firmware-type computers that use storage devices with a GPT partition table.
Partition | Label | Mountpoint | Filesystem Type | Flags |
---|---|---|---|---|
EFI System Partition | ESP | /boot/efi | fat32 | boot |
root | NX_ROOT | / | xfs | none |
home | NX_HOME | /home | f2fs | none |
/var/lib | NX_VAR_LIB | /var/lib | f2fs | none |
swap | SWAP | none (automatically setup) | linuxswap | none (automatically setup) |
- For Legacy BIOS firmware type computers that use storage devices with a GPT partition table.
Partition | Label | Mountpoint | Filesystem Type | Flags |
---|---|---|---|---|
EFI System Partition | – | – | fat32 | bios-grub |
root | NX_ROOT | / | xfs | none |
home | NX_HOME | /home | f2fs | none |
/var/lib | NX_VAR_LIB | /var/lib | f2fs | none |
swap | SWAP | none (automatically setup) | linuxswap | none (automatically setup) |
- Finally, proceed with the installation.
That’s it; this concludes today’s tutorial.