This is my personal setup almost every time I install Arch Linux. This is meant for me as being something I can quickly reference.
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
cfdisk
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
Install the base system, with sudo as well.
pacstrap /mnt base base-devel sudo
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
arch-chroot /mnt /bin/bash
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
Symlink/Set your timezone:
ln -s /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime
hwclock --systohc --utc
Choose an awesome hostname:
echo myhostname > /etc/hostname
systemd setup of your dhcp interface:
ip link
systemctl enable [email protected]
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.)
Initial ramdisk environment.
mkinitcpio -p linux
This actually ran under the pacstrap process, I just like to be safe.
Be stronk:
passwd
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
Unmount EVERYTHING and reboot the system.
umount /dev/sdaxY
reboot
NOTE: You can use umount -R /mnt
to recursively unmount everything in /mnt
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.
pacman -Syy
pacman -Syu
useradd -m -g users -G lp,scanner,audio,video,optical,network,games,wheel -s /bin/bash username
passwd username
EDITOR=nano visudo
Uncomment wheel group.
# %wheel ALL=(ALL:ALL) ALL
exit
sudo pacman -Syy
sudo pacman -Syu
References