This article covers using a hardened musl XFCE desktop.
Bluedragon Gentoo, named after Glaucus Atanticus or The Blue Dragon Mollusk, is a security-enhanced, fully featured XFCE4 desktop, amd64 Gentoo system, built with musl as its C standard library. It is the musl equivalent of Lilblue which is built on uClibc. Both systems aim to be identical with respect to the packages they provide and their configuration, with the only difference being their libc.
Since both Bluedragon and Lilblue are "security-enhanced" and "fully featured" XFCE4 desktops, we refer you to Lilblue's page for a description of what this entails.
Installing Bluedragon is similar to installing Lilblue. It is a manual process where one basically extracts the distribution tarball on mounted pre-formatted partitions, chroots in, does some minor customization (like editing fstab or lilo.conf), installs the bootloader and finally reboots. This is similar to a complete Gentoo installation as described in the Handbook, but much easier.
1. First prepare a boot device and boot into it. Download the install ISO image using
Here [mirror] is any Gentoo mirror and [date] is whatever the date is of the latest release. This is just Gentoo's generic amd64 minimal install image. Its glibc based, but that's okay, it won't prevent chrooting into the musl chroot later on. If you are putting this on a physical box, then burn the ISO image to a CD/DVD. For a virtual machine, just aim its virtual CD/DVD device to the ISO file. Alternatively, you may want to boot from a USB drive. Gentoo's install ISO is not your only option. You may want to try SystemRescueCD, a Gentoo-derived distro with lots of uses. Or, if you already have a working Linux system and you want to install Bluedragon to another drive, just use your current system. Whatever your choice, boot off that device now.
2. Prepare root/boot/swap partitions, format and mount them. Using parted or fdisk, prepare at least three partitions. The following table gives you suggested sizes. /boot only has to hold a kernel or two, so you can get away with less, but the others are reasonable minima.
3. Format the partitions and mount them:
mkdir -p /mnt/gentoo
mount /dev/sda3 /mnt/gentoo
mkdir -p /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
You don't have to use ext4 for the root partition. You can try btrfs or some other type if you like since the kernel can support most filesystems. But for /boot we recommend ext2.
4. Download and unpack the tarball image:
tar --xattrs -xvf desktop-amd64-musl-hardened-[date].tar.bz2
5. Prepare the chroot and chroot into it. Assuming you're still in the same directory as in the previous step, do
mount --bind /dev dev/
mount --bind /dev/pts dev/pts
mount --bind /proc proc/
mount --bind /sys sys/
chroot . /bin/bash -l
>>> Regenerating /etc/ld.so.cache...
[Aside: Ignore the output from env-update. musl doesn't use ld.so.cache and despite that message, no ld.so.cache was generated.]
If you changed any of the above values for /dev/sda*, or you're not installing onto sda, then edit /etc/lilo.conf and /etc/fstab accordingly. Finally, install lilo to your boot drive, exit the chroot and reboot:
Added Gentoo + *
6. Log in and enjoy! You have one user account and root. You can only log into the desktop as user gentoo, but can sudo or su root.
Maintaining a Bluedragon system
Bluedragon is Gentoo, not a separate distribution, so you can maintain it as you would any other Gentoo system as documented in the Handbook.
However, Bluedragon is built as a GRS system and so can be maintained using grsup as described in the GRS project page. The install image an binary packages are being distributed from http://releases.freeharbor.net.
Reporting bugs and feature requests
- Submit bugs to: Gentoo's Bugzilla
- Assign to: email@example.com
- CC: firstname.lastname@example.org