Skip to content

Instantly share code, notes, and snippets.

@brammitch
Last active April 3, 2024 16:30
Show Gist options
  • Save brammitch/281e9a2f3aca57ae4a333fc63732f602 to your computer and use it in GitHub Desktop.
Save brammitch/281e9a2f3aca57ae4a333fc63732f602 to your computer and use it in GitHub Desktop.
Install Arch Linux on Dell XPS 13 (9360) / Dual Boot with Windows 10
# Resources
https://wiki.archlinux.org/index.php/installation_guide
http://www.bhartiya.io/always-updated-arch-linux-tutorial/30411
https://wiki.archlinux.org/index.php/Dell_XPS_13_(9360)
http://www.rodsbooks.com/gdisk/cgdisk-walkthrough.html
# TO-DO
# Set up periodic TRIM for SSD
# 1 Pre-installation
# 1.1 Set the keyboard layout
# Increase font size to improve readability on QHD screen
setfont latarcyrheb-sun32
# 1.2 Verify the boot mode
ls /sys/firmware/efi/efivars
# 1.3 Connect to the Internet
wifi-menu -o
# Test connection
ping -c 3 archlinux.org
# 1.4 Update the system clock
timedatectl set-ntp true
# Check service status
timedatectl status
# 1.5 Partition the disks
# EFI partition will not be created since we are dual booting with Windows 10
# Existing EFI partition will be mounted to /boot
# Identify disks
lsblk
cgdisk /dev/nvme0n1
# Create 8GiB swap partition (8200)
# Create 100% LVM partition (8e00)
# Exit cgdisk
# List devices for LVM
lvmdiskscan
# Create physical volume
pvcreate /dev/256GB_Y6UB50N2KMBU-part7
# Verify physical volumes
pvdisplay
# Create volume group
vgcreate xps_vg /dev/256GB_Y6UB50N2KMBU-part7
# Verify volume groups
vgdisplay
# Create logical volumes
lvcreate -L 40G xps_vg -n lv_root
lvcreate -L 40G xps_vg -n lv_home
# Verify logical volumes
lvdisplay
# 1.6 Format the partitions
# Format /root and /home as ext4
mkfs.ext4 /dev/xps_vg/lv_root
mkfs.ext4 /dev/xps_vg/lv_home
# Setup swap partition
mkswap /dev/nvme0n1p6
# 1.7 Mount the file systems
# Enable swap
swapon /dev/nvme0n1p6
# Mount /root
mount /dev/xps_vg/lv_root /mnt
# Mount /home
mkdir /mnt/home
mount /dev/xps_vg/lv_home /mnt/home
# Mount existing EFI partition
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
# 2 Installation
# 2.1 Select mirrors
# Edit mirros list, put United States first
vi /etc/pacman.d/mirrorlist
# 2.2 Install the base packages
pacstrap /mnt base vim git efibootmgr wpa_supplicant iw zsh dialog sudo binutils make base-devel
# 3 Configure the system
# 3.1 Fstab
# Generate an fstab file
genfstab -L /mnt >> /mnt/etc/fstab
# Verify and adjust /mnt/etc/fstab
# 3.2 Chroot
# Change root into the new system
arch-chroot /mnt
# 3.3 Time zone
# Set the time zone
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# Generate /etc/adjtime
hwclock --systohc
# 3.4 Locale
# Uncomment en_US.UTF-8 UTF-8 in /etc/locale.gen and generate them with
locale-gen
# Set the LANG variable in /etc/locale.conf
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Set keyboard font
echo 'FONT=latarcyrheb-sun32' > /etc/vconsole.conf
# 3.5 Hostname
echo 'arch-xps' > /etc/hostname
vi /etc/hosts
127.0.1.1 xps.localdomain xps
# 3.6 Network configuration
# 3.7 Initramfs
# Get rid of errors for psmouse
echo 'blacklist psmouse' >> /etc/modprobe.d/modprobe.conf
# Configure mkinitcpio
vi /etc/mkinitcpio.conf
# Update HOOKS="..." to add: systemd keymap sd-lvm2
# Update FILES="/etc/modprobe.d/modprobe.conf"
# Generate initrd image
mkinitcpio -p linux
# 3.8 Root password
passwd
# Add user
useradd -m -g users -G wheel -s /bin/zsh <username>
# Set password
passwd <username>
# Add to sudoers
echo '<username> ALL=(ALL) ALL' > /etc/sudoers.d/<username>
# 3.9 Boot loader
# Setup systemd-boot
bootctl --path=/boot install
# Enable Intel microcode updates
pacman -S intel-ucode
# Create bootloader entry
vi /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=/dev/xp_svg/lv_root rw
# Set default bootloader entry
vi /boot/loader/loader.conf
timeout 8
default arch
editor 0
# 4 Reboot
exit
umount -R /mnt
reboot
# 5 Post-installation
# Login as root
# Connect to wifi
wifi-menu -o
# Name profile
netctl enable <profile>
# Install Intel graphic drivers
pacman -S xf86-video-intel
# Install pacaur
su - <username>
mkdir aur
cd aur
git clone https://aur.archlinux.org/cower.git
cd cower
makepkg -si --skipinteg
cd ..
git clone https://aur.archlinux.org/pacaur.git
cd pacaur
makepkg -si
# Adjust xrandr scaling with Gnome set at 200%
xrandr --output eDP1 --scale 1.25x1.25 --panning 4000x2250+0+0
@brammitch
Copy link
Author

Thanks @matteobucci! I'm still running off this same install after nearly 3 years, so I'm not sure if this gist is relevant or helpful these days, but at least the typos are fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment