|
|
|
# Notes for installing archlinux
|
|
|
|
# UEFI boot: LVM on LUKS
|
|
|
|
#
|
|
|
|
# Based on Jason Wryan's instructions.
|
|
|
|
# See his full blog post:
|
|
|
|
# http://jasonwryan.com/blog/2013/01/25/uefi/
|
|
|
|
|
|
|
|
# check you are booted in uefi
|
|
|
|
efivar -l
|
|
|
|
|
|
|
|
### Set up disk.
|
|
|
|
# Nuke disk (just in case)
|
|
|
|
sgdisk -Z /dev/sdX
|
|
|
|
|
|
|
|
# Set disk partition alignment and clear all partition data
|
|
|
|
sgdisk -a 2048 -o /dev/sdX
|
|
|
|
|
|
|
|
# New partition for boot, 0 to 200M
|
|
|
|
sgdisk -n 1:0:+200M /dev/sdX
|
|
|
|
|
|
|
|
# The rest is for the LUKS partition
|
|
|
|
sgdisk -n 2:0:0 /dev/sdX
|
|
|
|
|
|
|
|
# Boot partition's type is EFI System
|
|
|
|
sgdisk -t 1:ef00 /dev/sdX
|
|
|
|
|
|
|
|
# LUKS partition is 'Linux filesystem'
|
|
|
|
sgdisk -t 2:8300 /dev/sdX
|
|
|
|
|
|
|
|
# Set partition names
|
|
|
|
sgdisk -c 1:bootefi /dev/sdX
|
|
|
|
sgdisk -c 2:root /dev/sdX
|
|
|
|
|
|
|
|
### Set up LUKS and encrypt sdX2
|
|
|
|
# The actual setup
|
|
|
|
cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512\
|
|
|
|
--iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdX2
|
|
|
|
|
|
|
|
# Mount the partition
|
|
|
|
cryptsetup luksOpen /dev/sdX2 cryptdisk
|
|
|
|
|
|
|
|
### Set up LVM on the LUKS partition
|
|
|
|
# setup logical volumes
|
|
|
|
pvcreate /dev/mapper/cryptdisk
|
|
|
|
pvdisplay
|
|
|
|
|
|
|
|
vgcreate vgroup /dev/mapper/cryptdisk
|
|
|
|
vgdisplay
|
|
|
|
|
|
|
|
# Partitioning. Customize this for yourself
|
|
|
|
lvcreate --size 30G --name lvroot vgroup
|
|
|
|
lvcreate --extents +100%FREE --name lvhome vgroup
|
|
|
|
lvdisplay
|
|
|
|
|
|
|
|
### Formatting partitions
|
|
|
|
# Boot should be vfat
|
|
|
|
mkfs.vfat -F32 /dev/sdX1
|
|
|
|
# The rest are ext4
|
|
|
|
mkfs.ext4 /dev/mapper/vgroup-lvroot
|
|
|
|
mkfs.ext4 /dev/mapper/vgroup-lvhome
|
|
|
|
|
|
|
|
### Mount the partitions
|
|
|
|
mount /dev/mapper/vgroup-lvroot /mnt
|
|
|
|
mkdir -p /mnt/boot/efi
|
|
|
|
mount -t vfat /dev/sdX1 /mnt/boot
|
|
|
|
mkdir /mnt/home
|
|
|
|
mount /dev/mapper/vgroup-lvhome /mnt/home
|
|
|
|
|
|
|
|
### Install base system ###
|
|
|
|
# Select a fast mirror
|
|
|
|
vim /etc/pacman.d/mirrorlist
|
|
|
|
# Install
|
|
|
|
pacstrap -i /mnt base base-devel
|
|
|
|
|
|
|
|
### Set up the fstab
|
|
|
|
genfstab -U -p /mnt >> /mnt/etc/fstab
|
|
|
|
# Make sure the fstab isn't totally broken
|
|
|
|
vim /mnt/etc/fstab
|
|
|
|
|
|
|
|
### Chroot into the new system
|
|
|
|
arch-chroot /mnt
|
|
|
|
|
|
|
|
### Misc modifications
|
|
|
|
# vi /etc/mkinitcpio.conf
|
|
|
|
# Add the following hooks
|
|
|
|
…encrypt lvm2 filesystems… shutdown…
|
|
|
|
# Add the following modules
|
|
|
|
vfat ext4 dm_mod dm_crypt aes_x86_64 i915
|
|
|
|
# generate new images
|
|
|
|
mkinitcpio -p linux
|
|
|
|
|
|
|
|
# add options to /etc/lvm/lvm.conf
|
|
|
|
issue_discards = 1
|
|
|
|
|
|
|
|
### Timezone (customize of course)
|
|
|
|
ln -s /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
|
|
|
|
|
|
|
|
### Set hostname
|
|
|
|
echo bbq > /etc/hostname
|
|
|
|
|
|
|
|
### Set up wired networking (check interface with ip link)
|
|
|
|
systemctl enable dhcpcd@enp0s3.service
|
|
|
|
|
|
|
|
### Set up wireless networking dependencies
|
|
|
|
pacman -S iw wpa_supplicant dialog wpa_actiond
|
|
|
|
|
|
|
|
### Root password
|
|
|
|
passwd
|
|
|
|
|
|
|
|
# set up bootloader
|
|
|
|
bootctl install
|
|
|
|
|
|
|
|
# create conf
|
|
|
|
# /boot/loader/loader.conf
|
|
|
|
default arch
|
|
|
|
timeout 5
|
|
|
|
|
|
|
|
# create /boot/loader/entries/arch.conf
|
|
|
|
title Arch Linux
|
|
|
|
linux /vmlinuz-linux
|
|
|
|
initrd /initramfs-linux.img
|
|
|
|
options cryptdevice=/dev/sdX2:vgroup root=/dev/mapper/vgroup-lvroot ro
|
|
|
|
|
|
|
|
|
|
|
|
###### After reboot
|
|
|
|
|
|
|
|
### Set up user account
|
|
|
|
useradd -m -g users -G wheel -s /bin/bash angrygoats
|
|
|
|
passwd angrygoats
|
|
|
|
|
|
|
|
|
|
|
|
# Add to sudoers (uncomment wheel comment)
|
|
|
|
visudo
|
|
|
|
|
|
|
|
### Pacman stuff
|
|
|
|
# Set up multilib for 32 bit applications (uncomment multilib)
|
|
|
|
vi /etc/pacman.conf
|
|
|
|
|
|
|
|
### Install yaourt
|
|
|
|
(diy)
|
|
|
|
|
|
|
|
### Extra setup for installations inside virtualbox
|
|
|
|
pacman -S virtualbox-guest-utils
|
|
|
|
modprobe -a vboxguest vboxsf vboxvideo
|
|
|
|
|
|
|
|
# Add to startup as well
|
|
|
|
systemctl enable vboxservice
|
|
|
|
|
|
|
|
# Start vbox client
|
|
|
|
VBoxClient-all
|
|
|
|
|
|
|
|
# Add to ~/.xinitrc
|
|
|
|
(diy)
|
|
|
|
|
|
|
|
### Editor (gvim for clipboard support, use console vim provided)
|
|
|
|
pacman -S gvim
|
|
|
|
|
|
|
|
### Check your particular graphics driver wiki and install and configure
|
|
|
|
### Xorg for it, as well as configure the correct options for modprobe
|
|
|
|
### and other files.
|
|
|
|
|
|
|
|
|
|
|
|
### Window management
|
|
|
|
### ALTERANTIVE (Awesome WM)
|
|
|
|
### pacman -S awesome vicious
|
|
|
|
### echo "exec awesome" >> ~/.xinitrc
|
|
|
|
### mkdir -p ~/.config/awesome/
|
|
|
|
### cp /etc/xdg/awesome/rc.lua ~/.config/awesome
|
|
|
|
pacman -S xorg-xinit xmonad xmonad-contrib
|
|
|
|
cat `exec xmonad` >> ~/.xinitrc
|
|
|
|
|
|
|
|
#### Extra: System repair via livecd quick commands
|
|
|
|
cryptsetup luksOpen /dev/sdX2 cryptdisk
|
|
|
|
mount /dev/mapper/vgroup-lvroot /mnt
|
|
|
|
mount -t vfat /dev/sdX1 /mnt/boot
|
|
|
|
arch-chroot /mnt
|