Tips en Trucs 2019

Foolproof Linux

Als je iets van computers kent, wordt je al vlug de systeembeheerder van de familie, vrienden, verenigingen, enz. Na verloop van tijd ben je enkel nog bezig met het herstellen van configuraties die (meestal) onbewust door onwetendheid en/of onhandigheid werden aangepast. Zo mag je uitrukken voor problemen zoals "Ik hoor niets bij het afspelen van YouTube filmpjes" of "Mijn scherm is veel te donker". De ideale oplossing is dan het resetten van de persoonlijke configuratie bij elke herstart. Je leert de leken dan één oplossing: herstart de computer en alles werkt weer.

Voorwaarde

Om dit te bereiken moet je bij de installatie van het Linux systeem de /home map met de configuraties van de verschillende gebruikers op een aparte partitie plaatsen.

Voorbereiding

Na de installatie van het besturingssysteem, configureer je de gebruiker(s) naar wenst. Zorg voor een zo eenvoudig mogelijke en gebruiksvriendelijke grafische omgeving.

De Persoonlijke configuraties bevriezen

We zorgen dat de Persoonlijke configuraties bij elke herstart van de computer hersteld worden door de voorgeconfigureerde /home partitie alleen lezen beschikbaar te maken. Bovenop deze alleen schrijven voorgeconfigureerde /home partitie leggen we een tweede partitie in het RAM geheugen van de computer waarin je wel gegevens kunt wegschrijven. Zo zijn voor programma's de voorgeconfigureerde bestanden in de /home map te lezen en worden eventuele aanpassingen en nieuwe bestanden in het RAM geheugen opgeslagen. Het benodigde RAM geheugen past zich dynamisch aan aan de hoeveelheid aangepaste en nieuwe bestanden. De in het RAM geheugen opgeslagen gegevens worden bij een herstart echter zonder pardon vernietigd en start het systeem terug met de voorgeconfigureerde omgeving op.

Eerst installeren we software om twee partitie te koppelen aan dezelfde map (over elkaar te leggen):

dany@pindabook:~> sudo zypper install unionfs-fuse
[sudo] wachtwoord voor root: 
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...

Het volgende NIEUWE pakket zal worden geïnstalleerd:
  unionfs-fuse

1 nieuw te installeren pakket.
Totale downloadgrootte: 53,1 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 113,8 KiB worden gebruikt.
Doorgaan? [j/n/v/...? alle opties tonen] (j): 
pakket unionfs-fuse-1.0-lp151.2.3.x86_64 wordt opgehaald                                       (1/1),  53,1 KiB (113,8 KiB uitgepakt)
Ophalen: unionfs-fuse-1.0-lp151.2.3.x86_64.rpm ..............................................................................[gereed]

Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/1) Installeren van: unionfs-fuse-1.0-lp151.2.3.x86_64 ....................................................................[gereed]

Daarna maken we een map (/var/users/homero) om de voorgeconfigureerde partitie alleen lezen (Read Only) aan te koppelen. Een tweede map (/var/users/homerw) wordt aangemaakt om het RAM geheugen schrijfbaar (writable) aan te koppelen.

dany@pindabook:~> sudo mkdir -p /var/users/homero
dany@pindabook:~> sudo mkdir /var/users/homerw

Daarna passen we het koppelen van de partities bij het opstarten aan:

dany@pindabook:~> sudo nano /etc/fstab

