These are my notes for installing Arch Linux on a Dell XPS 15 7590 Laptop, dual booting with the existing windows installation.
General references:
- Reduce the windows partitions to the desired size (likely at least 100GB depending on how much data is expected there)
- Change the SATA mode from RAID/IDE to AHCI (reference):
- Run
cmd
as administrator bcdedit /set {current} safeboot minimal
- Reboot into BIOS
- Change the SATA Operation mode to AHCI
- Save changes and reboot
- Run
cmd
as administrator again bcdedit /deletevalue {current} safeboot
- Run
Note that most of this is just a simplification of the contents of the Arch Installation Guide for my specific use case.
-
Download the Arch ISO image from the Arch Installation Guide, write it to a USB, and boot into it
-
Connect to internet
ip link
to make sure the network interface is enablediwctl
to connect to your network- Alternatively, just plug in an ethernet cable
- Verify connection with
ping archlinux.org
(or any other site)
-
Sync the system clock with
timedatectl set-ntp true
-
Partition disks as desired using
fdisk /dev/nvme0n1
, for example:Partition Usage Size /dev/nvme0n1p1 EFI 190M /dev/nvme0n1p2 Used by Windows ??? /dev/nvme0n1p3 Used by Windows ??? /dev/nvme0n1p4 /boot 260M /dev/nvme0n1p5 <swap> 20G /dev/nvme0n1p6 Arch Remaining - EFI partition needs the
EFI
type (1
for GPT, oref
on MBR disks like VirtualBox) - The boot partition must be marked as bootable (use the
a
command infdisk
) - Use
w
to save the partition map
- EFI partition needs the
-
Format the partitions
mkfs.ext4 /dev/nvme0n1p4
(boot)mkfs.fat -F16 /dev/nvme0n1p1
(EFI)mkswap /dev/nvme0n1p5
(swap)mkfs.ext4 /dev/nvme0n1p6
(arch)
-
Mount the partitions
mount /dev/nvme0n1p6 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p4 /mnt/boot
mkdir /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi
swapon /dev/nvme0n1p5
-
Install arch
pacstrap /mnt base base-devel linux linux-firmware dialog wpa_supplicant
-
Generate an fstab to automate mounting all of your new partitions
genfstab -U /mnt > /mnt/etc/fstab
Make sure the file looks good before continuing
-
arch-chroot /mnt
to enter the new installation -
Prepare for networking (once the live boot is gone):
pacman -Sy dhcpcd iwd
systemctl enable dhcpcd iwd
-
hwclock --systohc
to set the hardware clock -
passwd
to set a root password -
Install GRUB bootloader
-
See the relevant section of the virtualbox installation guide
-
pacman -S grub efibootmgr
(pacman -S grub
on VirtualBox) -
grub-install /dev/nvme0n1 --target=x86_64-efi --efi-directory=/boot/efi/ --bootloader-id=GRUB
(justgrub-install /dev/sda
on VirtualBox) -
Update
/etc/default/grub
with the following settings:GRUB_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT_STYLE=hidden GRUB_CMDLINE_LINUX_DEFAULT="mem_sleep_default=deep resume=/dev/nvme0n1p5"
Making sure that the
resume
partition is your swap partition.The timeout settings prevent the GRUB menu from ever appearing, and just immediately booting into Arch. This may not be what you want.
-
grub-mkconfig -o /boot/grub/grub.cfg
to configure GRUB
-
-
Add the resume hook to mkinitcpio
- Update
/etc/mkinitcpio.conf
, addresume
hook after thefilesystems
hook mkinitcpio -P
to actually add the hook to initramfs
- Update
-
exit
to go back to the live ISO -
umount -R /mnt
to unmount the arch installation -
reboot now
to reboot, hopefully into your real arch installation -
You should be able to unplug the Arch USB now. See the README to fully configure the user space