Klik hier voor informatie over de wijziging in de levering van diensten en ondersteuning.

Ik gebruik trouwens Arch!

arch-linux

In de loop der jaren heb ik veel ervaring opgedaan met het veelzijdige Linux-besturingssysteem. Linux komt in vele smaken en distributies, en mijn avontuur begon met Red Hat Linux. Deze distributie bood me een solide basis in de wereld van open-source software. Vanaf dat moment begon mijn zoektocht naar de ultieme Linux-distributie.

Debian Linux

Na mijn eerste kennismaking met Linux, heb ik verschillende distributies uitgeprobeerd, waaronder Debian en SUSE Linux. In die tijd draaide ik Linux naast Windows, wat niet altijd praktisch was. Later ontdekte ik de kracht van virtualisatie door Linux als een virtuele machine binnen Windows te draaien. Dit bleek veel handiger, omdat ik niet steeds hoefde te schakelen tussen Windows en Linux door mijn computer opnieuw op te starten.

Elke Linux-distributie heeft zijn eigen voordelen en tekortkomingen, maar uiteindelijk stuitte ik op Debian. Hoewel ik ook Ubuntu heb geprobeerd, won Debian het vanwege stabiliteit en eenvoud (lees: nuchterheid).

Debian Linux is een populaire en invloedrijke distributie van het Linux-besturingssysteem. De naam "Debian" is een samenvoeging van de namen van de oprichter, Ian Murdock, en zijn toenmalige vriendin, Debra Lynn. Ian Murdock richtte het Debian-project op 16 augustus 1993 op, met als doel een stabiel en open Linux-distributiesysteem te creëren dat volledig door de gemeenschap wordt ontwikkeld en onderhouden.

Omdat ik steeds meer met Debian Linux werkte en Windows steeds minder nodig had, besloot ik op een gegeven moment om "de boel om te draaien" en Debian Linux als mijn primaire besturingssysteem te gebruiken. Om geen Windows-applicaties te missen, draai ik tot op de dag van vandaag Windows als virtuele machine op mijn Linux-laptops.

Een klein nadeel van Debian is dat sommige softwarepakketten wat verouderd kunnen zijn. Dit probleem kan echter vaak worden opgelost met behulp van Debian-backports. Backports bieden meer moderne, maar soms minder stabiele, versies van software zonder de stabiliteit van de Debian-installatie in gevaar te brengen.

Arch Linux

Omdat ik regelmatig oplossingen inricht op basis van diverse distributies, waaronder Arch Linux, vroeg ik me af of Arch Linux ook geschikt zou kunnen zijn als mijn dagelijkse besturingssysteem op één van mijn laptops.

Arch-XFCE

Arch Linux werd opgericht door Judd Vinet in maart 2002. Vinet, een Canadese programmeur, was geïnspireerd door de eenvoud en minimalisme van de CRUX Linux-distributie, en wilde een distributie creëren die flexibel, lichtgewicht en eenvoudig te begrijpen was.

De kernfilosofie van Arch Linux wordt samengevat in het principe van KISS (Keep It Simple, Stupid). Deze filosofie benadrukt eenvoud, transparantie en minimalisme, en streeft ernaar de gebruiker de controle te geven over het systeem. Arch Linux wordt geleverd met slechts de basiscomponenten, zodat gebruikers hun systeem volledig naar eigen wens kunnen configureren.

Arch Linux staat ook bekend om zijn rollende release-model, wat betekent dat er geen versies zijn zoals bij veel andere distributies. In plaats daarvan worden software-updates continu uitgebracht, waardoor gebruikers altijd de nieuwste versies van softwarepakketten hebben zonder dat ze het systeem opnieuw hoeven te installeren of een grote upgrade hoeven uit te voeren.

Wat mij aanspreekt is dat Arch Linux bekend staat om zijn “rolling release” model en de mogelijkheid om je systeem tot in de puntjes aan te passen. Het biedt mij veel controle en ik kan terug vallen op een actieve gemeenschap die altijd bezig is met het optimaliseren van de software. Dit klinkt allemaal veelbelovend, maar ik vroeg me af hoe stabiel Arch Linux in de praktijk zou zijn. Terwijl Debian juist stabiliteit nastreeft door beproefde (lees: vaak oudere) softwareversies te gebruiken, is Arch Linux 'bleading edge', wat betekent dat de allernieuwste versies beschikbaar zijn. Dit geldt niet alleen voor applicaties, maar ook voor alle softwarebibliotheken en de Linux Kernel zelf.

