1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
.Dd $Mdocdate$
.Dt Shards 1
.Os
.Sh SYNOPSIS
.Nm Project Shards
.Op shards
.Ar MacOS inspired
.Ar Immutable
.Ar Linux Distribution
.Sh DESCRIPTION
.Nm
is an immutable linux distribution using multiple Volumes to create one system
.Sh How it works
.Nm
utilizes multiple Volumes (called Shards) to create one root using bind and overlay mounts
.Sh The different Shards
.Nm
Consists of 6 Shards:
.IP \fBRoot\fP
\- 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
.IP \fBBoot\fP
\- The Boot shard contains files and packages requir to boot on real hardware
this is mainly the bootloader and kernel
.IP \fBSystem\fP
\- The System shard is the main root, it contains everything required to boot
into userspace and cannot be modified unless booted into the recovery
.IP \fBData\fP
\- Data Contains everything the user installs themselves or changes on the root
filesystem, it is mounted read-write and contains /etc
.IP \fBUsers\fP
\- Users contains the home directories of all users, it is simply bind mounted
to /home on boot as read-write
.IP \fBRecovery\fP
\- 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
.Sh Package Management
.Nm
uses a pacman wrapper called shardctl to install and remove packages, however
users can also enter a special mode to use \fBpacman\fR(1)
directly.
\fBshardctl\fP also allows installing aur packages and wraps around \fBapx\fR(1)
to allow installing packages into containers.
.Nm
comes preinstalled with flatpak and allows installing them by simply dragging
the flatpakref files into ~/Applications.
This is achieved using \fBappD\fP.
\fBappD\fP also allows installing pacman packages by dragging the .pkg.tar.xz
files into ~/Applications.
.Sh Updating
.Nm
uses the Recovery to perform updates. When a user decides to update their
.Nm
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.
.Sh Installing
.Nm
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
.Nm.
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.
.Sh Images
.Nm
like other immutable distributions uses images to distribute updates
unlike other immutable distributions however,
.Nm
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
.Sh See Also
\fBaxtlos\fP(7),
\fBCrystal Linux\fP(1),
\fBLinux Immutability Tools\fP(7)
|