Arch Linux is one of my favorite Linux-based desktop OSes. I have written at length why I use Arch Linux. If you want an OS that gives you complete control over your computing, Arch Linux is the one.\n\n\nHowever, installing Arch Linux can be a daunting task. That's why I wrote this tutorial. My goal is to present the installation process in a manner that is easy to understand and follow. You might also want to read the official Arch Linux Wiki\u00a0for more in-depth information on Arch Linux.\n\nGetting ready for Arch Linux\n\nThis tutorial is for a single-boot Arch Linux installation on BIOS with MBR (master boot record).\u00a0The installation will wipe all data from your hard drive, so please make a backup. I suggest using a dedicated SSD to install Arch Linux on your system, so that your data and OS are on separate physical storage devices. SSDs are much faster than traditional hard drives, and you can get a decent SSD for under $50.\n\n\nIf your wireless card needs extra drivers, you should use an Ethernet cable for the installation process.\n\nCreate USB of Arch Linux\n\nFirst, download the latest iso of Arch Linux from the official site. You can use the "dd" utility if you are running macOS or Linux. Windows users can use rufus to create bootable a USB drive of Arch Linux.\n\n[ Also on CIO.com: How to create a bootable USB drive of Linux distros ]\n\nOnce you have the bootable drive ready, go to the BIOS settings of the target system and set it to use BIOS instead of UEFI, then plug in the USB and boot from it. You will boot into the command line interface or Arch Linux and see the following screen:\n\n Swapnil Bhartiya \n\nThe boot screen of Arch Linux.\n\n\n Swapnil Bhartiya \n\nThe entire installation will be done in command line.\n\n\n\nIf you are using an Ethernet cable, skip the wireless configuration section and ping Google to check connectivity. If you plan to use wireless then run an "ip link" command to see if your wireless chip is detected. On my system the Ethernet displayed as "enp0s5," and the wireless displayed as "wlp58s0."\n\n\nLet\u2019s connect to the network using the wifi-menu tool (use the name of your wireless device in the command below):\n\n\nwifi-menu wlp58s0\n\n\nThat will open a dialogue box where you can use the arrow keys to select the network you want to connect to. Skip the step where you can name the profile and then enter the password for the network in the next dialog box.\n\n Swapnil Bhartiya \n\nYou can easily connect to the wireless network.\n\n\n\nNext, you should ping Google to check if it's connected. If you are connected, you will get a positive output:\n\n\nping -c 3 www.google.com\n\nPrepare the hard drive\n\nThere are many tools for partitioning, but I am using the "parted" tool for this tutorial. Run the "lsblk"\u00a0command to find the name of the storage devices. In my case its "\/dev\/sda." Now open the "parted" tool:\n\n\nparted \/dev\/sda\n\n\nNext, create an MBR\u00a0partition table:\n\n\n(parted) mklable msdos\n\n\nAnd then create partitions:\n\n\n(parted) mkpart primary ext4 1MiB 30GiB(parted) set 1 boot on(parted) mkpart primary linux-swap 30GiB 38GiB\n\n\nThe first step creates a root partition of 30GB, the second step sets the boot flag on this partition, and the third step creates swap partition of 8GB.\n\n\nI won't be creating a separate home partition, it will be created within root. Since\u00a0I will also be installing more than one desktop environments on this system, I am allocating 30GB to root. You can choose as much space as you want for root. Make sure to use the endpoint of step one as the start point in step three. Once the partitioning is finished, exit the\u00a0"parted" tool by typing "quit."\n\n\nNow check the newly created partitions with "lsblk" command, to make sure everything is as expected:\n\n\nsda \u00a0\u00a0\u00a0\u00a0259:0 \u00a0\u00a0\u00a00 \u00a0477G \u00a00 disk--sda1 259:1 \u00a0\u00a0\u00a00 \u00a0\u00a030G \u00a00 part \/\u2514--ada2 259:2 \u00a0\u00a0\u00a00 \u00a0\u00a0\u00a08G \u00a00 part [SWAP]\n\n\nHere "sda1" is root and "sda2" is swap.\u00a0Now we will format these partitions. I am using the "ext4" file system for root.\n\n\n# mkfs.ext4 \/dev\/sda1\n\n\nThen format the swap partition:\n\n\n# mkswap \/dev\/sda2# swapon \/dev\/sda2\n\n\nNow mount the root partition:\n\n\n# mount \/dev\/sda1 \/mnt\n\nInstallation\n\nBefore we start installation, let's choose the closest mirror for the repositories for the fastest download speed. Open the "mirrorlist" file with Nano editor:\n\n\n# nano \/etc\/pacman.d\/mirrorlist\n\n\nUse arrow keys to highlight the URL of the desired mirror. Use Alt+6 to copy it and then paste it at the top of the list with Ctrl+U. Then save the file with Ctrl+o and close it with 'Ctrl+x'.\n\n\nNow we install the base packages:\n\n\n# pacstrap -i \/mnt base base-devel\n\n\nOnce all packages are installed, we will generate the "fstab" file. This is the file that stores info about the mounted storage devices (the command should be run only once):\n\n\n# genfstab -U \/mnt > \/mnt\/etc\/fstab\n\n\nNow "Chroot" into the newly installed system to configure it:\n\n\n# arch-chroot \/mnt \/bin\/bash\n\nSetting up the boot-loader\n\nThere are many boot-loaders for Arch Linux, but I am using "syslinux" instead of grub as it gave me a lot of trouble on the Dell XPS 13. Next, install syslinux:\n\n\n# pacman -S syslinux\n\n\nAnd then run the following command to create entries for the boot menu:\n\n\n# syslinux-install_update -i -a -m\n\n\nWe need to edit the syslinux config file to use the correct root partition:\n\n\n# nano boot\/syslinux\/syslinux.cfg\n\n\nScroll down to find the section that lists entries for arch and archfallback. Replace "sda2" with the root partition of your system. After making those changes, my entries look like these.\n\n Swapnil Bhartiya\nSet the language and time zone\n\nWe have to now select the default language of the system. I am using US English. Run the following command:\n\n\n# nano \/etc\/locale.gen\n\n\nYou will see a very long list of languages. Just uncomment the one that you need. I uncommented "en_US.UTF-8." Save and close the file and then run the following commands, one by one:\n\n\n# locale-gen# echo LANG=en_US.UTF-8 > \/etc\/locale.conf# export LANG=en_US.UTF-8\n\n\nNext, we'll configure the time zone. I live on the U.S. east coast so I am setting New York as my time zone. Run the following command and the follow the steps:\n\n\n# tzselect\n\n\nNow create symlink to the selected time zone:\n\n\n# ln -s \/usr\/share\/zoneinfo\/America\/New_York \u00a0\/etc\/localtime\n\n\nThen set the hardware clock to UTC:\n\n\n# hwclock --systohc --utc\n\nChange hostname and create user accounts\n\nLet's give our system a decent host name:\n\n\n# echo swapnil > \/etc\/hostname\n\n\nNow create the root password by running the following command:\n\n\n# passwd\n\n\nOnce root password is generated, let's create a user for our system.\n\n\n# useradd -m -G wheel,users -s \/bin\/bash swapnil\n\n\nThen create password for this user:\n\n\n# passwd swapnil\n\nInstall Gnome and complete installation\n\nTechnically we have Arch Linux installed, but we still need some work. It's time to choose the desired desktop environment. I will be installing Gnome as it's easy to use and works great on HiDPI displays:\n\n\n# pacman -S gnome gnome-extra\n\n\nNow we need to install networking tools so you can manage network from GUI:\n\n\n# pacman -S iw wpa_supplicant dialog network-manager-applet networkmanager\n\n\nIf you are installing Arch Linux on a laptop then you also need support for trackpad, so install the "synaptics" package:\n\n\n# pacman -S xf86-input-synaptics\n\n\nI will also install "bash-completion," which will make my life easier by autocompleting commands and package name:\n\n\n# pacman -S bash-completion\n\n\nNow all we need to do is to tell "systemd" so that Gnome Display Manager and Network start at the system boot:\n\n\n# systemctl enable NetworkManager.service# systemctl enable gdm.service\n\n\nOur installation is complete, but we need to get out of the chroot environment:\n\n\n# exit\n\n\nNow unmount the root partition:\n\n\n# umount -R \/mnt\n\n\nRestart your machine so you can boot into your brand new Arch Linux system:\n\n\n# reboot\n\n\nRemove the USB drive when the system shuts down so that it can boot into the newly installed Arch Linux.\u00a0If everything went well, you will see the Gnome boot screen. Congratulations, you are now an Arch Linux user.\u00a0Welcome to the club!\n\n\nIf you have any questions, ask them in the comment section below.