Het is misschien wat vreemd om juist Arch Linux stabiel te noemen, maar ik werd juist verrast door de stabiliteit van Arch Linux. Deze stabiliteit kan verklaard worden door de aanzienlijke verbeteringen in de kwaliteit van open-source software door de jaren heen. Bovendien staan de package maintainers van Arch Linux bekend als betrouwbaar. Uit eigen ervaring heb ik gezien dat problemen met bepaalde pakketten snel werden opgelost, nadat ik een melding had gedaan. Dit ging zelfs zover dat ik de maintainer opnieuw "ontmoette" in de upstream community van de desbetreffende software.

De “I Use Arch BTW!” Grap

Arch-Meme-Jarvis Iedereen die betrokken is bij de Linux-gemeenschap heeft ongetwijfeld de opmerking "I use Arch BTW!" (vrij vertaald: "Ik gebruik trouwens Arch!") voorbij zien komen. Deze opmerking is een soort meme geworden in de Linux-wereld (en daarbuiten). Maar wat is de oorsprong van deze grap?

De opmerking ontstond in een tijd waarin Arch Linux nog niet volledig vertrouwd werd door de bredere gemeenschap vanwege enkele stabiliteitsproblemen. Arch-gebruikers begonnen te vermelden dat ze Arch gebruikten om te bewijzen dat het een stabiele en bruikbare distro was. Dit hielp niet alleen om de bekendheid van Arch te vergroten, maar toonde ook aan dat het een levensvatbare keuze was voor dagelijks gebruik. arrogant_linux_elitist_by_archgamer_d8ii7dg

Nu, jaren later, is deze meme nog steeds populair, zelfs nu Arch meer mainstream is geworden. Dat komt overigens ook door op Arch gebaseerde distributies zoals EndeavourOS, wat een zeer gebruiksvriendelijke installatie biedt. De meme voelt aan als een soort erfenis van de vroege dagen en is blijven hangen in het collectieve geheugen van de vele Linux-gebruikers.

Installatie

De installatie van Arch Linux is nog steeds niet erg eenvoudig, maar met het commando archinstall kan men zich door de vele tekstgebaseerde vragen heen worstelen, waarna de installatie verder automatisch verloopt. Voor deze blog post heb ik er voor gekozen om de installatie handmatig uit te voeren. Het is mij nog niet eerder gelukt om met archinstall een installatie uit te voeren naar versleutelde opslag.

Eisen

Iedere gebruiker heeft specifieke voorkeuren en eisen. Wat ik bijvoorbeeld belangrijk vind, hoeft voor een ander niet belangrijk te zijn. Zo geef ik de voorkeur aan een stabiel besturingssysteem wat moderne software-versies ondersteund. Nog belangrijker is voor mij dat het opslaggebied (SSD of hardeschijf) versleuteld is. Omdat ik met laptops werk en reis, is de kans aanwezig dat ik ooit eens een laptop kwijt raak. Dat kan gebeuren door bijvoorbeeld een eigen fout of diefstal.

Het versleutelen van je laptop biedt gemoedsrust, omdat de gegevens zonder het juiste wachtwoord volledig ontoegankelijk zijn. Dit betekent dat, zelfs als je laptop in verkeerde handen valt, je persoonlijke en gevoelige informatie veilig blijft en niet zomaar kan worden ingezien of misbruikt.

Hardware

Momenteel heb ik een HP ZBook 15u G4, uit 2018 tot mijn beschikking. Deze laptop is uitgerust met een Intel Core i7-7500U processor (uit Q3 van 2016), 16 GB RAM, en een 256 GB M.2 NVMe SSD van Toshiba. Er zit ook een 1 TB HDD in die oorspronkelijk uit een Mac kwam, maar deze gebruik ik momenteel niet. Ik overweeg om de HDD te vervangen door een SSD, maar dat is voor later zorg.

