Shards(1) General Commands Manual Shards(1)

Project Shards [shards] MacOS inspired Immutable Linux Distribution

Project Shards is an immutable linux distribution using multiple Volumes to create one system

Project Shards utilizes multiple Volumes (called Shards) to create one root using bind and overlay mounts

Project Shards Consists of 6 Shards:

- The Root shard acts like a preloader, it provides the special root directories like /run or /dev and the initial tools for mounting the other Shards and creating the proper root system

- The Boot shard contains files and packages requir to boot on real hardware this is mainly the bootloader and kernel

- The System shard is the main root, it contains everything required to boot into userspace and cannot be modified unless booted into the recovery

- Data Contains everything the user installs themselves or changes on the root filesystem, it is mounted read-write and contains /etc

- Users contains the home directories of all users, it is simply bind mounted to /home on boot as read-write

- The Recovery shard is a seperate system from the other shards, it can be booted by itself. It contains the Graphical and Terminal based recovery for updating, troubleshooting or reinstalling Project Shards

Project Shards uses a pacman wrapper called shardctl to install and remove packages, however users can also enter a special mode to use pacman(1) directly.

shardctl also allows installing aur packages and wraps around apx(1) to allow installing packages into containers.

Project Shards comes preinstalled with flatpak and allows installing them by simply dragging the flatpakref files into ~/Applications. This is achieved using appD.

appD also allows installing pacman packages by dragging the .pkg.tar.xz files into ~/Applications.

Project Shards uses the Recovery to perform updates. When a user decides to update their Project Shards Installation, they get rebooted into the Recovery which automatically starts the Update.

If the Update is succesfull the Recovery either turns the computer off or reboots it, depending on what the user chose when starting the update.

If the Update fails, then the recovery rolls back to a snapshot it took before starting the update and warns the user next time it boots into the main Project Shards installation.

Project Shards installs similiarly to MacOS, the ISO offered for download is actually the recovery, when booting into the iso the user is immediately presented with the Recovery screen and can Install

The installation process only asks the user for the disk to install onto, any postinstall configurations usually set in the Installer, like user creation, setting the timezone or choosing locales are done post install in a first-setup application.

Project Shards like other immutable distributions uses images to distribute updates unlike other immutable distributions however, Project Shards does not directly use OCI-Images, it uses flatpak packages as a type of ostree frontend. This means that optimally the update process only consists of a simple flatpak update to upgrade the system.

Realistically this is not the case, since extra things such as managing /etc will have to be done after the update

CC BY-SA 4.0 Nixpkgs