Warning: BunsenLabs Helium is at the development stage and must be considered *experimental* in nature so please *do not* use this system for anything important.

Preamble

With the release of Debian 9.0 now upon us, this guide will show how to install a BunsenLabs Helium test system (known as "Helium-dev").

There are two steps to this process:

install a Debian stretch base system

run the bunsen-netinstall script

For the first step, it is possible to use the Debian stretch netinstall ISO image (with the non-free firmware already included):

https://cdimage.debian.org/cdimage/unof … ch/iso-cd/

If this method is used, be sure to de-select all of the desktop options in the tasksel section, just leave the "standard system utilities" box ticked and un-select all of the other options (unless you want a print, ssh or web server).

Once the system is installed, the bunsen-netinstall script can be run after first boot (from a console login), as described below.

For this guide I will be showing how to install from a running terminal session in BunsenLabs Hydrogen (or any other GNU/Linux environment) as this removes the need for continual rebooting, installation media, reading online instructions from the TTY, and so on.

Installing stretch

This section was adapted from the Debian stretch installation guide, please refer to that for more details:

https://www.debian.org/releases/stretch … 03.html.en

Run the following commands from a root shell, attained by passing

sudo -i

First mount the partition that will be used for the new root filesystem:

mount /dev/sdXY /mnt

Replace XY with the letter and number assigned to the target partition.

Use `lsblk` beforehand to show all partitions and make sure that the chosen partition is not already mounted to avoid overwriting an extant system.

Then mount any other partitions (if needed), for example if /home is on /dev/sdXZ:

mkdir -p /mnt/home mount /dev/sdXZ /mnt/home

Now use debootstrap to install the (very minimal) base system:

debootstrap --components=main,contrib,non-free stretch /mnt https://cdn-aws.deb.debian.org/debian

Tip: remove the "--components=" flag to create a clean, blob-free system.

Once that is done we can chroot into the system to configure if properly:

for i in /proc /sys /dev /dev/pts; do mount --bind $i /mnt$i; done chroot /mnt /bin/bash

The file at /etc/profile can be sourced for PATH and other niceties:

. /etc/profile

The hostname for the new system can then be set with:

echo $hostname > /etc/hostname # replace $hotname with the actual hostname

The hostname should also be added to /etc/hosts on the first line, just after "localhost", separated with a space.

Now create a basic /etc/fstab (again, replace X with the correct drive letter):

grep sdX /proc/self/mounts > /etc/fstab

Be sure to check this file afterwards (and perhaps replace /dev/sdX{Y,Z} with UUIDs instead).

Now add the stretch-updates and Debian Security repositories:

echo -e "deb https://cdn-aws.deb.debian.org/debian stretch-updates main contrib non-free

deb https://cdn-aws.deb.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list apt update && apt upgrade

Set up /etc/adjtime for UTC with:

hwclock --systohc

And the time zone:

dpkg-reconfigure tzdata

Locales & keyboard:

apt install locales console-setup dpkg-reconfigure locales

Install a kernel (yes, the system really is that minimal):

apt install linux-image-amd64 # use "linux-image-686" for 32-bit systems (without the quotation marks)

Now add the main user:

adduser $username # replace $username with the actual username

We need `sudo` for the install script:

apt install sudo gpasswd -a $username sudo

Finally, install the standard system utilities, as expected by our script:

tasksel install standard

Applying the netinstall script

First, either log in as the normal user (if booting into a conventional stretch installation) or use this command from the chroot:

su - $username

Then download the script:

wget https://github.com/bunsenlabs/bunsen-netinstall/archive/helium-dev.tar.gz

Unpack the tarball:

tar xf helium-dev.tar.gz cd bunsen-netinstall-helium-dev

And run the script:

./install

If run from the chroot APT will complain about missing hostnames, those messages can be safely ignored.

Once the script is finished the machine can be rebooted into Helium-dev (hopefully).

If the chroot method is employed then either `exit` or <Ctrl>+d will exit the user session & chroot (needs to be run twice) and `umount -R /mnt` will clear the mountpoint.

Bootloader

Remember to run `sudo update-grub` (from the "host") after finishing the entire installation, this should pick up the new system and provide a menu entry in the GRUB bootloader.

If a conventional ISO image is used for installation then I would recommend disabling the bootloader step in the installer and updating the pre-existing bootloader configuration afterwards instead.

Adding the experimental Helium repository

The Helium-dev netinstall script now uses the new repositories so this step is only needed for those who have a pre-existing Helium-dev system that only has the Hydrogen repositories in /etc/apt/sources.list.d

The line to add is:

deb https://kelaino.bunsenlabs.org/~johnraff/debian helium main

It's probably best to have this in it's own file so:

sudo tee /etc/apt/sources.list.d/helium-dev.list << ! deb https://kelaino.bunsenlabs.org/~johnraff/debian helium main !

Add the key:

wget -q https://kelaino.bunsenlabs.org/~johnraff/helium-dev.asc -O - | sudo apt-key add -

Then update & upgrade, the new versions should take precedence:

sudo apt update && sudo apt upgrade

Thanks for testing and please be sure to report any bugs or other issues:

https://forums.bunsenlabs.org/viewforum.php?id=14

Please prepend any support thread titles with [Helium-dev] so we know what we're dealing with

Last edited by Head_on_a_Stick (2017-12-26 17:45:54)