The easiest, step-by-step tutorial for installing Arch Linux on a Dell XPS 13 laptop. A tutorial for installing Arch Linux on Dell XPS 13 (2016)I love the Dell XPS 13 (2016) that Dell gave me on loan. But installing Arch Linux with UEFI enabled can be challenging for new users — especially since ‘grub’ doesn’t work on this system with Arch Linux. I talked to a lot of people in the Arch community and resorted to using systemd-boot for successful install.Here’s how I got Arch Linux running on the Dell XPS 13 laptop.Step 1: Prepare your systemImage by DellGo to BIOS settings by hitting the F2 key when the system restarts and enable UEFI boot. Under the secure boot setting, disable secure boot.In this tutorial we are creating a brand new single boot Arch Linux system with 8GB of swap, 40GB of root and the remaining space for storage. I am allocating 40GB for root because I won’t be creating a separate /home partition and will be installing a lot of desktop environments later for testing so, for me, more space is better.Now download Arch Linux and create a bootable USB flash drive. Once the drive is ready, plug it into your Dell XPS 13, hit F12 when the system boots up and choose this USB Flash drive in the boot menu. You will see the Arch Linux command prompt. Get connected to the internet over wireless, as this laptop doesn’t come with an ethernet port. Then run the following command and follow the instructions on the dialog box to get connected:# wifi_menuUse the arrow key to select the network, hit enter (you can ignore profile renaming) and then type the password for the network.Now check if you are connected by pinging Google:# ping -c 3 www.google.com.If you get positive ping, you are all set.Step 2: Prepare your hard driveImage by DellWe will be using the parted tool to create a partition table and format the SSD. We will create four partitions: ESP (EFI System Partition), swap, root and storage. First, check the name of your storage device (in my case it was ‘nvme0n1’):# lsblkNow open this drive with the parted tool:# parted /dev/nvme0n1Create GPT partition table(parted) mklabel gptAnd now create ESP partition and set it as boot drive:(parted) mkpart ESP fat32 1MiB 513MiB (parted) set 1 boot onThen create root partition of 30GB:(parted) mkpart primary ext4 513MiB 30GiBNow create swap partition of 8GB(parted) mkpart primary linux-swap 30GiB 38GiBAnd now create a partition for remaining storage for files(parted) mkpart primary ext4 38GiB 100%Exit parted(parted) quitNow check the new partitions and take note of their numbers:# lsblkWe will now format these partitions and mount them in this order: nvme0n1p1 for /boot, nvme0n1p2 for /root, nvme0n1p3 for swap, and nvme0n1p4 for storage# mkfs.ext4 /dev/nvme0n1p2# mkfs.ext4 /dev/nvme0n1p4Now format boot partition:# mkfs.fat -F32 /dev/nvme0n1p1And then swap:# mkswap /dev/nvme0n1p3# swapon /dev/nvme0n1p3Now it’s time to mount these partitions.First mount root:# mount /dev/nvme0n1p2 /mntThen create boot directory:# mkdir -p /mnt/bootAnd mount the boot partition:# mount /dev/nvme0n1p1 /mnt/boot(You can mount the remaining space for storage, after the installation is complete.)Step 3: Install base packagesImage by DellWe will now be downloading and installing base packages. If you wish, you can edit the mirrorlist file so that you have the closest mirror set for the fastest download speed.Edit the mirrorlist file:# nano /etc/pacman.d/mirrorlistNow use the arrow key and select the mirror closest to you, I chose the US server. Then use Alt+6 to copy that URL and move the cursor on the very top of the list and paste it there (Ctrl+U). Then save and close the file (Ctrl+x).Install the base packages:# pacstrap -i /mnt base base-develWe now have to create fstab on the new system. The following command will create the file and populate it.# genfstab -U /mnt > /mnt/etc/fstabWe now have to configure different components. To do that we have to chroot into the new system:# arch-chroot /mnt /bin/bash Step 4: Set up boot loaderImage by DellGrub is not working on this laptop so after much hunting around, I resorted to using systemd-boot in UEFI mode.Install the bootloader:# bootctl --path=/boot installOpen the loader.conf file:# nano /boot/loader/loader.confAnd make sure only these lines are there:default arch timeout 1 editor 0Now find the UUID of root partition:# blkid -s PARTUUID -o value /dev/nvme0n1p2Take note of the long UUID number, and create arch.conf file:# nano /boot/loader/entries/arch.confAnd add these lines to the arch.conf file (exchange the PARTUUID number with the UUID number on your machine):title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=66e3f67d-f59a-4086-acdd-a6e248a3ee80 rwIt’s now time to update the bootloader:bootctl updateSince Dell XPS 13 uses PCIe for storage, we need to add nvme module. Edit the mkinitcpio configuration file:nano /etc/mkinitcpio.confAnd add nvme in the MODULES line:MODULES="nvme"Now update the bootloader:# mkinitcpio -p linuxYou are all set to boot into your Arch system. But we still have more work to do.Step 5: Set languages and time zoneImage by DellI am setting up my system for US English, and choosing EDT as the time zone.Open the locale.gen file:# nano /etc/locale.genHere you will see the list of languages. I have a trick that will save you a lot of scrolling: US English is listed on top of the list as an example, just uncomment it there: “en_US.UTF-8”Save (Ctrl+O) and close (Ctrl+X) the file and then run the following commands:# locale-gen# echo LANG=en_US.UTF-8 > /etc/locale.conf# export LANG=en_US.UTF-8Set-up the time zone with this command and follow the instructions:# tzselectOnce done, just create a symlink to set it as localtime:# ln -s /usr/share/zoneinfo/America/New_York /etc/localtimeHowever, we will be using UTC for hardware clock:# hwclock --systohc --utcStep 6: Create user and passwordImage by DellFirst we need to create the root password for the system so that we can perform administrative tasks as root. Run the following command and then enter a password when asked:# passwdNow create a user for this system. I’m using my own name in this example:# useradd -m -G wheel,users -s /bin/bash swapnilAnd now give this user a password:# passwd swapnilIf you want, you can give this user sudo powers. Install sudo package:# pacman -S sudoAnd then run the following command:# EDITOR=nano visudoFind this line and uncomment it:%wheel ALL=(ALL) ALLNow let’s give this system a decent hostname (that’s the name that will appear on the network)# echo swapnil > /etc/hostnameWe now have a fully working system. But we still need GUI tools and a desktop environment.Step 7: Install GNOME and complete installationImage by DellGNOME works best on the HiDPI display of this system, but you can install any DE you like. (I also like Cinnamon on it.)# pacman -S gnome gnome-extraTo be able to manage the network from the GUI (we have been using command line tools so far), we need to install some packages that are not part of GNOME:# pacman -S iw wpa_supplicant dialog network-manager-applet networkmanagerWe will also install support for the touchpad:# pacman -S xf86-input-libinputNow tell systemd to start GNOME Display Manager and networking at the boot time:# systemctl enable NetworkManager.service# systemctl enable gdm.serviceBefore you reboot into your new system, exit the chroot environment and then unmount the partitions that we mounted during installation:# exit# umount -R /mntAnd now reboot the system:# rebootYou now have brand new Arch Linux on your Dell XPS 13. Related content opinion These are the most exciting Linux powered devices Did you know that Tesla cars ran on Linux?rn By Swapnil Bhartiya May 22, 2017 4 mins Linux Open Source opinion How Rackspace flew through turbulence in the private cloud Bryan Thompson, General Manager, OpenStack Private Cloud at Rackspace, talked about the second generation of cloud and some turbulence that OpenStack recently experienced.rn By Swapnil Bhartiya May 22, 2017 4 mins Open Source Cloud Computing Data Center opinion How Dell’s Project Sputnik came to life I met and talked to Barton George, the projectu2019s initiator and leader, to understand the backstory. By Swapnil Bhartiya May 22, 2017 10 mins Linux Open Source Computers and Peripherals opinion Elementary OS is trying to create a business model for open source app developers There is no dearth of Linux based operating systems, you will find dime a dozen. However there are only a few major ones that matter and elementary OS is among them. rn By Swapnil Bhartiya May 20, 2017 4 mins Linux Open Source Podcasts Videos Resources Events SUBSCRIBE TO OUR NEWSLETTER From our editors straight to your inbox Get started by entering your email address below. Please enter a valid email address Subscribe