Arch Linux on a VPS

From ArchWiki

From Wikipedia:Virtual private server:

Virtual private server (VPS) is a term used by Internet hosting services to refer to a virtual machine. The term is used for emphasizing that the virtual machine, although running in software on the same physical computer as other customers' virtual machines, is in many respects functionally equivalent to a separate physical computer, is dedicated to the individual customer's needs, has the privacy of a separate physical computer, and can be configured to run server software.

This article discusses the use of Arch Linux on Virtual Private Servers, and includes some fixes and installation instructions specific to VPSes.

Official Arch Linux cloud image

Arch Linux provides an official cloud image as part of the arch-boxes project. The image comes with Cloud-init preinstalled and should work with most cloud providers.

The image can be downloaded from the mirrors under the images directory. Instructions for tested providers is listed below:

Provider Locations Note
Digital Ocean Global
  1. Find the cloud image on a mirror, ex: https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2
  2. Add the image as a custom image by importing it
  3. Create a new VM from the custom image
  4. SSH to the VM: ssh root@ip
Hetzner Cloud Nuremberg, Falkenstein (Germany), Helsinki (Finland)
  1. Create a new VM with this user data:
    #cloud-config
    vendor_data: {'enabled': false}
    The vendor_data from Hetzner overrides the distro and sets the default user to root without setting disable_root: false, meaning you can not login
  2. Boot the VM in rescue mode
  3. SSH to the VM and download the cloud image from a mirror, ex: curl -O https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2
  4. Write the image to the disk: qemu-img convert -f qcow2 -O raw Arch-Linux-x86_64-cloudimg.qcow2 /dev/sda
  5. Reboot the VM
  6. SSH to the VM: ssh arch@ip
Linode Multiple international locations
  1. Create a new VM and select Arch as the distribution (to use the Linode-provided image, stop here; otherwise proceed with the rest of the steps)
  2. Boot the VM in rescue mode
  3. Connect to the VM via the Lish console and download the basic image from a mirror, ex: curl -O https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-basic.qcow2
  4. Install the qemu-utils package: apt update && apt install qemu-utils
  5. Write the image to the disk: qemu-img convert -f qcow2 -O raw Arch-Linux-x86_64-basic.qcow2 /dev/sda
  6. In the Linode manager, go to the VM's configurations menu and edit the configuration to change the kernel option to "Direct Disk"
  7. Reboot the VM
  8. SSH to the VM: ssh arch@ip
Proxmox N/A
  1. Create a new VM
  2. Select "Do not use any media" in OS section.
  3. Remove created hard disk from your VM after VM creation completes.
  4. Add the downloaded image to your VM using qm importdisk, ex:
    qm importdisk 100 Arch-Linux-x86_64-cloudimg.qcow2 local
  5. Add a cloudinit drive and make your configurations in Cloud-Init section.
  6. Start the VM!
Kimsufi OVH Eco Canada, France Paraphrasing the official documentation:
  1. Navigate to the Dedicated Servers section in your OVH management panel, then select the server you want to deploy Arch Linux to.
  2. Click the ... button next to "Last operating system (OS) installed by OVHcloud" and choose "Install"
  3. Select "Install from custom image"
  4. For "Image URL" put https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2
  5. For "Image type" select qcow2
  6. For "Checksum type" select sha256
  7. For "Image checksum" put the fingerprint value from https://geo.mirror.pkgbuild.com/images/latest/Arch-Linux-x86_64-cloudimg.qcow2.SHA256
  8. Enable "ConfigDrive" to enter "Server host name" and your public "SSH key" (both are mandatory for Arch Cloud Init install)
  9. Click "Install the system"
  10. Wait (it takes a while) for an email from OVH titled "Installation of your image", it will say "Congratulations! Your dedicated server has just been installed! Connect to your server with ssh key provided during your installation."
  11. Use ssh arch@ip to log in.