Getting started

Find current images of the supersilverhaze release branch at

With all images, use the root account, password peace, to log in.

TIP: If you can, use BitTorrent— is located in Europe, so transfers to other continents may be slow.

magnet link: supersilverhaze/img/distri-disk.img.zst

magnet link: supersilverhaze/img/distri-qemu-serial.img.zst

Run distri on real hardware

The easiest way to run distri on real hardware is to install it onto a spare USB memory stick.

Obtain a stable path to your USB memory stick by watching /dev/disk/by-id while inserting the stick:

% watch -dg ls '/dev/disk/by-id/*'

Then, copy the distri-disk.img image onto the memory stick:

dd if=distri-disk.img of=/dev/disk/by-id/usb-SanDisk_Extreme_Pro_D99B-0:0 bs=1M status=progress oflag=direct

Insert the memory stick into a computer and select the memory stick as boot device.

Run distri in Docker

NOTE: As a heads-up, the docker container image is pretty large

  1. (If you’d rather use a local docker container, build it locally: distri pack -docker | docker import - distri).
  2. Then, run bash within the distri docker container:
docker run \
	--privileged \
	--entrypoint /entrypoint \
	-ti \
	-e TERM=$TERM \

Run distri in qemu

Depending on what you want to test, the text-only serial interface might be a bit more convenient: it side-steps keyboard configuration mismatches and makes it easily to run distri remotely via an SSH session:

make qemu-serial DISKIMG=distri-qemu-serial.img

(You can exit by pressing Ctrl-a x)

If you want or need a graphical interface, use the qemu-graphic target with the standard distri-disk.img image:

make qemu-graphic DISKIMG=distri-disk.img

Run distri in virtualbox

  1. Convert the distri disk image into a VDI disk image so that virtualbox can use it as a root disk:

    vbox-img convert \
        --srcfilename distri-disk.img \
        --dstfilename vbox-distri.vdi \
        --srcformat RAW \
        --dstformat VDI
  2. Create a new VM:

    • click new button
    • select type linux
    • select version other linux (64-bit)
    • select the VDI disk image from step 1 as existing disk

Run distri on Google Cloud

TIP: The instructions below create a VM in the US so that it qualifies for GCP’s Free Tier. If you’re willing to pay the cost, creating the VM in Europe will result in faster installation. Also consider using the faster machine type n1-standard-1 over f1-micro.

  1. (If you’d rather use your own Google Cloud Storage bucket, import the distri-gce.tar.gz image into your Google Cloud Storage: gsutil cp distri-gce.tar.gz gs://distri-gce.)
  2. Create a Compute Engine Image: gcloud compute images create distri0 --source-uri gs://distri-gce/distri-supersilverhaze-gce.tar.gz
  3. Create VM using that image: gcloud compute instances create instance-1 --zone us-east1-b --machine-type=f1-micro --image=distri0 --metadata serial-port-enable=1
  4. Log in via the serial console and set up an authorized SSH key.

Run distri in LXD

See for details on LXD, the latest LXC experience.

  1. Loop-mount the root partition of the distri disk image:

    udisksctl loop-setup -f distri-disk.img
    mount /dev/loop0p4 /mnt/distri
  2. Archive the root file system:

    tar -C /mnt/distri -caf distri-rootfs.tar .
    umount /mnt/distri
    udisksctl loop-delete -b /dev/loop0
  3. Create an archive containing the metadata.yaml file for LXC:

    cat > metadata.yaml << EOF
    architecture: x86_64
    creation_date: 1589438963
      description: distri
      os: distri
      release: distri supersilverhaze
    tar -caf metadata.yaml.tar metadata.yaml
  4. Import the image:

    lxc image import metadata.yaml.tar distri-rootfs.tar --alias distri
  5. Create an LXC container using the image:

    lxc init distri distri-01
    lxc config set distri-01 raw.lxc lxc.init.cmd=/init
  6. Start the container and run a shell in it:

    lxc start distri-01
    lxc exec distri-01 bash

© 2018 Michael Stapelberg and contributors