https://wiki.archlinux.org/index.php/Dell_XPS_15_(9550)
-
A simple dual-boot UEFI installation for Arch Linux without any file system encryption.
-
Assumes that Windows has already been installed beforehand.
-
Follows the official installation guide: https://wiki.archlinux.org/index.php/installation_guide
-
Uses rEFInd boot manager as the UEFI boot manager: https://wiki.archlinux.org/index.php/REFInd
- Download the official Arch Linux ISO from https://www.archlinux.org/download/
- Copy to a USB drive
- Windows users: use Rufus with default settings in ISO mode (https://rufus.ie/)
- Disable secure boot on XPS 15
- Ensure that the NVMe SSD is set to AHCI mode instead of RAID
- Boot from the USB
- Set keyboard layout if necessary. Defaults to US keyboard layout.
ls /usr/share/kbd/keymaps/**/*.map.gz
list available keyboard layoutsloadkeys $LAYOUT
loads keyboard layout -- replace$LAYOUT
with layout
- Connect to WiFi
wifi-menu
(verify internet connection by pinging wiki.archlinux.org or google.com)
- Update system clock
timedatectl set-ntp true
- Disk Partitioning
fdisk -l
Find the main disk drive for partitioningcgdisk $MAIN_DISK_DRIVE
e.g. cgdisk /dev/nvme0n1
example partitioning for dual-boot setup on a 512GB SSD- swap - about 8GB - hex code
8200
(for Linux swap) - root - about 64 GB - hex code
8304
(for Linux x86-64 root(/)) - home - about 100 GB - hex code
8302
(for Linux /home) - rest of drive already taken up by Windows install
- swap - about 8GB - hex code
- Format and initialize partitions
mkfs.ext4 $ROOT_PARTITION
e.g. /dev/nvme0n1p1mkfs.ext4 $HOME_PARTITION
e.g. /dev/nvme0n1p2mkswap $SWAP_PARTITION
e.g. /dev/nvme0n1p3swapon $SWAP_PARTITION
- Mount the file systems
mount $ROOT_PARTITION /mnt
mount $HOME_PARTITION /mnt/home
mkdir -p /mnt/boot/efi
mount $EFI_PARTITION /mnt/boot/efi
Mount the boot EFI partition. This is the drive partition that shows up with EFI label from fdisk -l
- Install to mounted partitions
pacstrap /mnt base base-devel linux linux-firmware git vim zsh efibootmgr refind-efi dialog wpa_supplicant
- Generate fstab
genfstab -U /mnt >> /mnt/etc/fstab
- Ensure that the fstab contains declarations in /mnt/etc/fstab
- Enter the new system with chroot
arch-chroot /mnt /bin/bash
use bash in chroot
- Setup system clock and timezone
ln -sf /usr/share/zoneinfo/REGION/CITY /etc/localtime
set time zone, where REGION and CITY are dependent on your location- e.g.
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
- e.g.
hwclock --systohc
generates /etc/adjtime for UTC
- Localization
- uncomment en_US.UTF-8 UTF-8 and other locales in /etc/locale.gen, then run:
locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf
echo LC_ALL=C >> /etc/locale.conf
- uncomment en_US.UTF-8 UTF-8 and other locales in /etc/locale.gen, then run:
- Hostname
echo $HOSTNAME > /etc/hostname
where $HOSTNAME is what you want as your host name
- Recreate initramfs (if necessary)
mkinitcpio -p linux
- Set root password
passwd
- Add a real user (use /bin/zsh for shell)
useradd -m -g users -G wheel -s /bin/zsh $USER_NAME
passwd $USER_NAME
set user password
NOTICE: When refind-install is run in chroot, /boot/refind_linux.conf
is populated with kernel options from the live USB, not the one on which it is installed.
The below steps are to install rEFInd and fix the boot parameters since step 4.1 installs rEFInd from chroot
- Run refind-install script
refind-install
- Edit refind_linux.conf in
/boot/
folder- Ensure that
/boot/refind_linux.conf
has the correct entries- e.g.
"Boot using default options" "root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap"
- e.g.
- Ensure that
- Exit chroot
exit
- Unmount and reboot to new system (remember to unplug the USB)
umount -R /mnt
swapoff -a
reboot