Install Arch Linux with full disk encryption (including /boot) and UEFI.

# Desired layout:
+---------------+----------------+----------------+----------------+
|ESP partition: |Boot partition: |Volume 1:       |Volume 2:       |
|               |                |                |                |
|/boot/efi      |/boot           |root            |swap            |
|               |                |                |                |
|               |                |/dev/vg0/root   |/dev/vg0/swap   |
|/dev/sda1      |/dev/sda2       +----------------+----------------+
|unencrypted    |LUKS encrypted  |/dev/sda3 encrypted LVM on LUKS  |
+---------------+----------------+---------------------------------+

# Download the archiso image from https://www.archlinux.org/
# Check md5 and sha1 sums
md5sum archlinux.iso
sha1sum archlinux.iso

# Copy to a usb-drive
dd if=archlinux.iso of=/dev/sdX bs=16M && sync

# Insert this flash-drive into PC and boot this image

# Securely wipe drive according this article
# https://wiki.archlinux.org/index.php/Dm-crypt/Drive_preparation

# Connect to Wi-Fi, skip this if you have wired connection
wifi-menu

# Test Internet connection
ping google.com

# Enable network time synchronization
timedatectl set-ntp true
                                                                                                                                                                                             
# Check it                                                                                                                                                                                   
timedatectl status                                                                                                                                                                           
                                                                                                                                                                                             
# Create partitions                                                                                                                                                                          
gdisk /dev/sda                                                                                                                                                                               
                                                                                                                                                                                             
# Use "o" to create GPT table                                                                                                                                                                
# "n" to create partitions:                                                                                                                                                                  
# Number  Start (sector)    End (sector)  Size       Code  Name
#    1            2048         1050623   512.0 MiB   EF00  EFI System
#    2         1050624         1460223   200.0 MiB   8300  Linux filesystem
#    3         1460224      1679181823   800.0 GiB   8E00  Linux LVM
# "w" to write changes
# "q" to quit

# Make filesystem for EFI
mkfs.fat -F32 /dev/sda1

# Create crypted /boot container
cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 cryptboot
mkfs.ext2 /dev/mapper/cryptboot

# Create crypted LVM with /root and swap
cryptsetup luksFormat /dev/sda3
cryptsetup open /dev/sda3 cryptlvm
pvcreate /dev/mapper/cryptlvm
vgcreate vg0 /dev/mapper/cryptlvm
lvcreate -L 16G vg0 -n swap
lvcreate -l 100%FREE vg0 -n root
mkfs.ext4 /dev/mapper/vg0-root
mkswap /dev/mapper/vg0-swap

# Mount
swapon /dev/mapper/vg0-swap
mount /dev/mapper/vg0-root /mnt
mkdir /mnt/boot
mount /dev/mapper/cryptboot /mnt/boot
mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi

# Check
lsblk

# You will have something like this:
#
# NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
# loop0            7:0    0 347.9M  1 loop  /run/archiso/sfs/airootfs
# sdb              8:32   1   3.8G  0 disk  
# ├─sdb2           8:34   1    40M  0 part  
# └─sdb1           8:33   1   797M  0 part  /run/archiso/bootmnt
# sda              8:0    0 931.5G  0 disk  
# ├─sda2           8:2    0   200M  0 part  
# │ └─cryptboot  254:0    0   198M  0 crypt /mnt/boot
# ├─sda3           8:3    0   800G  0 part  
# │ └─cryptlvm   254:1    0   800G  0 crypt 
# │   ├─vg0-swap 254:2    0    16G  0 lvm   [SWAP]
# │   └─vg0-root 254:3    0   784G  0 lvm   /mnt
# └─sda1           8:1    0   512M  0 part  /mnt/boot/efi

# Install system
pacstrap /mnt base base-devel grub-efi-x86_64 vim git efibootmgr dialog wpa_supplicant

# Generate fstab
genfstab -pU /mnt >> /mnt/etc/fstab

# Chroot into our newly installed system 
arch-chroot /mnt

# Set timezone, hostname...
ln -sf /usr/share/zoneinfo/Europe/Minsk /etc/localtime
hwclock --systohc --utc
echo archlinux > /etc/hostname

# Configure locales
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf

# Set root password
passwd

# Open this file
vim /etc/mkinitcpio.conf
# and replace HOOKS="..." with HOOKS="base udev autodetect modconf block keymap encrypt lvm2 resume filesystems keyboard fsck"
# use "i" key to edit (insert something), ESC and ":wq" to write changes and quit

# Regenerate initrd image
mkinitcpio -p linux

# If you got warnings about missing firmware for wd719x and aic94xx, you can ignore it, with high probability you don't even have this hardware
# But you can install it from AUR if you actually use it

# Change grub config
echo "GRUB_ENABLE_CRYPTODISK=y" >> /etc/default/grub
sed -i "s#^GRUB_CMDLINE_LINUX=.*#GRUB_CMDLINE_LINUX=\"cryptdevice=UUID=$(blkid /dev/sda3 -s UUID -o value):lvm resume=/dev/mapper/vg0-swap\"#g" /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg

# If you got errors "/run/lvm/lvmetad.socket: connect failed: No such file or directory", that's OK
# you can get rid of this errors with some workarounds, but this is not really necessary
# but in any case DO NOT disable lvmetad! This installation will not work without it

# Install grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux

# It is necessary for mounting /boot without password request
dd bs=512 count=8 if=/dev/urandom of=/etc/key
chmod 400 /etc/key
cryptsetup luksAddKey /dev/sda2 /etc/key
echo "cryptboot /dev/sda2 /etc/key luks" >> /etc/crypttab

# Same thing: open LVM without password prompt
dd bs=512 count=8 if=/dev/urandom of=/crypto_keyfile.bin
chmod 000 /crypto_keyfile.bin
cryptsetup luksAddKey /dev/sda3 /crypto_keyfile.bin
sed -i 's\^FILES=.*\FILES="/crypto_keyfile.bin"\g' /etc/mkinitcpio.conf
mkinitcpio -p linux
chmod 600 /boot/initramfs-linux*

# Enable Intel microcode CPU updates (if you use Intel processor, of course)
pacman -S intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg

# Some additional security
chmod 700 /boot
chmod 700 /etc/iptables

# Create non-root user, set password
useradd -m -g users -G wheel YOUR_USER_NAME
passwd YOUR_USER_NAME

# Open file
vim /etc/sudoers
# and uncomment string %wheel ALL=(ALL) ALL

# Exit from chroot, unmount system, shutdown, extract flash stick. You made it! Now you have fully encrypted system.
exit
umount -R /mnt
swapoff -a
shutdown now

# For additional security, start PC, login in UEFI menu during boot (in most cases by pressing F2 or DEL)
# enable Secure boot option, and choose our EFI image as trusted. Path will be something like this:
# HDD0 -> EFI -> ArchLinux -> grubx64.efi

# Of course, you must protect UEFI menu with password.
# Choose DIFFERENT password from that you used for encryption, because some lazy manufacturers store this password not securely enough.

# Reboot again, login as user, use sudo for installation all other software you want: drivers, display server, desktop environment, etc...