Uit eigen ervaring weet ik dat deze laptop niet altijd stabiel draait met Windows. Het lijkt erop dat er een probleem is met de driver of met één van de twee video-adapters. Hoewel de laptop soms onder Linux ook vastliep, heb ik nog geen vergelijkbare problemen ondervonden met een op Arch-gebaseerde distributie. Desondanks weet ik dat deze laptop mogelijk niet de beste keuze is voor optimale stabiliteit. De installatie is succesvol verlopen, maar er waren aanpassingen nodig in verband met stabiliteit. De belangrijkste stappen beschrijf ik hieronder.

De beschrijving waarin ik uitleg hoe ik Arch Linux op mijn laptop heb geïnstalleerd is standaard ingeklapt. Klik op de volgende tekst om de uitleg uit te klappen en te lezen. Mocht je deze post niet lezen voor de technische uitleg, dan kun je het volgende overslaan en naar de conclusie doorbladeren.

[!] Klik hier om de installatiestappen in of uit te klappen

Voorbereidingen

Voor de installatie van Arch Linux heb ik een USB-stick gebruikt, die ik vooraf had ingericht met behulp van Ventoy. Ventoy is een handig programma dat het mogelijk maakt om meerdere installatiebestanden, zoals ISO's, op één USB-stick te zetten en vanaf deze USB-stick op te starten. Dit maakt het proces van het installeren van verschillende besturingssystemen of distributies eenvoudiger en efficiënter.

Met Ventoy hoef je geen aparte USB-sticks te gebruiken voor elke ISO; je kunt eenvoudig de gewenste ISO-bestanden naar de USB-stick kopiëren en vervolgens vanaf de USB-stick opstarten. Dit bespaart tijd en moeite, vooral als je regelmatig verschillende systemen test of installeert.

Naast het ISO-bestand voor de installatie van Arch Linux, had ik ook een ISO-bestand voor de GParted Live CD toegevoegd aan de USB-stick. Met GParted Live heb ik de NVMe SSD en de harddisk "gewist" door de partities te verwijderen.

Opstarten

Wanneer je de laptop aanzet, kun je met de toetsen ESC of F9 in het opstartmenu komen. In dit menu kun je de USB-stick selecteren als UEFI-opstartbron.

Tijdens het opstarten van Arch Linux liep ik direct tegen een probleem aan: het opstartproces bleef steken. Door de parameter acpi=off toe te voegen aan de opstartopties, kon ik de installatie toch starten.

Ook na de installatie ondervond ik opstartproblemen. Deze zijn inmiddels opgelost door extra drivers te laden tijdens het opstarten en door specifieke kernelparameters toe te voegen. Voor mijn HP ZBook waren de volgende parameters nodig: pci=nomsi,noaer i8042.nomux=1 i8042.reset intel_idle.max_cstate=1 idle=nomwait pcie_aspm=performance.

Netwerkverbinding

Omdat ik niet via de tekstconsole verbinding wilde maken met internet door middel van Wi-Fi, heb ik de laptop aangesloten op het netwerk met een netwerkkabel. Na het opstarten heb ik gecontroleerd of er verbinding was door een ping-test uit te voeren ping archlinux.org. Vervolgens heb ik de tijd gesynchroniseerd met timedatectl set-ntp true.

Partitionering SSD

Met ls /dev/nvme* controleerde ik de NVMe-apparaten. Ik zag dat het om /dev/nvme0n1 ging. Hier staat /dev voor device en nvme voor NVMe-controller. De 0 geeft aan dat het om de eerste controller gaat en n1 betekent dat het om de eerste NVMe-SSD gaat.

Met het commando fdisk -l kunnen de opslagapparaten ook gevonden worden. Let op de uitvoer. Voor mijn harddisk ziet dat er als volgt uit.

# fdisk -l
Disk **/dev/sda**: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: **APPLE HDD HTS541**
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x1ccaa1d9

Het verschil zit in de apparaatnaam (device name). Voor veel SATA apparatuur is de benaming /dev/sd?. Bij NVMe SSD's is het zoiets als/dev/nvme?n?. De werking is verder gelijk, maar de opmaak van de benaming wijkt van elkaar af.

