(Dit artikel is vertaald vanuit het Engels)
Van plan om je Greenhost VPS te upgraden? Mooi! Het is belangrijk om het besturingssysteem van een VPS up-to-date te houden om ervoor te zorgen dat het soepel en veilig blijft draaien. OS-updates brengen nieuwe functies met zich mee, evenals verbeteringen op het gebied van beveiliging, bugfixes en optimalisaties om bronnen te besparen.
De nieuwste versies van Debian en Ubuntu hebben een belangrijke wijziging aangebracht in hoe sommige systeembestanden worden opgeslagen. In sommige situaties moet je een snelle en eenvoudige ingreep doen voordat je kunt upgraden naar Debian 12 Bookworm of Ubuntu 22.04 Jammy Jellyfish, omdat de upgrade niet direct werkt op een Greenhost VPS.
Dit artikel zal je vertellen hoe je kunt controleren of je de ingreep moet uitvoeren en zal je begeleiden bij de benodigde stappen.
Wat achtergrond
De geschiedenis van het Linux-bestandensysteem
Historisch gezien plaatsten Linux-distributies sommige systeembestanden in de /bin
, /sbin
en /lib
-mappen, terwijl andere systeembestanden werden geplaatst in de /usr
-map, in vergelijkbare submappen genaamd /usr/bin
, /usr/sbin
of /usr/lib
.
De eerste drie mappen werden meestal opgeslagen op een kleinere, maar snellere schijf, omdat ze crucuiale informatie bevatten die nodig is om de langzamere maar grotere /usr
-partitie te kunnen laden.
Met de grotere, snellere en goedkopere schijven wordt dit tegenwoordig niet meer gedaan: al die mappen bevinden zich nu doorgaans op dezelfde schijf [^usr_history].
Om die reden is de scheiding tussen een map aan de "root" van de schijf (/) en de equivalent ervan in /usr
niet meer nodig.
Om dingen gemakkelijker te maken en verwarring te verminderen, zijn distributies begonnen met het samenvoegen van mappen in wat het samengevoegde /usr
-mappenschema wordt genoemd.
Vanaf Debian 10 [^debian_usrmerge] en Ubuntu 19.04 [^ubuntu_usrmerge] worden nieuwe installaties gedaan met dit schema,
terwijl upgrades van eerdere versies het schema behouden dat ze al hadden.
Vanaf Debian 12 en Ubuntu 22.04 wordt het nieuwe schema echter afgedwongen tijdens het upgradeproces,
waarvoor nu het installeren en gebruiken van het pakket usrmerge
vereist is, met als doel de bestanden te verplaatsen volgens het nieuwe schema.
Hoe een Greenhost VPS gestart wordt
Om ervoor te zorgen dat onze klanten het beste uit hun VPS's halen en
regelmatige beveiligingsupdates garanderen, worden deze standaard gestart
met onze eigen build van de Linux-kernel.
Hiervoor mounten we een klein (in-memory) bestandssysteem met de kernelmodules
op /lib/modules
.
Deze aanpak werkt zowel met het oude als het nieuwe mappenschema.
Het upgraden van een actieve VPS van het oude schema naar het nieuwe is echter
ingewikkelder: usrmerge
ondersteunt deze manier van het laden van
kernelmodules niet, wat betekent dat een upgrade mislukt met de volgende foutmelding:
1
2
3
4
mv: cannot move '/lib/modules' to '/usr/lib/modules': Device or resource busy
FATAL ERROR:
mv --no-clobber /lib/modules /usr/lib/modules: rc=1
Om de migratie tool te laten werken, moet /lib/modules
eerst worden umounted
Om dit kunnen doen, moet het gebruik van het bestand systeem gestopt worden.
Meestal is het voldoende op de systemd-udevd-service
te stoppen.
Daarna kan usrmerge zonder problemen worden geïnstalleerd.
Als we echter alleen dat zouden doen, zou de VPS geen toegang meer hebben tot de kernelmodules totdat deze opnieuw wordt opgestart. Indien u niet wilt herstarten na gebruik en/of een andere reden hebt om de modules beschikbaar te houden, kunnen deze tijdelijk verplaatst worden.
Zorg ervoor dat je VPS klaar is voor de upgrade
Je kunt controleren of je actie moet ondernemen voor je VPS
door in te loggen en het commando uit te voeren: readlink /lib
.
Als je usr/lib
als output krijgt, hoef je niets te doen voor deze VPS.
Als je geen output krijgt, lees dan verder.
Zorg er eerst voor dat je VPS up-to-date is: voer het commando apt-cache policy usrmerge
uit.
Als je de melding krijgt N: Kan pakket usrmerge niet vinden,
moet je je besturingssysteem upgraden naar Debian 10 Buster of Ubuntu 16.04 Xenial Xerus.
Raadpleeg de documentatie van je distributie voor instructies hierover.
Verkrijg vervolgens rootrechten en voer de volgende commando's achtereenvolgens uit:
1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir /tmp/temp_modules
mount --bind /lib/modules /tmp/temp_modules
systemctl stop systemd-udevd
# You can safely ignore the warnings about the service being still able to be activated by sockets.
umount /lib/modules
apt install usrmerge
# Answer Yes if prompted to convert to the merged /usr directories scheme.
mount --bind /tmp/temp_modules /usr/lib/modules
systemctl start systemd-udevd
umount /tmp/temp_modules
rmdir /tmp/temp_modules
Als je geen foutmeldingen hebt gekregen, ben je nu succesvol in staat om te upgraden naar Debian 12 Bookworm of Ubuntu 22.04 Jammy Jellyfish!
Neem anders contact op met onze helpdesk, we helpen je graag verder.