Skip to content

Instantly share code, notes, and snippets.

@marc-fez
Forked from mattiaslundberg/arch-linux-install
Last active July 21, 2025 18:28
Show Gist options
  • Save marc-fez/ca7ad54af72d353f595d08b4304fe0df to your computer and use it in GitHub Desktop.
Save marc-fez/ca7ad54af72d353f595d08b4304fe0df to your computer and use it in GitHub Desktop.

Revisions

  1. marc-fez revised this gist Apr 21, 2018. No changes.
  2. marc-fez revised this gist Apr 21, 2018. No changes.
  3. marc-fez revised this gist Apr 21, 2018. 1 changed file with 14 additions and 1 deletion.
    15 changes: 14 additions & 1 deletion dell-XPS-15-arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -101,8 +101,10 @@ grub-install
    # In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to
    GRUB_CMDLINE_LINUX="cryptdevice=/dev/nvme0n1p3:luks:allow-discards"

    # Tried a bunch of different acpi parameters, acpi_osi=Linux, acpi_osi=! acpi_osi="Windows 2009", acpi_osi="!Windows 2015"
    # Finally settled on acpi acpi_rev_override=5 but to be perfectly honest, no idea what it's actually doing.
    # edit the line GRUB_CMDLINE_LINUX_DEFAULT and add
    acpi_osi=! acpi_osi='Windows 2009' # this prevents lspci from hanging
    acpi_rev_override=5

    # then run:
    grub-mkconfig -o /boot/grub/grub.cfg
    @@ -177,3 +179,14 @@ sudo systemctl start lightdm.service

    # install tilix, nautilus, gnome-control-center and python-nautilus
    sudo pacman -S nautilus python-nautilus tilix gnome-control-center

    # install bumblebee and enable the service
    # https://wiki.archlinux.org/index.php/Bumblebee#Installation
    # adding xf86-video-intel to hopefully enable external hdmi monitor
    sudo pacman -S bumblebee mesa xf86-video-intel

    # add user to bumblebee group
    sudo gpasswd -a <user name> bumblebee

    # enable bumblebee service
    sudo systemctl enable bumblebeed.service
  4. marc-fez revised this gist Apr 20, 2018. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion dell-XPS-15-arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,6 @@
    # Having problems with the nvidia drivers
    # Arch wiki page on XPS 15
    # https://wiki.archlinux.org/index.php/Dell_XPS_15_9560

    # Install ARCH Linux with encrypted file-system and UEFI on Dell XPS 15
    # The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.
    @@ -152,7 +154,7 @@ makepkg -Acs
    sudo pacman -U aurman-2.9.22-1-any.pkg.tar.xz

    # Install xorg
    sudo pacman -S xorg xorg-server
    sudo pacman -S xorg xorg-server xorg-xrandr

    # Install nvidia driver
    # May be prompted to select the Repository extra, only one that worked for me was libglvnd
  5. marc-fez revised this gist Apr 19, 2018. 1 changed file with 50 additions and 1 deletion.
    51 changes: 50 additions & 1 deletion dell-XPS-15-arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    # Having problems with the nvidia drivers

    # Install ARCH Linux with encrypted file-system and UEFI on Dell XPS 15
    # The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.

    @@ -93,7 +95,14 @@ mkinitcpio -p linux

    # Setup grub
    grub-install
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/nvme0n1p3:luks:allow-discards" then run:

    # In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to
    GRUB_CMDLINE_LINUX="cryptdevice=/dev/nvme0n1p3:luks:allow-discards"

    # edit the line GRUB_CMDLINE_LINUX_DEFAULT and add
    acpi_osi=! acpi_osi='Windows 2009' # this prevents lspci from hanging

    # then run:
    grub-mkconfig -o /boot/grub/grub.cfg

    # Exit new system and go into the cd shell
    @@ -125,4 +134,44 @@ exit
    sudo wifi-menu

    # Update
    sudo pacman -Fy
    sudo pacman -Syu

    # if the kernel updates, reboot
    sudo reboot

    # Install linux headers to install from AUR
    sudo pacman -S linux-headers

    # Download and build aurman for AUR installations run this section as normal user (NOT sudo)
    git clone https://aur.archlinux.org/aurman.git
    cd aurman
    makepkg -Acs

    # Install aurman (version may be different)
    sudo pacman -U aurman-2.9.22-1-any.pkg.tar.xz

    # Install xorg
    sudo pacman -S xorg xorg-server

    # Install nvidia driver
    # May be prompted to select the Repository extra, only one that worked for me was libglvnd
    sudo pacman -S nvidia

    # I'm going with the budgie desktop, install whatever you want here
    sudo pacman -S budgie-desktop

    # aurman to install budgie-extras
    aurman -S budgie-extras

    # install lightdm
    sudo pacman -S lightdm lightdm-gtk-greeter

    # enable lightdm service
    sudo systemctl enable lightdm.service

    # start lightdm service
    sudo systemctl start lightdm.service

    # install tilix, nautilus, gnome-control-center and python-nautilus
    sudo pacman -S nautilus python-nautilus tilix gnome-control-center
  6. marc-fez revised this gist Apr 19, 2018. No changes.
  7. marc-fez revised this gist Apr 19, 2018. 1 changed file with 44 additions and 17 deletions.
    61 changes: 44 additions & 17 deletions dell-XPS-15-arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -7,30 +7,35 @@ dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux

    # Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration.

    # Set swedish keymap
    loadkeys sv-latin1
    # Set UK keymap
    loadkeys uk


    # This assumes a wifi only system...
    wifi-menu

    # Find the main HD
    fdisk -l

    # Create partitions
    cgdisk /dev/sdX
    1 100MB EFI partition # Hex code ef00
    2 250MB Boot partition # Hex code 8300
    cgdisk /dev/nvme0n1
    1 250MB EFI partition # Hex code ef00
    2 500MB Boot partition # Hex code 8300
    3 100% size partiton # (to be encrypted) Hex code 8300

    mkfs.vfat -F32 /dev/sdX1
    mkfs.ext2 /dev/sdX2
    # Format disks
    mkfs.vfat -F32 /dev/nvme0n1p1
    mkfs.ext2 /dev/nvme0n1p2

    # Setup the encryption of the system
    cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sdX3
    cryptsetup luksOpen /dev/sdX3 luks
    cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/nvme0n1p3
    cryptsetup luksOpen /dev/nvme0n1p3 luks

    # Create encrypted partitions
    # This creates one partions for root, modify if /home or other partitions should be on separate partitions
    pvcreate /dev/mapper/luks
    vgcreate vg0 /dev/mapper/luks
    lvcreate --size 8G vg0 --name swap
    lvcreate --size 16G vg0 --name swap
    lvcreate -l +100%FREE vg0 --name root

    # Create filesystems on encrypted partitions
    @@ -41,16 +46,17 @@ mkswap /dev/mapper/vg0-swap
    mount /dev/mapper/vg0-root /mnt # /mnt is the installed system
    swapon /dev/mapper/vg0-swap # Not needed but a good thing to test
    mkdir /mnt/boot
    mount /dev/sdX2 /mnt/boot
    mount /dev/nvme0n1p2 /mnt/boot
    mkdir /mnt/boot/efi
    mount /dev/sdX1 /mnt/boot/efi
    mount /dev/nvme0n1p1 /mnt/boot/efi

    # Install the system also includes stuff needed for starting wifi when first booting into the newly installed system
    # Unless vim and zsh are desired these can be removed from the command
    pacstrap /mnt base base-devel grub-efi-x86_64 zsh vim git efibootmgr dialog wpa_supplicant

    # 'install' fstab
    genfstab -pU /mnt >> /mnt/etc/fstab

    # Make /tmp a ramdisk (add the following line to /mnt/etc/fstab)
    tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    # Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD)
    @@ -59,23 +65,23 @@ tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    arch-chroot /mnt /bin/bash

    # Setup system clock
    ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
    ln -s /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
    hwclock --systohc --utc

    # Set the hostname
    echo MYHOSTNAME > /etc/hostname

    # Update locale
    echo LANG=en_US.UTF-8 >> /etc/locale.conf
    echo LANG=en_GB.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 real user remove -s flag if you don't whish to use zsh
    # useradd -m -g users -G wheel -s /bin/zsh MYUSERNAME
    # passwd MYUSERNAME
    useradd -m -g users -G wheel -s /bin/zsh MYUSERNAME
    passwd MYUSERNAME

    # Configure mkinitcpio with modules needed for the initrd image
    vim /etc/mkinitcpio.conf
    @@ -87,7 +93,7 @@ mkinitcpio -p linux

    # Setup grub
    grub-install
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX3:luks:allow-discards" then run:
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/nvme0n1p3:luks:allow-discards" then run:
    grub-mkconfig -o /boot/grub/grub.cfg

    # Exit new system and go into the cd shell
    @@ -99,3 +105,24 @@ swapoff -a

    # Reboot into the new system, don't forget to remove the cd/usb
    reboot

    # Log in
    # Escalate to root
    su

    # locale settings didn't stick? reset the keyboard
    loadkeys uk

    # Add user to sudoers file
    visudo
    # Uncommment line %wheel ALL=(ALL) ALL

    # return to regular user
    exit


    # connect to wifi
    sudo wifi-menu

    # Update
    sudo pacman -Syu
  8. marc-fez renamed this gist Apr 18, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch-linux-install → dell-XPS-15-arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    # Install ARCH Linux with encrypted file-system and UEFI
    # Install ARCH Linux with encrypted file-system and UEFI on Dell XPS 15
    # The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.

    # Download the archiso image from https://www.archlinux.org/
  9. @mattiaslundberg mattiaslundberg revised this gist Aug 21, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -74,7 +74,7 @@ echo LC_ALL=C >> /etc/locale.conf
    passwd

    # Add real user remove -s flag if you don't whish to use zsh
    # useradd -m -g users -G wheel,storage,power -s /bin/zsh MYUSERNAME
    # useradd -m -g users -G wheel -s /bin/zsh MYUSERNAME
    # passwd MYUSERNAME

    # Configure mkinitcpio with modules needed for the initrd image
  10. @mattiaslundberg mattiaslundberg revised this gist Jan 7, 2016. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -66,9 +66,9 @@ hwclock --systohc --utc
    echo MYHOSTNAME > /etc/hostname

    # Update locale
    echo LANG=en_US.UTF-8 > /etc/locale.conf
    echo LANGUAGE=en_US > /etc/locale.conf
    echo LC_ALL=C > /etc/locale.conf
    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
  11. @mattiaslundberg mattiaslundberg revised this gist Sep 3, 2015. 1 changed file with 14 additions and 8 deletions.
    22 changes: 14 additions & 8 deletions arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -3,21 +3,21 @@

    # Download the archiso image from https://www.archlinux.org/
    # Copy to a usb-drive
    dd if=archlinux.img of=/dev/sdX bs=16M # on linux
    dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux

    # Boot from the usb. If the usb fails to boot, make sure that secure boot is disabeled in the BIOS configuration.
    # Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration.

    # Set swedish keymap
    loadkeys sv-latin1

    # This assumes a wifi system...
    wifi-menu wlo1 # wlo1 is the device name, use ip link to find your actual name
    # This assumes a wifi only system...
    wifi-menu

    # Create partitions
    cgdisk /dev/sdX
    1 100MB EFI partition
    2 250MB Boot partition
    3 100% size partiton # (to be encrypted)
    1 100MB EFI partition # Hex code ef00
    2 250MB Boot partition # Hex code 8300
    3 100% size partiton # (to be encrypted) Hex code 8300

    mkfs.vfat -F32 /dev/sdX1
    mkfs.ext2 /dev/sdX2
    @@ -47,12 +47,13 @@ mount /dev/sdX1 /mnt/boot/efi

    # Install the system also includes stuff needed for starting wifi when first booting into the newly installed system
    # Unless vim and zsh are desired these can be removed from the command
    pacstrap /mnt base base-devel grub-efi-x86_64 zsh vim efibootmgr dialog wpa_supplicant
    pacstrap /mnt base base-devel grub-efi-x86_64 zsh vim git efibootmgr dialog wpa_supplicant

    # 'install' fstab
    genfstab -pU /mnt >> /mnt/etc/fstab
    # Make /tmp a ramdisk (add the following line to /mnt/etc/fstab)
    tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
    # Change relatime on all non-boot partitions to noatime (reduces wear if using an SSD)

    # Enter the new system
    arch-chroot /mnt /bin/bash
    @@ -64,6 +65,11 @@ hwclock --systohc --utc
    # Set the hostname
    echo MYHOSTNAME > /etc/hostname

    # Update locale
    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

  12. @mattiaslundberg mattiaslundberg revised this gist Jan 26, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -81,7 +81,7 @@ mkinitcpio -p linux

    # Setup grub
    grub-install
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX3:luks" then run:
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX3:luks:allow-discards" then run:
    grub-mkconfig -o /boot/grub/grub.cfg

    # Exit new system and go into the cd shell
  13. @mattiaslundberg mattiaslundberg created this gist Jan 25, 2014.
    95 changes: 95 additions & 0 deletions arch-linux-install
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,95 @@
    # Install ARCH Linux with encrypted file-system and UEFI
    # The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.

    # Download the archiso image from https://www.archlinux.org/
    # Copy to a usb-drive
    dd if=archlinux.img of=/dev/sdX bs=16M # on linux

    # Boot from the usb. If the usb fails to boot, make sure that secure boot is disabeled in the BIOS configuration.

    # Set swedish keymap
    loadkeys sv-latin1

    # This assumes a wifi system...
    wifi-menu wlo1 # wlo1 is the device name, use ip link to find your actual name

    # Create partitions
    cgdisk /dev/sdX
    1 100MB EFI partition
    2 250MB Boot partition
    3 100% size partiton # (to be encrypted)

    mkfs.vfat -F32 /dev/sdX1
    mkfs.ext2 /dev/sdX2

    # Setup the encryption of the system
    cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sdX3
    cryptsetup luksOpen /dev/sdX3 luks

    # Create encrypted partitions
    # This creates one partions for root, modify if /home or other partitions should be on separate partitions
    pvcreate /dev/mapper/luks
    vgcreate vg0 /dev/mapper/luks
    lvcreate --size 8G vg0 --name swap
    lvcreate -l +100%FREE vg0 --name root

    # Create filesystems on encrypted partitions
    mkfs.ext4 /dev/mapper/vg0-root
    mkswap /dev/mapper/vg0-swap

    # Mount the new system
    mount /dev/mapper/vg0-root /mnt # /mnt is the installed system
    swapon /dev/mapper/vg0-swap # Not needed but a good thing to test
    mkdir /mnt/boot
    mount /dev/sdX2 /mnt/boot
    mkdir /mnt/boot/efi
    mount /dev/sdX1 /mnt/boot/efi

    # Install the system also includes stuff needed for starting wifi when first booting into the newly installed system
    # Unless vim and zsh are desired these can be removed from the command
    pacstrap /mnt base base-devel grub-efi-x86_64 zsh vim efibootmgr dialog wpa_supplicant

    # 'install' fstab
    genfstab -pU /mnt >> /mnt/etc/fstab
    # Make /tmp a ramdisk (add the following line to /mnt/etc/fstab)
    tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

    # Enter the new system
    arch-chroot /mnt /bin/bash

    # Setup system clock
    ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
    hwclock --systohc --utc

    # Set the hostname
    echo MYHOSTNAME > /etc/hostname

    # Set password for root
    passwd

    # Add real user remove -s flag if you don't whish to use zsh
    # useradd -m -g users -G wheel,storage,power -s /bin/zsh MYUSERNAME
    # passwd MYUSERNAME

    # Configure mkinitcpio with modules needed for the initrd image
    vim /etc/mkinitcpio.conf
    # Add 'ext4' to MODULES
    # Add 'encrypt' and 'lvm2' to HOOKS before filesystems

    # Regenerate initrd image
    mkinitcpio -p linux

    # Setup grub
    grub-install
    In /etc/default/grub edit the line GRUB_CMDLINE_LINUX to GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX3:luks" then run:
    grub-mkconfig -o /boot/grub/grub.cfg

    # Exit new system and go into the cd shell
    exit

    # Unmount all partitions
    umount -R /mnt
    swapoff -a

    # Reboot into the new system, don't forget to remove the cd/usb
    reboot