Met fdisk heb ik een 1 GB EFI-partitie gemaakt van het type EFI System. Deze partitie mag kleiner zijn; 512 MB is een prima omvang. Vervolgens heb ik een primaire partitie gemaakt voor de rest van de SSD, van het type Linux Filesystem. Je zou ook cfdisk kunnen gebruiken.

Vervolgens heb ik de Linux-partitie versleuteld met: cryptsetup luksFormat /dev/nvme0n1p2. Het is cruciaal om het encryptiewachtwoord goed te onthouden (of te noteren). Verlies of vergeten van dit wachtwoord betekent dat je geen toegang meer hebt tot de gegevens!

Om naar de versleutelde partitie te kunnen schrijven, heb ik de partitie geopend met: cryptsetup open /dev/nvme0n1p2 cryptroot.

Voordat ik verder ging, zorgde ik ervoor dat de EFI-partitie en de versleutelde Linux-partitie waren voorzien van een bestandssysteem:

  • EFI-partitie: mkfs.fat -F32 /dev/nvme0n1p1
  • Primaire partitie: mkfs.ext4 /dev/mapper/cryptroot

Om de installatie voort te zetten, heb ik de bestandssystemen gekoppeld (het zogenaamde mounten):

  • mount /dev/mapper/cryptroot /mnt
  • mkdir /mnt/boot
  • mount /dev/nvme0n1p1 /mnt/boot

Hierdoor wordt het bestandssysteem van de EFI-partitie gekoppeld aan de directory mnt/boot op de net gemaakte ext4-partitie.

Arch Linux-basispakket

Nu de partities toegankelijk zijn, kan het Arch Linux-basispakket geïnstalleerd worden. Hiervoor kan pacstrap gebruikt worden: pacstrap /mnt base linux linux-firmware

Bestandssysteemtabel

Vervolgens heb ik fstab gegenereerd. Dit bestand geeft het systeem informatie over de beschikbare bestandssystemen en hoe deze gekoppeld (gemount) moeten worden tijdens het opstarten. De volgende opdracht genereert het fstab-bestand op basis van de huidige partities en voegt deze toe aan de installatie op de NVMe SSD:
genfstab -U /mnt >> /mnt/etc/fstab

Locatie nieuwe installatie

Aangezien we tot dit punt op de USB-stick hebben gewerkt en de installatie op de SSD (NVMe) van de laptop willen installeren, moeten we overschakelen naar de nieuwe locatie. Dit doen we door middel van arch-chroot, dat de root-directory van de nieuwe installatie op toegankelijk maakt als het actieve bestandssysteem: arch-chroot /mnt.

Systeemvariabelen

Vervolgens is het nodig diverse systeemvariabelen op te geven, zoals de tijdzone, regio (locale) en de computernaam.

Opmerking: voor het bewerken van tekstbestanden kun je meestal vi gebruiken, maar het is wellicht praktischer om nano te kiezen. Met het commando pacman -S nano kun je de nano tekstverwerker installeren, zodat met het commando nano gevolgd door het pad en de bestandsnaam het bestand geopend wordt.

Tijdzone:
Stel de tijdzone in en sync de hardware klok:

  • ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
    Opmerking: je kunt door /usr/share/zoneinfo navigeren om he geweneste gebied en plaats te vinden.
  • hwclock --systohc

Regio:
Stel de locale in:

  • Open /etc/locale.gen en decommentarieer en_US.UTF-8 UTF-8
  • Genereer locale: locale-gen
  • Stel de LANG variabel in: echo "LANG=en_US.UTF-8" > /etc/locale.conf

Computernaam:
Stel de computernaam in:

  • echo "myhostname" > /etc/hostname
    Toelichting: vul voor myhostname de naam van de computer in.

Hosts-tabel:

  • Pas /etc/hosts aan, zodat de inhoud er als volgt uit ziet. Vul bij myhostname.localdomain myhostname voor myhostname de computernaam in en vul in plaats van localdomain het gewenste domein in, zoals bijvoorbeeld thuis.inet.
    127.0.0.1   localhost
    ::1         localhost
    127.0.1.1   myhostname.localdomain myhostname

