Install Arch Linux on Azure

Azure does not support uploading ISO as Vultr does, nor installing Arch Linux directly from marketplace. (Instead, it supports uploading custom VHD.) This significantly increased the difficulties in installing Arch Linux on Azure, but we can still achieve that using vps2arch.


This article is neither an official document or help, nor manual of any products. It only represents my own experiences and summaries, so it is inevitable to cover anything and be error proofing. Please ensure to use this article as only a supplemental material with official documents.

The configuration tested is Ubuntu 16.04 LTS on Gen1 VM, which does not support UEFI (Gen2 is not tested). Ubuntu 18.04 is known to fail. Low memories will not work as well, since there should be enough memory to install, or the system will stuck. Do not attempt fo install with 512M memory. There’s no specific memory requirements for the installation process; the more, the better.


Installing Arch Linux will wipe ALL DATA on your VPS.


The installation process must not be interrupted by any reasons, or the system will be broken and incomplete.

Are you ready? Let’s go.

Firstly, switch to Root, and set a password. That’s because vps2arch needs to reboot after installing (sync; reboot -f), and the intermediate system after installation does not have sudo, so it is a good practice that you switch to Root first. In the mean time, make sure you set a password, for vps2arch will use the current root password as the new one (default is vps2arch). To keep your current password, you need to set one (The Ubuntu image does not have a password in default).

Secondly, run vps2arch. According to the official document, execute the following commands:

curl -vLO
chmod +x vps2arch

Wait for a few minutes, it will automatically prompt you for the next step.

Reboot. It’s time to reboot as the official document mentions:

sync; reboot -f

Note: the SSH session will stuck. Press Enter + ~. to terminate it. (Source)

Post Installation Config

The installation is incomplete for now, since we still need to configure as a usual installation. Here is a list comparing some of the things vps2arch does, or does not do (compared to Arch Wiki):

  • There is only Root, which preserves the previous password (default: vps2arch).
  • Uses systemd-networkd and other services to manage network.
  • Hosts is empty.
  • Host name is not set.
  • Timezone is not set.
  • Language is not set.
  • Uses Grub as bootloader.
  • Uses the default kernel.
  • Installs and enables OpenSSH, and permits Root login.

According to the list, you can simply configure it for your situation. For now, the installation is complete.