Arch Linux Install

Arch Linux Install

Warning

Copy and pasted from various sources. Use at your own risk etc.

Prepare the Hard disk

Boot gparted from an usb-stick and configure your disk as follows:

  1. Set your partition table to MBR
  2. Create the fist partition (later used as /boot): 200 MB, set the bootable flag, filesystem: ext3
  3. Create the second partition (later used with LVM, containing /, /swap and /home): use the remaining space, leave it unformatted, set the LVM flag

For more information on partitioning have a look at the Arch Linux wiki. If you don’t want to use gparted you can just boot the Arch Linux Iso and use parted or fdisk.

It’s also possible to use GPT instead of MBR you will need a third partition with about 2MB, but I won’t describe this here – just come back when you figured it out. Using a UEFI setup you also have to search for an other source of information ;)

Boot Arch Linux Iso from usb-stick

Search for your keyboard layout and activate it:

loadkeys de-latin1-nodeadkeys.map.gz

Establish WiFi-connection if you don’t have wired access to the Internet:

wifi-menu

Encrypt partition, configure LVM

Load the kernel module for encryption:

modprobe dm-crypt

Encrypt the big partition (sda2) with AES, 256 bit keylength (XTS splits the keylength). Have fun with the man and faq.

cryptsetup -c aes-xts-plain64 -y -s 512 luksFormat /dev/sda2

And open it, so it will be in /dev/mapper/lvm:

cryptsetup luksOpen /dev/sda2 lvm

Create a physical volume, volume group, logical volumes (details):

pvcreate /dev/mapper/lvm
vgcreate main /dev/mapper/lvm
lvcreate -L 20GB -n root main
lvcreate -L 8GB -n swap main
lvcreate -l 100%FREE -n home main

Now we need a filesystem on them:

mkswap /dev/mapper/main-swap
mkfs.ext4 /dev/mapper/main-root
mkfs.ext4 /dev/mapper/main-home

Step 4: Mount volumes, install Arch Linux

Mount the volumes into the running livesystem:

mount /dev/mapper/main-root /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/mapper/main-home /mnt/home

Install the base and base-devel packets to /mnt (Internet-connection required):

pacstrap /mnt base base-devel

Install GRUB2 to /mnt (part 1):

pacstrap /mnt grub-bios

Generate fstab:

genfstab -p -U /mnt > /mnt/etc/fstab

chroot and configure the system

Enter the chroot:

arch-chroot /mnt

delete the # in front of your language of choice (e.g. de_DE.UTF-8 UTF-8) in locale.gen and generate the locale:

vi /etc/locale.gen
locale-gen
echo LANG=de_DE.UTF-8 > /etc/locale.conf
export LANG=de_DE.UTF-8

Generate /etc/vconsole.conf with the following 3 lines to bind your keys correctly:

KEYMAP="de-latin1-nodeadkeys"
FONT=Lat2-Terminus16
FONT_MAP=

Create a symbolic link /etc/localtime to your zone file /usr/share/zoneinfo/<Zone>/<SubZone>:

ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Define your hostename:

echo archserv > /etc/hostname
systemctl enable lvm.service

Edit /etc/mkinitcpio.conf: Put keymap, encrypt and lvm2 (in that order!) before filesystems in the HOOKS array.

Regenerate the ramdisk:

mkinitcpio -p linux

Now install GRUB (part 2), on a device not a partition or a volume:

grub-install /dev/sda

In /etc/default/grub edit the line GRUB_CMDLINE_LINUX="" to GRUB_CMDLINE_LINUX=”cryptdevice=/dev/sda2:main" then run:

grub-mkconfig -o /boot/grub/grub.cfg

set your root password:

passwd

Exit the chroot:

exit

Unmount:

umount /mnt/boot
umount /mnt/home
umount/mnt

Reboot into your new system.

Postscript

If you want to open your LVM from within an other (live-)system these commands can come in handy:

cryptsetup luksOpen /dev/sd??
sudo pvscan
sudo vgscan
sudo lvscan
sudo vgchange -a y