Installatie noodzakelijke pakketten

Installeer minimaal de Network Manager. Later kunnen nog meer pakketten geïnstalleerd worden, maar dan moet er wel een netwerkverbinding tot stand zijn gebracht. De Network Manager ondersteunt onder andere het automatisch instellen van netwerkgegevens door middel van DHCP.

pacman -S networkmanager
systemctl enable NetworkManager

Configuratie initramfs

Open /etc/mkinitcpio.conf en voeg encrypt toe aan de HOOKS-regel voor filesystems: HOOKS=(... encrypt filesystems ...)

Het is belangrijk dat encrypt voor filesystems staat, anders kan er niet met de versleutelde partitie gewerkt worden.

Nu de wijzigingen in mkinitcpio.conf verwerkt zijn, kan het initramfs gegenereerd worden. Dit moet om gewijzigde instellingen door te voeren:
mkinitcpio -P

Bootloader

Installeer en configureer GRUB. GRUB is de bootloader, waarmee het systeem gestart wordt:

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Open vervolgens /etc/default/grub en wijzig de GRUB_CMDLINE_LINUX regel om de UUID van de versleutelde partitie toe te voegen:
GRUB_CMDLINE_LINUX="cryptdevice=UUID=$(blkid -s UUID -o value /dev/nvme0n1p2):cryptroot root=/dev/mapper/cryptroot"

Genereer tot slot de GRUB-configuratie:
grub-mkconfig -o /boot/grub/grub.cfg

Wachtwoord root-user instellen

Stel het wachtwoord van de root user in, zodat er met de gebruiker root en het ingesteld wachtwoord op het systeem ingelogd kan worden. Het root-wachtwoord instellen kan door passwd in te voeren.

Afsluiten en herstarten.

Als laatste stap is het nodig om chroot te verlaten, de opslagsystemen af te koppelen en om te herstarten:

exit
umount -R /mnt
reboot

Verwijder tijdens de herstart de USB-stick.

Opstartprocedure

  • Na de herstart zou je gevraagd moeten worden om je wachtwoord in te voeren voor de versleutelde partitie. Hierna zou Arch Linux moeten opstarten naar je nieuwe installatie.
  • Voer voor gebruiker root in en het zelfgekozen wachtwoord.

Probleemoplossing

Uiteraard liep ik tegen diverse "problemen" aan en ontbraken er diverse programma's. Ook ontbrak de grafische omgeving nog. Hieronder geef ik eerst de wijzgingen in initramfs en GRUB weer, omdat die wijziging de opstart- en stabiliteitsproblemen van mijn laptop oplossen.

Aanpassingen initramfs
Het interne toetsenbord bleek niet te werken. Ik heb de volgende variabelen aangepast in /etc/mkinitcpio.conf. Het gaat om de volgende.

  • MODULES=(i8042 atkbd)
  • HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)

Vervolgens heb ik met mkinitcpio -p linux initramfs opnieuw opgebouwd. Let hierbij op, dat je in plaats van linux de juiste naam van de kernel invoert. Ik was in de tussentijd bijvoorbeeld geswitcht naar de LTS-versie. Het commando is in mijn geval als volgt: mkinitcpio -p linux-lts.

Aanpassingen GRUB

  • In GRUB heb ik de variabele GRUB_CMDLINE_LINUX_DEFAULT aangepast, door swithces mee te geven: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 pci=nomsi,noaer i8042.nomxu=1 i8042.reset intel_idle.max_cstate=1 idle=nomwait pcie_aspm=performance"
  • Vervolgens heb ik de wijzigingen doorgevoerd: grub-mkconfig -o /boot/grub/grub.cfg

Verdere inrichting

Het resultaat van het voorgaande is een kaal systeem, wat opstart en werkt maar verder nog niet erg functioneel is.

Gebruiker en sudo

Ten eerste is een normaal gebruikersaccount nodig. Met useradd -m -G wheel -s /bin/bash gebruikersnaam kan een gebruiker aangemaakt worden, die direct lid is van de groep wheel en als standaard command line interpretor bash gebruikt. Door de nieuwe gebruiker lid te maken van de groep wheel, kan op groepsniveau rechten voor het sudo-commando uitgedeeld worden. Het commando sudo is handig voor beheertaken, waarbij root-rechten nodig zijn.

