Copyright: William Warby

Arch Linux is one of my favorite GNU/Linux distributions. However, it is not as easy to install as are Ubuntu and openSUSE. I have installed Arch Linux so many times on my systems that I have almost memorized the procedure. I have translated that process into an easy to follow tutorial that can help new Arch Linux users.

I keep this tutorial updated as I learn about problems that other users face or if I find an easier day to get the task done. There are many Ubuntu-like derivatives of Arch that make it easier to get started with Arch, but I will discourage using them.

Installing Arch without understanding some of its core components and configurations will cause more problems in future when something breaks because you don’t know how it’s set-up or how it works. So I encourage you to do a manual installation of Arch Linux and understand its internals.

I also recommend referring to the official Arch Wiki to get in-depth information about each step and process.

I have broken this article into several small pieces to address one topic at a time without intimidating you with a single long page.

  • Mark Hewitt

    Is the line “arch-chroot /mnt/bin/bash” meant to have a space? i.e. “arch-chroot /mnt /bin/bash”

    • Swapnil Bhartiya

      arch-chroot /mnt

      Thanks. Corrected.

  • Mark

    Once chroot-ed, the system does not find nano – says bash: nano: command not found

    • Swapnil Bhartiya

      How did you chroot?

      • Mark

        As you have it on the web page, but with the error (below) corrected, so “arch-chroot /mnt /bin/bash” grateful for any help. thanks,

        • Swapnil Bhartiya


          arch-chroot /mnt

  • Ken Golden

    Thanks for a great guide!

  • Robert Fairbairn

    The instruction “pacman -S iw wpa_supplicant dialog” fails because I an offline, not having configured a wireless network after booting into the new installation. Wifi-menu won’t run without dialog. Would plug in wired but no port on this computer so any suggestions? Other than rebuild install profile adding dialog and start over?

    • bhartiyarules2017

      Thanks. I have edited the article and added the command to install it before they reboot. However, you can plug in the arch USB, chroot again and install from it. You don’t have to reinstall Arch. If you need help, ping me on Google+ or Twitter and I will assist.

  • ptrkjaneg

    Hi @arnieswap:disqus I followed your GREAT guide and I had only a small problem. systemd network manager service was disabled (or not enabled). Not a big problem (for an almost advanced user), but maybe you can add a line in the guide in order to active it for beginners users. I don’t know if is only a problema occurred on my pc, but it has happend.

    • Swapnil Bhartiya

      I will do a revision and add it there. Thanks.

  • Adam Jarosz

    “mkpart part-type fs-type start end” === “fs-type invalid token”

    • Swapnil Bhartiya

      That’s just example: replace it with actual values.

  • fintara

    Could you put clickable table of contents, would be helpful 🙂 Thanks for the article!

  • netdesk

    Hi Swapnil! Your article is always a starting point for my Arch installations. Thanks for the great work! I stuffed things together some time ago in a couple of scripts on github, just wanted to let you know about them:


  • Guy Abeho

    Thank you for the amount of effort you put into this article. After 2 days struggling to get it work, i finally got arch to install thanks to this article

  • Scott

    I followed all your directions exactly and am having an issue. Once I finish everything and reboot, the ssd on which I installed arch is not recognized as bootable and I go right to BIOS. Know why that would be and how to solve that? Thanks!

    • Swapnil Bhartiya

      Ok. Use the bootable USB drive that you used to install Arch and Chroot into the new installation and then check with parted if you marked the device as bootable.

      • Swapnil Bhartiya

        Also is it a legacy BIOS or UEFI system?

        • Scott

          UEFI. i checked and motherboard is UEFI. It’s MSI H110 Gaming. How do I check if it’s bootable? I remember seeing “boot” flag during the process if that’s what you’re talking about

  • Why did you only include Gnome when talking about desktop managers? Also, maybe you could include a window manager or 2 as well?

    • Swapnil Bhartiya

      I will add.

  • Sunny B

    After shutting down the system as mentioned on page 9, I cannot login after removing the USB stick.

  • Dustojnik Hummer

    My installation says “group additional_groups” does not exist. This is my first time installing Arch,what am I doing wrong?

    —Nevermind,Im dumb.

  • great article! 😀

  • xargsgrep

    Can you also add steps for setting up xfce & lightdm and any other things that might be needed like network manager, alsa, pulseaudio, etc?

    Also, if I want to be able to use both wireless and ethernet should I keep dhcpcd enabled?

  • Dallin Hunter

    Mr Bhartiya, thank you very much for making this guide. I’ve been looking for a good tutorial to get into Arch, and you’ve done a great job here.

  • Tutorial is fantastic mate. Thanks for adding the extra information for wifi installs too, they got me stuck the last time I tried to install.

  • Ankur Dubey

    Great Guide ! Could you please add instructions to setup bumblebee for laptops with two graphics processors ? It’s always been a pain to setup my NVIDIA card in Ubuntu/Mint(always end up messing XServer) so I thought setting up from the ground using Arch could maybe solve the issue.

  • Pingback: Always updated Arch Linux tutorial – Bhartiya… – DevOps Infographics Resource Center – Programming and IT()

  • Konstantin Lyovin

    Hi Swapnil,
    I have to say I’ve used your Linuxveda manual several times and it hasn’t failed me, but this one might need a correction.
    There could be a mistake in the EFI partition mountpoint. Shouldn’t it be /boot/efi as seen e.g. in the latest Fedora 25?

    P.S. I totally love ArchLinux and it’s been on my SSD for a couple years, but now the SSD is starting to die and I’ve installed Manjaro to an HDD from a live CD. What a mess of unnecessary software. 🙁

  • HenryV

    I came here because I am looking for a 32-bit distro for a much loved faithful but now resting Samsung NC10. I never thought now is my opportunity to try an Arch build of my own. Thanks.

    • Argih

      The 32 bit version of the distro is not supported anymore by the devs

      • HenryV

        Oh. 🙁

        Thanks for replying. I will find something I am sure.

  • Argih

    Thanks for the article, only one thing

    I’m doing a probe in a virtual machine with EFI capabilities, i can find the directory as is recomended in the Arch wiki

    I done every step folowing your instructions but after rebooting for the first time i always got this screen

    I actually tried 2 times but i can not advance after instaling grub

  • MarcoGB

    It’s a nice guide but you should also link the Arch wiki guide so people can follow both during install.

    And you also need to update it to replace xf86-input-synaptics with libinput. xf86-input-synaptics is no longer updated.

  • Jon

    xorg-server-utils is down, replace with xorg-apps

  • NewToArch

    I appreciate this tutorial, but it only got me 99% there. I couldn’t get GDM to load, would just freeze at a black screen.

    Took me hours to figure out the issue 🙁

    For anyone else stuck at starting Gnome/GDM – are you using a virtualbox?? If so, you need to install virtual box drivers for video rather than your graphics card drivers.

    Below is what you need to do install gnome. Note the different xorg packages I installed as well. xorg-server-utils no longer exists either, i replace with -common

    pacman -S xorg-server xorg-xinit xorg-server-common

    pacman -S linux-headers
    pacman -S virtualbox-guest-utils

    nano /etc/modules-load.d/virtualbox.conf
    “In Nano add the 3 lines below and save and close”

    systemctl enable vboxservice.service

    pacman -S gnome gnome-extra
    systemctl enable gdm.service

    Swapnil, thanks for the tutorial you put together. Hope this comment helps some people that are stuck.