None

Installing Arch from scratch on Kimsufi

2020-08-29
4 minutes

Recently, I bought myself a new server from Kimsufi, to function as an off-site backup server. And after fighting with both their management interface and customer services, I finally got it booted. Kimsufi have a respectable list of OS options, however not especially recent. The latest version of Ubuntu they have is 16.04, and the Arch installer is based on an image from 2018.

OVH, the parent company of Kimsufi, have been known to backdoor their dedicated servers. Whether this is for monitoring or not, I don’t really like it. I did know about this before purchasing, and thought it’d be a fun idea to try to install arch myself, from scratch. I found a great tutorial on how to do it, and whilst it worked mostly, it did seem a little out of date, hence this post.

#Installation

The below is a mixture of some specific instructions on installing on Kimsufi servers, and generic arch installation instructions. If you’re not installing on Kimsufi (or some other dedicated server host I guess), you’re in the wrong place!

#Boot into recovery

The first step is to boot into recovery by clicking “Netboot”, then “Rescue” and select “rescue-pro” in the menu. Be sure to restart (this may happen automatically). After some time (a few minutes, it’s longer than you’d think), the machine will be back online, and you’ll receive an email with authentication instructions. If you’ve got an SSH key configured, that’ll be configured too.

Rescue Mode

#Partition

Naturally, you’ll need to partition your installation disk. lsblk will help you work out which disk you need to target in your partition tool of choice. There’s nothing really special about this step, although you’ll need to make sure you can mount it. For me, I went with a tiny FAT32 /boot, 100GB XFS on root, and the rest left unformatted, to be filled by ZFS once I’m installed.

Once your disk is partitioned, mount it under /mnt (and /mnt/boot).

#Bootstrap arch

At this point in a regular arch install, you’d start running pacstrap to install arch. On the Debian-based recovery environment, that doesn’t exist. Instead, we use arch-bootstrap. Unfortunately, using this script as-is has a couple issues, all revolving around zstd.

Back in January, Arch migrated from xz to zstd for its packages. Unfortunately, this requires both changes to arch-bootstrap, and installation of zstd to ensure they can be decompressed. arch-bootstrap doesn’t support this yet, so a fork has to be used, which does.

#Installing zstd in the recovery environment

At time of writing, the recovery environment is based off Debian Jessie. Unfortunately, the Debian backports don’t go back that far, so a normal installation isn’t quite an option.

In hindsight, cloning and compiling from source would probably have made quite a bit of sense, but in my sleep-deprived state, I decided to try something far, far worse… Don’t try this at home!

<trigger-warning>

I downloaded the zstd package from the Arch repository onto my local machine, extracted it and zipped it, and transferred it up to the server. From there, it could be extracted from the zip, and the files copied into the relevant places under /usr.

For me this didn’t work entirely correctly due to linking issues. Fixing that was done by downloading the Debian Stretch zstd package, and manually installing it with dpkg. The installation failed, but for some reason after this zstd could be run correctly.

</trigger-warning>

With zstd installed, we can run arch-bootstrap to create our template Arch environment. It can be run with ./arch-bootstrap.sh /mnt.

#Enter your install

The arch installer contains the handy arch-chroot script, which handles creating and entering the new installation. In the recovery environment, we have to do that manually:

Bash Session
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# mount --bind /dev /mnt/dev
# mount --bind /dev/pts /mnt/dev/pts

# chroot /mnt bash

#Setup keyring

arch-bootstrap manually installs packages, rather than using pacman, which means there’s no keyring configured for future use. Before you can install packages using pacman, you’ll need to initialize the keyring:

Bash Session
# pacman-key --init
# pacman-key --populate

#Install base packages

Now back to more familiar parts of the installation process: Installing the base packages. Where normally this would be done with pacstrap, now they can be done with regular pacman. There’s nothing special about this bit - I generally install base base-devel linux vim.

#Polish installation

The next step is pretty familiar to those who have installed Arch before. You’ll need to set up things like locale, create the initramfs, install grub (or other boot manager) etc. Again nothing special here, just make sure to do it.

If there’s anything else you want to install or set up pre-installation, now is the time.

#Networking

Personally, I find all the different networking set-ups rather strange, and lots of different people have different ways to set it up, manually or otherwise. I just install and enable dhcpcd, and it just works and has never let me down so far! The original guide mentioned issues with interface naming, but again never hit any signs of that being an issue.

#Finalize installation

Before rebooting, you’ll need to install openssh so you can reconnect to your new arch installation, and create users to authenticate as. You won’t be able to login as root (which is a good thing!), so you’ll need to make yourself a user, and make sure you can become root via sudo (visudo will let you set that up).

#Reboot

In theory, you’re done! You’ve got a functioning arch system you can boot into. Now simply exit the chroot environment (with exit), and reboot (with reboot). Be sure to check that the boot media is set up to be the installed HDD over the rescue ISO.

Give it a couple of minutes (in my case it was near 10!) and you’ll be able to SSH into your new arch server, and do with it what you will. Mine’s serving the very site you’re reading!

Share this page

Similar content

View all →

My first arch install

2019-05-29
4 minutes

I’ve been an arch user for many years, and a linux user for even longer, but I’ve never installed arch from scratch. I was an Antergos user for many years, but after its demise, I needed an alternative. In a previous post, I spoke of attempting to install vanilla arch…

2022

State of the Apps 2022

2022-01-01
15 minutes

It’s a new year, so it’s time to reflect back on the tools I used last year, how they’ll change this year, and how they might change in future. It’s still an idea I’ve completely stolen from CGP Grey / Cortex, but I think it’s useful, fun and interesting. I’m…

2023

State of the Apps 2023

It's that time of year again, time to steal some of Cortex's search rankings to talk about my own "State of the Apps" - the applications and setups I use to make my life what it is. Since my last post, and in fact in just the last few weeks,…