Daarbij schakel ik de originele configuratie uit door er commentaar van de maken (# voor de regel plaatsen). De drie extra actieve regels zorgen dat de voorgeconfigureerde partitie (/dev/sdb1) alleen lezen wordt gekoppeld aan de map /var/users/homero, het RAM geheugen (none) wordt schrijfbaar gekoppeld aan de map var/users/homerw en uiteindelijk worden de twee mappen op elkaar gelegd en gekoppeld aan de map /home:

UUID=33b64539-5d67-4e8c-b3b5-83e6dd7dc1bf  /                    ext4  acl,user_xattr  0  1
UUID=b9f19cec-a3ce-4e7e-8635-187310973824  swap                 swap  defaults        0  0
UUID=820d7da4-657f-4918-b863-6d2b847e8ba3  /usr/home/Documents  ext4  defaults        0  2
UUID=0C54-931D                             /boot/efi            vfat  defaults        0  0

# Originele home partitie, activeren om te configureren
#/dev/sdb1                                  /home                ext4  defaults        0  2

# Beveiligde home partitie, reset bij elke herstart
/dev/sdb1                                  /var/users/homero    ext4  defaults        0  2
none                                       /var/users/homerw    tmpfs defaults        0  0
/var/users/homerw=rw:/var/users/homero=ro  /home                fuse.unionfs   cow,allow_other,use_ino,suid,dev,nonempty 0 0

Sla de aanpassingen op en verlaat nano. Voor je herstart, test je de nieuwe configuratie met de opdracht:

dany@pindabook:~> sudo mount -a
[sudo] wachtwoord voor root:

Enkel indien deze opdracht geen foutmelding heeft, kan je het systeem herstarten. Na de herstart kan je testen door enkele gebruikersinstellingen aan te passen (zoals een ander bureaubladachtergrond). Na de volgende herstart zullen de aangepaste gebruikersinstellingen terug de voorgeconfigureerde waarde hebben.

dany@pindabook:~> sudo shutdown -r now

De voorgeconfigureerde /home partitie aanpassen

Soms heb je iets over het hooft gezien of wil je een instelling voor de gebruiker aanpassen. Daarvoor maak je de voorgeconfigureerde /home partitie terug beschrijfbaar.

dany@pindabook:~> sudo nano /etc/fstab

Daarbij activeer ik de originele configuratie terug door het commentaarteken # voor de regel te verwijderen. De drie regels voor het resetten van de configuratie schakel ik uit door er #-tekens voor te plaatsen:

UUID=33b64539-5d67-4e8c-b3b5-83e6dd7dc1bf  /                    ext4  acl,user_xattr  0  1
UUID=b9f19cec-a3ce-4e7e-8635-187310973824  swap                 swap  defaults        0  0
UUID=820d7da4-657f-4918-b863-6d2b847e8ba3  /usr/home/Documents  ext4  defaults        0  2
UUID=0C54-931D                             /boot/efi            vfat  defaults        0  0

# Originele home partitie, activeren om te configureren
/dev/sdb1                                  /home                ext4  defaults        0  2

# Beveiligde home partitie, reset bij elke herstart
#/dev/sdb1                                  /var/users/homero    ext4  defaults        0  2
#none                                       /var/users/homerw    tmpfs defaults        0  0
#/var/users/homerw=rw:/var/users/homero=ro  /home                fuse.unionfs   cow,allow_other,use_ino,suid,dev,nonempty 0 0

Sla de aanpassingen op en verlaat nano. Voor je herstart, test je de nieuwe configuratie met de opdracht:

dany@pindabook:~> sudo mount -a
[sudo] wachtwoord voor root:

Enkel indien deze opdracht geen foutmelding heeft, kan je het systeem herstarten.

dany@pindabook:~> sudo shutdown -r now

Na de herstart kan je voorgeconfigureerde gebruikersinstellingen aanpassen.

Autostart script

Om hardware instellingen zoals het geluidsvolume bij elke start te resetten gebruik ik een script. Eerst maken we een map om het autostart script in te plaatsen.

dany@pindabook:~> mkdir .local/bin
dany@pindabook:~> nano .local/bin/pref.sh

Met het volgende script zorgen we dat het volume maximaal wordt ingesteld:

#!/bin/bash

# Maximum volume
amixer set Master 100%
# Geluid afspelen
ogg123 /usr/share/sounds/Oxygen-Sys-Log-In.ogg

Maak het script uitvoerbaar met de opdracht:

dany@pindabook:~> chmod +x .local/bin/pref.sh

Daarna maken we de autostart map aan, waarin .desktop bestanden staan waarin beschreven staat hoe scripts en programma's automatisch opgestart moeten worden.

dany@pindabook:~> mkdir .config/autostart
mkdir: kan map ‘.config/autostart’ niet aanmaken: Bestand bestaat al

Dit was in mijn geval niet nodig. Het .desktop bestand met de opstartbeschrijving maken we aan met nano:

nano .config/autostart/pref.desktop

En krijgt de volgende inhoud:

[Desktop Entry]
Comment=
Terminal=false
Name=Pref
Exec=/home/dany/.local/bin/pref.sh
Type=Application
Icon=preferences-desktop-accessibility

Pas in de Exec= de naam van de gebruiker aan, m.a.w. vervang dany door de gebruiker op uw systeem. Daarna geef je het bestand uitvoerrechten:

dany@pindabook:~> sudo chmod +x .config/autostart/pref.desktop
[sudo] wachtwoord voor root:

Vergeet na het testen niet terug het /etc/fstab bestand aan te passen om de configuratie te resetten bij het herstarten.

Foolproof Linux

Het resetten van de beeldhelderheid is een stuk complexer en afhankelijk van de grafische kaart en de gebruikte stuurprogramma's. Meer daarover kan je vinden op de Backlight pagina van archlinux.

Zeer oude computers

Oudere computers tover ik om in snelle, moderne computers met de Raspberry Pi Desktop distributie. Mits enkele kleine aanpassingen werkt bovenstaande methode ook voor de Raspberry Pi Desktop distributie.