Georg's Log

Sun 12 March 2017

Fedora as Grml replacement

Posted by Georg Sauthoff in linux   

Grml is a Linux Live CD distribution geared towards system administration tasks and other console work. Unfortunately, its development has slowed down in the past years, i.e. the latest stable release is from 2014. In 2017, when dealing with modern hardware, modern features like Btrfs, SELinux etc. this is a deal breaker. It turns out that Fedora, when installed on a USB mass storage device, is a good substitute for traditional Linux Live CDs like Grml.

How it works

A very fast and convenient method to install Fedora on a USB stick is to use virt-builder, e.g.:

$ virt-builder fedora-25 --hostname  \
--ssh-inject root:file:"$pubkey" --root-password file:"$pwfile" \
--update --install $(paste -d, -s package.list) \
--run --selinux-relabel \
-o /dev/sdz

The virt-builder command is probably mostly used for fast generation of virtual machine images but it works as well for bare-metal installations. It is so fast because it starts from filesystem-templates.

In the above example, the shell script applies some defaults and other post-installation customizations in the target system.

The result can be easily tested with QEMU/KVM, e.g.:

$ qemu-system-x86_64 -enable-kvm -drive file=/dev/sdz,if=virtio,format=raw \
  -m 2048 -netdev bridge,id=nd0,name=tap0,br=virbr0 \
  -device e1000,netdev=nd0,id=d0  -display curses

The Code

I've published some scripts to generate such a Fedora based USB stick in a Git repository. The repository also contains some more details in a README including a detailed comparison with Grml.


Also, nowadays, the traditional Linux Live CD approach is a little bit outdated. Many systems don't even have a CDROM drive anymore for good reason. Sophisticated distributions like Grml are hybrid, i.e. they can also be booted from a USB stick, but they don't make use of the extra space or the fact that the stick is writable, by default. Grml even supports customizations like adding a writable filesystem but such changes are kind of tedious.

Grml doesn't just come with good defaults (e.g. zsh login shell), the team also has a talent choosing great release names (e.g. Knecht Rootrecht).