Crystal Linux is a brand new Linux distro based on Arch. Although it has not been officially released, you can already download an ISO and try that in its current development state.
Quoting from its home page:
Crystal Linux is a brand new Arch Linux based distribution.
Powerful and easy to use.
And, in particular
Why Crystal?
What’s so different about Crystal compared to other distributions?
- Easy to use package manager
- Beginner Friendly
- Easy Btrfs snapshots
- Easy to install
Since I’ve been using Arch and Arch-based (mainly EndeavourOS) distros for a while, I decided to try it, even if it’s not officially released, to briefly evaluate its current development status.
I downloaded the ISO crystal-live-08-20-22-07-55-x86_64.iso and tested it on a VirtualBox VM.
After the BOOT, you’re greeted by the GNOME desktop. I searched for the installer. I thought I’d find it in the dock, but that was not the case. I searched for an “install” string in the GNOME Activities. Again I got no results. Then, I recalled that Crystal names its installer Jade, and that’s how I found it.
The installer provides several screens to specify the typical information of a Linux installation. I would say that it does that in a very clear way. Here are a few screenshots of the pages of the installer:
Since it’s based on Arch, Crystal can provide a good selection of desktop environments. However, you can select only one:
Another interesting section is the next one, where you can enable Timeshift (recall from the introduction that “Easy Btrfs snapshots” is one of the advertised features):
Regarding partitioning, the Crystal Linux installer shows its “work-in-progress” state: you can only select the disk for the installation and nothing else. As noted in the dialog, it will wipe the whole disk and automatically partition it. Nothing is said about the file system, but I guess it will be a Btrfs filesystem (Spoiler: it is):
However, they are still working on the partitioning program:
Then, you get the summary for a final review. When you’re ready, start the installation:
The installer shows the installation log, which is excellent and helpful. Unfortunately, when the installation finishes, the log is not available anymore. It would be good to have access to that window still, to copy the log somewhere for a later examination.
OK, let’s reboot and see the distribution in action.
Crystal Linux should come with a customized GNOME desktop, Onyx, but that’s not installed by default. So you get a vanilla GNOME session (just like in Arch) with only a few programs installed (so, in this respect, it’s not bloated):
You don’t even have a Text Editor with a GUI (but at least you have Gnome Tweaks):
Of course, you can install whatever you want with pacman or with the Crystal custom AUR helper, amethyst, but beware: the command to run it’s ame; it took me some time to discover that 🙂 The AUR helper amethyst looks nice. Just like “yay”, you run it, and it also executes an update (“-Syu”). Besides that, the command line arguments are the same as pacman and yay, at least, that’s my first impression. Just like yay, amethyst also updates the AUR packages. Moreover, it is also configured to execute “pacdiff” at the end:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
❖ Successfully upgraded repo packages ? Continue to upgrade AUR packages? [Y/n]: ❖ Finished! ❖ No upgrades available for installed AUR packages ❖ It appears that at least one program you have installed / upgraded has installed a .pacnew config file. These are created when you have modified a program's configuration, and a package upgrade could not automatically merge the new file. ? Would you like Amethyst to run pacdiff to deal with this? You can always deal with this later by running `sudo pacdiff` [y/N]: y ==> pacnew file found for /etc/pacman.conf :: (V)iew, (M)erge, (S)kip, (R)emove pacnew, (O)verwrite with pacnew, (Q)uit: [v/m/s/r/o/q] r removed '/etc/pacman.conf.pacnew' |
Unfortunately, the keyboard layout and the time zone I specified during the installation was not considered. I had to set them again in the GNOME settings.
The default shell is ZSH, which I like. However, it’s not configured at all, with any default. Thus, the first time you open a terminal, you have to do that yourself:
Let’s see how the installer created the partitions:
1 2 3 4 5 6 7 8 9 10 11 |
# Static information about the filesystems. # See fstab(5) for details. # <file system> <dir> <type> <options> <dump> <pass># /dev/sda2 UUID=... / btrfs rw,relatime,space_cache=v2,subvolid=256,subvol=/@ 0 0 # /dev/sda1 UUID=... /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # /dev/sda2 UUID=... /home btrfs rw,relatime,space_cache=v2,subvolid=257,subvol=/@home 0 0 |
So we have BTRFS, with the two standard volumes @ and @home, which are suitable for Timeshift. No SWAP partition (swap is not configured at all). Moreover, there’s no compression on the BTRFS subvolumes, while I usually prefer to have compression.
There are also other subvolumes (I guess to exclude from snapshots the virtual machines you might create with Kvm):
1 2 3 4 5 6 |
$ sudo btrfs su li / ID 256 gen 157 top level 5 path @ ID 257 gen 157 top level 5 path @home ID 258 gen 87 top level 256 path var/lib/portables ID 259 gen 87 top level 256 path var/lib/machines |
Concerning repositories, Crystal is similar to EndeavourOS: it relies on Arch repositories and adds just a few custom repositories that you can also browse at https://repo.getcryst.al/. You can see that there are not so many packages there. Besides the Crystal programs, you also find a few packages you typically install from AUR, like timeshift and timeshift-autosnap.
This allows me to talk about the “Easy Btrfs snapshots.” The Crystal installer has already set up timeshift, timeshift-autosnap (which creates snapshots before package upgrade), and grub-btrfs (which adds “btrfs snapshots” to the grub menu to boot your system on a “snapshot” from the grub menu). (I wrote about these 3 tools previously).
For example, that’s what you see when you perform an upgrade (note the automatic creation of the snapshot and the creation of the grub menus for the snapshot):
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 |
:: Proceed with installation? [Y/n] (1/1) checking keys in keyring [----------------------] 100% (1/1) checking package integrity [----------------------] 100% (1/1) loading package files [----------------------] 100% (1/1) checking for file conflicts [----------------------] 100% :: Running pre-transaction hooks... (1/1) Creating Timeshift snapshot before upgrade... Using system disk as snapshot device for creating snapshots in BTRFS mode Mounted '/dev/sda2' at '/run/timeshift/1897/backup' Creating new backup...(BTRFS) Saving to device: /dev/sda2, mounted at path: /run/timeshift/1897/backup Created directory: /run/timeshift/1897/backup/timeshift-btrfs/snapshots/2022-09-05_11-47-37 Created subvolume snapshot: /run/timeshift/1897/backup/timeshift-btrfs/snapshots/2022-09-05_11-47-37/@ Created control file: /run/timeshift/1897/backup/timeshift-btrfs/snapshots/2022-09-05_11-47-37/info.json BTRFS Snapshot saved successfully (0s) Tagged snapshot '2022-09-05_11-47-37': ondemand ------------------------------------------------------------------------------ Found stale mount for device '/dev/sda2' at path '/run/timeshift/1897/backup' Unmounted successfully Generating grub configuration file ... Found theme: /usr/share/grub/themes/crystal/theme.txt Found linux image: /boot/vmlinuz-linux Found initrd image: /boot/initramfs-linux.img Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Adding boot menu entry for UEFI Firmware Settings ... Detecting snapshots ... Found snapshot: 2022-09-05 11:47:37 | timeshift-btrfs/snapshots/2022-09-05_11-47-37/@ | ondemand | {timeshift-autosnap} {created before upgrade} | Found 1 snapshot(s) Unmount /tmp/grub-btrfs.G3kt71Ehmt .. Success done :: Processing package changes... (1/1) reinstalling amethyst [----------------------] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... |
In fact, the next time you boot, you also get the grub entry for the snapshots:
Summary
I liked a few things and a few things I did not like, but I enjoyed the installation, and, in general, I have an excellent impression of this new distribution. It’s not for beginners, but it’s easy for users who have already tried a few Linux distributions.
In any case, I found Crystal promising, and I really look forward to the official ISO release!