Expect this to take at approximately 2 hours. Go slow, be patient, have fun.
See https://wiki.archlinux.org/index.php/Dell_XPS_15_9560 for additional info as needed.
- Download the Arch installer and write the ISO to a USB/external disk using Etcher: https://etcher.io/.
- Boot into Windows and install any BIOS updates that might exist.
- Dual boot prework - skip this step if you plan to single boot Linux (or install Windows later).
- Switch Windows 10 from RAID/IDE to AHCI: https://triplescomputers.com/blog/uncategorized/solution-switch-windows-10-from-raidide-to-ahci-operation/
- Resize your Windows partition: https://www.lifewire.com/how-to-open-disk-management-2626080
- Boot into the UEFI/BIOS (e.g. hit F-12 during POST).
- Change the SATA Mode from "RAID" to "AHCI" (unless you already did so in 2.1).
- Disable Secure Boot.
- Boot up the computer and hit F-12 during POST. Select the external disk/USB that has the Arch installer. Wait for the installer to boot.
- Once started, run
wifi-menu
and connect to WiFi.
-
Figure out the name and current partition structure of your disk.
fdisk -l
- Take note of the name of your disk. For NVMe drives this is often
/dev/nvme0n1
, so we'll be using that for this guide. - Take note of any existing partitions. This is especially important if dual-booting.
-
Wipe the disk. If dual booting Windows skip this step.
gdisk /dev/nvme0n1
- Hit
x
(for advanced options), thenz
(wipe the disk), theny
andy
(or whatever confirmation is required).
-
Partition the disk.
cfdisk /dev/nvme0n1
- Select
gpt
- Create the EFI partition. If dual booting Windows skip this step.
- Select
New
. - Make the partition size
300M
. - Select
Type
-EFI System
.
- Select
- Create the Swap partition.
- Select
New
. - Make the partition size
16G
(or32G
depending on preference). - Select
Type
-Linux swap
.
- Select
- Create the Root partition.
- Select
New
. - Hit Enter to make the partition size equal to the rest of the disk.
- Select
- Select
Write
and confirm withyes
. - Select
Quit
.
-
Encrypt, Format, and Mount the Root partition.
fdisk -l
- Take note of the new partition structure. Make sure you know the ids of the EFI, Swap, and Root partitions (e.g.
/dev/nvme0n1p1
for the EFI partition). You'll need the Root partition (e.g./dev/nvme0n1p3
for the next step). cryptsetup -y -v luksFormat --type luks2 /dev/nvme0n1p3
(assuming your Root partition is at/dev/nvme0n1p3
).- Input a password.
cryptsetup open /dev/nvme0n1p3 cryptroot
- Input your password.
mkfs.ext4 /dev/mapper/cryptroot
- this formats the partition.mount /dev/mapper/cryptroot /mnt
- this mounts the partition to prepare for installation.
-
Format and Mount the Swap partition.
mkswap /dev/nvme0n1p2
(assuming your Swap partition is at/dev/nvme0n1p2
).swapon /dev/nvme0n1p2
-
Format and Mount the EFI partition.
mkfs.vfat -F32 /dev/nvme0n1p1
(assuming your EFI partition is at/dev/nvme0n1p1
). If dual booting Windows skip this step.mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
-
Ensure system clock is accurate
timedatectl set-ntp true
-
Install the base system
pacstrap /mnt base base-devel refind-efi zsh vim git efibootmgr dialog wpa_supplicant intel-ucode sudo
-
Generate the fstab - this automounts your partitions on boot.
genfstab -pU /mnt >> /mnt/etc/fstab
- Make minor changes to fstab via
vim /mnt/etc/fstab
or similar.- Change
relatime
for/dev/mapper/cryptroot
tonoatime
(this supposedly reduces wear on your SSD). - (OPTIONAL) Make
/tmp
a ramdisk by adding the following line to /mnt/etc/fstab. This ensures/tmp
erases on reboot.tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
- Change
-
Enter the new system.
arch-chroot /mnt
-
Setup the system clock.
ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
hwclock --systohc
-
Set the hostname.
hostnamectl set-hostname <myhostname>
(the hostname should be all lower case).
-
Update the locale.
vim /etc/locale.gen
- Find
en_US.UTF-8 UTF-8
and uncomment (remove the#
). locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf
echo LANGUAGE=en_US >> /etc/locale.conf
echo LC_ALL=C >> /etc/locale.conf
-
Set password for root.
passwd
-
Add a real user. Remove
-s /bin/zsh
if you don't want to usezsh
(but maybe you should).useradd -m -g users -G wheel -s /bin/zsh MYUSERNAME
(assuming your username isMYUSERNAME
).passwd MYUSERNAME
-
Add the
wheel
group to Sudoers.visudo
- Uncomment
%wheel ALL=(ALL) ALL
-
Configure mkinitcpio with modules needed for the initrd image.
vim /etc/mkinitcpio.conf
- Add
ext4
toMODULES
. - Add
encrypt
toHOOKS
beforefilesystems
. mkinitcpio -p linux
to regenerate the image.
-
Set up the refind bootloader.
refind-install
- Figure out the uuid of the encrypted partition
ls -la /dev/disk/by-uuid
- note the uuid linked to/dev/nvme0n1p3
.vim /boot/refind_linux.conf
- Delete all lines beginning with
archisobasedir
. - Edit
Boot with minimal options
to be:cryptdevice=UUID=<device-UUID>:cryptroot root=/dev/mapper/cryptroot
where<device-UUID
is the UUID you found in 23.2.1.
- Add
Boot to single user mode
:cryptdevice=UUID=<device-UUID>:cryptroot root=/dev/mapper/cryptroot single
where<device-UUID
is the UUID you found in 23.2.1.
-
exit
and go into the installer shell -
Unmount the partitions.
umount -R /mnt
swapoff -a
-
Ensure the EFI boot entry was written.
efibootmgr -v
- Verify you see an entry for
rEFInd
. - Verify
BootOrder
has that entry's number first (e.g.0001,0002...
where0001
is rEFInd).
-
reboot
see https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Launching_UEFI_Shell
- Manually add the EFI boot entry.
- Boot back into the Arch USB, before the installer starts select
EFI manager v2
or similar. map
- take note of the device entry for your disk (e.g. whatever one saysGPT
somewhere).bcfg boot add 3 FS0:\EFI\refind\refind_x64.efi "rEFInd"
(assumingFS0
is the device id found in 28.2).- Exit and reboot.
- Boot back into the Arch USB, before the installer starts select
You now have a bootable Arch installation, but this is where the real fun begins.
-
Install the NVIDIA drivers. See https://wiki.archlinux.org/index.php/NVIDIA#Installation, but this is probably as simple as
sudo pacman -S nvidia
. -
nvidia-smi
- do you see your card? If so, be happy this worked the first time... -
Install Bumblebee. See https://wiki.archlinux.org/index.php/bumblebee. Do not install
bbswitch
- it is currently broken. Check https://bbs.archlinux.org/viewtopic.php?id=238389 for potential fixes. -
Install everything else you need to have a usable computer. See
pacman_list.txt
for suggestions. I highly suggest you begin withLightDM
(https://wiki.archlinux.org/index.php/LightDM).GDM
seems to be unstable on this system at this time. You can then proceed to installing a Desktop Environment (https://wiki.archlinux.org/index.php/desktop_environment) or i3 (https://wiki.archlinux.org/index.php/i3).
Remember this is supposed to be fun - but also a little overwhelming. Go slow, think about your choices, and understand getting a usable daily system will likely be a long and evolving process. Be patient.