Er is een wijziging nodig aan de configuratie van sudo. Met het volgende commando kan de sudo-configuratie geopend worden door middel van nano: EDITOR=nano visudo. Zorg ervoor dat de volgende regel actief is (door te decommentarieren; je haalt dan het #-teken weg:

%wheel ALL=(ALL:ALL) ALL

Het is nodig om uit- en weer in te loggen om de wijzigingen actief te maken. Met het commando sudo su en het opgeven van het nieuwe wachtwoord, kan overgeschakeld worden naar root-niveau. Het root-niveau kan afgesloten worden met het exit commando. Commando's kunnen ook als root uitgevoerd worden, vanuit de gebruikerscontext. Een voorbeeld is sudo pacman -Syu om systeemupdates te installeren.

Pakketten installeren

Je kunt denken aan de installatie van de volgende pakketten.

  • Essentiële ontwikkeltools: sudo pacman -S base-devel
  • Netwerk-utiliteiten: sudo pacman -S wget curl net-tools iproute2 inetutils dnsutils traceroute
  • Tekstverwerkingsgereedschappen: sudo pacman -S vim nano grep sed gawk less
  • Bestandsbeheer: sudo pacman -S rsync tree zip unzip tar gzip
  • Schijfbeheer: sudo pacman -S htop lsof iotop parted gparted gdisk sysstat
  • Versiebeheer: sudo pacman -S git
  • Systeemmonitoring: iftop nmon

    Grafische omgeving installeren

    Ik ben een fan van XFCE. Ik heb de volgende packages geïnstalleerd, om XFCE werkend te krijgen.

  • Xorg-server: sudo pacman -S xorg-server xorg-apps xorg-xinit
  • Drivers voor grafische chipsets inclusief het mesa-pakket: sudo pacman -S xf86-video-intel xf86-video-amdgpu mesa
  • XFCE inclusief goodies en Whisker-menu: sudo pacman -S xfce4 xfce4-goodies xfce4-whiskermenu-plugin
  • Display Manager: sudo pacman -S lightdm lightdm-gtk-greeter
  • Pulse-audio: sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol alsa-utils xfce4-pulseaudio-plugin

Vervolgens heb ik de display manager actief gemaakt: sudo systemctl enable lightdm. Om XFCE automatisch te starten bij het inloggen, heb ik .xinitrc in mijn home-directory aangemaakt: echo "exec startxfce4" > ~/.xinitrc

pacman-cupsIk heb uiteraard nog allerlei applicaties en andere zaken zoals lettertypen geïnstalleerd en configuratiewijzigingen doorgevoerd. Met het commando pacman -Ss zoekterm kunnen diverse softwarepakketten gevonden worden. Vul vooer zoekterm het gewenste onderdeel in, zoals bijvoorbeeld chromium of libreoffice. Ook heb ik yay geinstalleerd en de configuratie van pacman aangepast, zodat de voortgang weer wordt gegeven in de vorm van pacmannetjes, die rondjes opeten. Dit laatste kan geregeld worden door de variabelen Color en ILoveCandy toe te voegen aan (of actief te maken in) /.etc/pacman.conf. Twee andere handige variabelen zijn VerbosePkgLists voor uitgebreide informatie en ParallelDownloads = 5 voor gelijktijdige downloads.

Conclusie

Of Arch Linux nu mijn nieuwe dagelijkse besturingssysteem zal worden, is nog niet helemaal zeker. Maar de ontdekkingsreis die ik heb gemaakt door de verschillende distributies heeft me veel geleerd over de veelzijdigheid van Linux. Van Red Hat tot Debian, en nu Arch, het avontuur gaat door. Het is fascinerend om te zien hoe elke distributie zijn eigen unieke bijdragen levert aan het Linux-ecosysteem.

Als je ooit twijfelt over welke Linux-distributie voor jou het beste is, herinner je dan dat er altijd een hele wereld van opties en mogelijkheden is om te verkennen. En wie weet, misschien eindig je ook wel met die iconische opmerking: "I use Arch BTW."

Next Post Previous Post