This is a more recent article I put together on how to install Arch linux with EUFI on a Lenovo ThinkPad T470p with secure boot disabled. This article assumes you are using a US keyboard layout. You should also read the official Arch installation guide https://wiki.archlinux.org/index.php/installation_guide.
My ThinkPad uses a NVMe (Non-Volatile Memory Express) storage interface drive. I call this out because you will see my notes referencing /dev/nvme0n1 in the notes below.
- 
Verify boot mode: - This is an important set when working with a UEFI system. Run the below command and if the directory does not exist, the system may not be booted in UEFI mode.
- ls /sys/firmware/efi/efivars(If the directory exist your computer supports EFI)
 
- 
Ping some site on the internet to verify connection: - Use ip linkto verify your network devices
- If necessary, use iwctlto setup your wireless
- Run pingto check to see if you already have an internet connection
- ping archlinux.org -c 5
 
- Use 
- 
Update system clock: - View the current status of your clock by running timedatectl status
- Run the following command to ensure your system clock is correct timedatectl set-ntp true
- This will set your date and time to update remotely using network time protocol
 
- View the current status of your clock by running 
- 
Go to https://archlinux.org/mirrorlist and find the closest mirror that supports HTTPS: - Add the mirrors on top of the /etc/pacman.d/mirrorlistfile.
- Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch(United States)
 
- Add the mirrors on top of the 
- 
Run fdisk -lto show you disks
- 
cfdisk -z /dev/the_disk_to_be_partitionedin my case it would becfdisk -z /dev/nvme0n1
- 
Select gpt
- 
Create EFI partition: - New
- 1G
- Type
- EFI System
- Write
 
- 
Create root partition: - Select free space
- New
- Use rest of the space
- Linux root (x86-64) filesystem
- Write
 
- 
Create the filesystems and encryption: - fdisk -lto view the partitions for the next step
- mkfs.vfat -F32 -n EFI /dev/nvme0n1p1
- cryptsetup --use-random luksFormat /dev/nvme0n1p2(you will be prompted to type a passphrase)
- cryptsetup luksOpen /dev/nvme0n1p2 luks
 
- 
Create logical partitions - pvcreate /dev/mapper/luks
- vgcreate vol_grp /dev/mapper/luks
- lvcreate --size 8G vol_grp --name swap
- lvcreate -l +100%FREE vol_grp --name root
 
- Format the root and swap partitions
- mkfs.ext4 -L root /dev/mapper/vol_grp-root
- mkswap /dev/mapper/vol_grp-swap
 
- 
Mount the filesystems. - mount /dev/mapper/vol_grp-root /mnt
- swapon /dev/mapper/vol_grp-swap
- mount --mkdir /dev/nvme0n1p1 /mnt/boot
 
- 
Install Arch linux base packages: - Use the following if you want to include VIM:
- pacstrap -K /mnt base base-devel linux linux-firmware sudo lvm2 efibootmgr intel-ucode xf86-video-intel vi vim
 
- 
Generate the /etc/fstabfile:- genfstab -U /mnt >> /mnt/etc/fstab
 
- 
Chroot into installed system: - arch-chroot /mnt
 
- 
Set the timezone: - ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
 
- 
Update the Hardware clock: - hwclock --systohc
 
- 
Set locale: - sed -i 's/#en_US.UTF-8/en_US.UTF-8/g' /etc/locale.gen(uncomment en_US.UTF-8)
- or vim /etc/locale.genand manually uncomment en_US.UTF-8
- locale-gen
 
- 
Set your hostname and configure hosts - echo myhostname > /etc/hostname
- Update /etc/hostswith the following:
 127.0.0.1 localhost ::1 localhost 127.0.1.1 myhostname.localdomain myhostname
- 
Set the root password - passwd
 
- 
Let’s enable the network - If you don’t do this before your reboot you won’t have internet connection
- pacman -S networkmanager
- systemctl enable NetworkManager
 
- 
Create the initial ramdisk environment - vim /etc/mkinitcpio.conf
 Update mkinitcpio.conf to the values below: MODULES=(ext4) BINARIES=() FILES=() HOOKS=(base udev autodetect modconf block encrypt lvm2 resume filesystems keyboard fsck)- `mkinitcpio -p linux` - `bootctl --path=/boot install`
- 
Boot loader settings - echo default archlinux >> /boot/loader/loader.conf
- echo timeout 4 >> /boot/loader/loader.conf
 
- 
Find the UUID of encrypted partition using blkid- blkid
 vim /boot/loader/entries/archlinux.confThen enter the following information: title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options cryptdevice=UUID="YOUR-UUID-HERE":vol_grp root=/dev/mapper/vol_grp-root resume=/dev/mapper/vol_grp-swap rw intel_pstate=no_hwp
- 
Exit, unount and reboot: - exit
- umount -R /mnt
- reboot
 
- 
Install throttledwhich is a workaround for Intel throttling issues. Read more about it here.- pacman -S throttled
- sudo systemctl enable --now throttled.service
 
Thanks for visiting!
 
   
  