Pitfalls and tips for ArchLinux installation
Recently I finished my first ArchLinux installation since 2010. Many things have change since I used the distro the last time and I felt a little bit helpless first.
The former ArchLinux installer isn't used anymore - the experienced Linux user has to prepare the hard drives for the installation on his own. The installation and configuration is executed using pacstrap
and arch-chroot
.
While you could configure your whole system using the /etc/rc.conf
configuration file before you will have to customize several configuration files now. The most important configuration files are /etc/hostname
, /etc/locale.conf
and /etc/vconsole.conf
.
After finishing the basic installation of the the system (you might want to have a look at the install.txt
file) I customized the following files to relocate ArchLinux to the german language:
1# echo "LANG=de_DE.UTF-8" > /etc/locale.conf
2# echo "KEYMAP=de-latin1-nodeadkeys" > /etc/vconsole.conf
3# ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
If you're using LVM and a dedicated logical volume for the /usr
file system you have to customize the /etc/mkinitcpio.conf
configuration file:
1# vi /etc/mkinitcpio.conf
2...
3HOOKS=”base udev autodetect modconf block lvm2 filesystems usr keyboard fsck"
4...
5ESC ZZ
6
7# mkinitcpio -p linux
The variable HOOKS
needs to be expanded by the entries lvm2
and usr
- afterwards the ramdisk needs to rebuilt. Otherwise the boot will fail:
ERROR: Root device mounted successfully, but /sbin/init does not exist. Bailing out, you are on your own now. Good luck.
1sh: can't access tty: job control turned off
2[rootfs /]# _
Of course ArchLinux comes with the most recent GRUB version 2 - compared to the previous version the installation process differs slightly:
1# grub-install --recheck /dev/sda
2# grub-mkconfig -o /boot/grub/grub.cfg
It is quite interesting at this point that grub-mkconfig
only recognizes installed kernels while creating the configuration when the kernel file names are alike the following schematas:
/boot/vmlinuz-*
/vmlinuz-*
/boot/kernel-*
The kernel file name of my last CRUX Linux installation was vmlinuz
- and I was wondering why the boot loader didn't find any kernels... 😉
Because ArchLinux consequently implements the systemd concept DHCP isn't enabled using the conventional network configuration - it is configured using systemctl
instead:
1# systemctl enable dhcpcd@ens32
2# systemctl start dhcpcd@ens32
At this point you might also want to install the most recent available updates:
1# pacman -Syu
🙂