Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save tayyabsayyad/6b0c9c7e42a8514b6e0a087e24a0e64a to your computer and use it in GitHub Desktop.
Save tayyabsayyad/6b0c9c7e42a8514b6e0a087e24a0e64a to your computer and use it in GitHub Desktop.
My Arch Installation Cheat Sheet

Install Arch Linux

This is my personal setup almost every time I install Arch Linux. This is meant for me as being something I can quickly reference.

Change localkeys to my keyboard layout

In my case I have a Danish keyboard layout.

loadkeys dk

You can find your keymap file by using localectl:

localectl list-keymaps

Or by simply looking inside the /usr/share/kbd/keymaps/ directory.

find /usr/share/kbd/keymaps/ -type f

Create Partitions

cfdisk

Set up the partions, mount and use swap

Let us say you have a simple setup:

  • /boot partition (ext2)
  • / partition (ext4)
  • /home partition (ext4)
  • /var partition (ext4)
  • /tmp partition (ext4)
  • swap partition [swap]

NOTE: lsblk is a very nice tool to doublecheck your partition(s) structure.

First we format to the file systems we want:

mkfs.ext2 /dev/sdaxY (/boot)
mkfs.ext4 /dev/sdaxY (/, /home, /var, /tmp)

Why do I use ext2 for the boot partition? No need to have a journal.

Create /mnt structure, one-liner:

mkdir -p /mnt/{boot,home,var,tmp}

And then mount the file systems to /mnt:

# Mount / (root)
mount /dev/sdaxY /mnt
# Mount /boot, /home, /var, /tmp
mount /dev/sdaxY /mnt/<point>

Let us not forget to make ("format") our swap and mount it as well:

mkswap /dev/sdaxY
swapon /dev/sdaxY

Installing the actual base system and sudo

Install the base system, with sudo as well.

pacstrap /mnt base base-devel sudo

Generate the fstab (so it knows how things are mounted)

This is why we had to mount everything as first, so genfstab would know what to do when generating the fstab.

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

chroot into the installed system with /bin/bash

arch-chroot /mnt /bin/bash

Locale (system language)

Depending on what you want, you change the /etc/locale.gen file:

nano /etc/locale.gen

NOTE: Use UTF-8 whenever possible.

DOUBLE NOTE: If you are from America, you don't need to change the file.

When done, you simply generate the locales you want and tell the system what you want to use.

Generate:

locale-gen

Tell the system what we use:

echo LANG=en_GB.UTF-8 > /etc/locale.conf
export LANG=en_GB.UTF-8

Timezone

Symlink/Set your timezone:

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

Set system to the Hardware Clock

hwclock --systohc --utc

Hostname

Choose an awesome hostname:

echo myhostname > /etc/hostname

Setting up DHCP for my Internet Card

systemd setup of your dhcp interface:

ip link
systemctl enable dhcpcd@my-device.service

Just simply using systemctl enable dhcpcdeth0.service won't work anymore. So I'm getting the correct device with ip link. (Usually the entry under the loop.)

Ramdisk

Initial ramdisk environment.

mkinitcpio -p linux

This actually ran under the pacstrap process, I just like to be safe.

Root Password

Be stronk:

passwd

Grub (Bootloader)

Well, we need a bootloader:

pacman -S grub

If I'm having Windows as well on another Partition, I'll also install os-prober.

grub-install --target=i386-pc --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Exit arch-chroot

exit

Umount /mnt and reboot

Unmount EVERYTHING and reboot the system.

umount /dev/sdaxY
reboot

NOTE: You can use umount -R /mnt to recursively unmount everything in /mnt

Login as Root to Arch Linux and permantly set the keymap (keyboard)

Now we want to make our keyboard layout permanent:

localectl set-keymap --no-convert dk

I obviously have "dk" for Danish layout. Substitute with your own layout.

NOTE: If you are a bloody American, you don't need to do this. US is default.

Check for updates, there's probably none

pacman -Syy
pacman -Syu

Add User and set Password

useradd -m -g users -G lp,scanner,audio,video,optical,network,games,wheel -s /bin/bash username
passwd username

Change sudoers file using nano

EDITOR=nano visudo

Uncomment wheel group.

# %wheel ALL=(ALL:ALL) ALL

Logout of Root

exit

Login as your username and test sudo with pacman

sudo pacman -Syy
sudo pacman -Syu

References

  1. https://www.linuxfordevices.com/tutorials/linux/how-to-install-arch-linux
  2. https://www.linuxfordevices.com/tutorials/linux/how-to-install-gui-on-arch-linux#To-install-MATE-Desktop-Environment
  3. https://snapcraft.io/install/cheat/arch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment