README.md |
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