Debian

Upgrade Debian 10 naar 11

Debian staat niet alleen bekend om zijn uitzonderlijke stabiliteit, maar ook om zijn uitgebreide documentatie. Wil je volledig voorbereid zijn, lees dan zeker de Debian release notes door, daarin wordt in hoofdstuk 4 de upgrade in detail beschreven. De stappen in onderstaand artikel zijn voor de meeste systemen van toepassing.

Voor het upgraden

Voordat we met de werkelijke technische upgrade starten, sta zeker even stil bij deze puntjes:

  • Tijdens de upgrade is je systeem onbeschikbaar. Breng zeker de gebruikers ervan tijdig op de hoogte en plan de upgrade in tijdens een moment dat de server het minst nodig is.
  • Maak een volledige back-up van zowel je configuratie als je data. Upgrade je een virtuele machine, dan kan dat ook gemakkelijk met bv. een snapshot.
  • Doe je de upgrade op afstand, hou er rekening mee dat het kan zijn dat je SSH verbinding zal wegvallen. Zorg er best voor dat je kan inloggen via een console of via een lights-out management console.
  • Hou een installatiebestand van Debian 11 bij de hand wat je kan gebruiken als recovery-medium wanneer je systeem niet meer wilt opstarten na de upgrade.

Het upgradeproces

Om je systeem te upgraden, heb je uiteraard administrator rechten nodig. We raden aan om in te loggen als root-gebruiker.

Stap 1: controleer je huidige Debian versie

Om te upgraden naar Debian 11, moet op je huidig systeem Debian 10 geïnstalleerd zijn. Een upgrade van Debian 9 naar Debian 11 wordt niet ondersteunt. Controleer even of je zeker Debian 10 geïnstalleerd hebt:

# cat /etc/debian_version
10.10

Stap 2: werk je systeem volledig bij

Zorg dat je systeem volledig bijgewerkt is.

# apt update
# apt upgrade

We raden aan om je systeem een keer volledig te herstarten. Hoewel dit geen vereiste is, is het een goede gewoonte om je systeem voor iedere "grote" upgrade te herstarten. Zo komen bv. problemen met een bootsector of een hardwaredefect aan het licht.

# reboot

Stap 3: zoek en verwijder verouderde pakketten

Bij een grote update worden niet alle pakketten geupdate; voor sommige pakketten wordt geen update-pad voorzien. Debian blijft deze pakketten nog een jaar lang na de nieuwe release ondersteunen, maar daarna zullen er geen nieuwe security updates meer voor voorzien worden. Controleer of je zo pakketten geïnstalleerd hebt:

# aptitude search '~o'
i   hc-utils   - A set of tools for the Hetzner Cloud platform

In dit voorbeeld zien we dat pakket 'hc-utils' geïnstalleerd is. De virtuele machine wat we voor dit artikel gebruiken, werd geïnstalleerd op Hetzner Cloud. We zijn hiervan op de hoogte, maar we verwijderen dit pakket niet.

Wil je deze pakketten verwijderen, dan doe je dat zo:

# aptitude purge '~o'

Stap 4: verwijder verouderde configuratiebestanden

Door een vorige upgrade kan het zijn dat er nog oudere configuratiebestanden achtergebleven zijn. Zoek deze bestanden als volgt:

# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'

Op ons systeem werden geen verouderde configuratiebestanden gevonden. Als dat bij jou wel het geval is, controleer dan of deze nog in gebruik zijn en verwijder ze.

Stap 5: controleer op vastgepinde pakketten en de pakket status

Controleer of je bepaalde softwarepakketten vastgepind hebt op een bepaalde versie. Overweeg om deze pin weg te halen zodat ook deze pakketten geupgrade kunnen worden. Deze configuratie vindt je terug in /etc/apt/preferences en /etc/apt/preferences.d/.

Controleer ook met:

# apt-mark showhold

Controleer voor de zekerheid ook even de status van je geïnstalleerde pakketten. Met dpkg --audit zoek je naar pakketten wat foutief geïnstalleerd zijn.

Stap 6: aanpassen van de sources.list bestanden

Open het bestand /etc/apt/sources.list en alle bestanden in de map /etc/apt/sources.list.d/. Pas alle verwijzingen van buster (Debian 10) aan naar bullseye (Debian 11).  Op onze virtuele machine ziet dit er na de aanpassing zo uit:

# cat /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main

deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main

deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

Opgelet: de notatie van de security repository wijzigt sterk ten opzichte van Buster!

Wat met extra repositories?

De kans is groot dat je extra repo's toegevoegd hebt. In ons voorbeeld hebben we de Zabbix repo in gebruik:

# cat /etc/apt/sources.list.d/zabbix.list 
deb http://repo.zabbix.com/zabbix/5.0/debian buster main
deb-src http://repo.zabbix.com/zabbix/5.0/debian buster main

Is dat het geval, dan heb je enkele mogelijkheden:

  1. Je controleert bij de ontwikkelaar of hij pakketten voor Bullseye beschikbaar heeft.
  2. Je verwijdert de pakketten.
  3. Je doet niets en je hoopt dat de pakketten na de upgrade nog werken.

Optie drie kunnen we uiteraard allerminst aanraden. We adviseren om te wachten met de upgrade tot alle pakketten die je wilt gebruiken, beschikbaar zijn voor Bullseye. In het geval van Zabbix is er al een Bullseye repo beschikbaar (dat hebben we even gecheckt op Zabbix's website), we passen bestand bestand zabbix.list dan ook aan:

# cat /etc/apt/sources.list.d/zabbix.list 
deb http://repo.zabbix.com/zabbix/5.0/debian bullseye main
deb-src http://repo.zabbix.com/zabbix/5.0/debian bullseye main

Stap 7: voer de upgrade uit

Update je pakkenlijst:

# apt update

Controleer of je voldoende opslagruimte hebt:

# apt -o APT::Get::Trivial-Only=true full-upgrade
330 upgraded, 60 newly installed, 4 to remove and 0 not upgraded.
Need to get 207 MB of archives.
After this operation, 451 MB of additional disk space will be used.

Krijg je de melding dat je niet voldoende opslagruimte hebt? Ga dan zeker niet verder met de upgrade en maak eerst voldoende plaats vrij. Met df -h krijg je een overzicht van je opslagruimte.

Tijd voor de grote stap. Voer de upgrade uit:

# apt full-upgrade

image-1651426009789.png

Tijdens de upgrade zal je regelmatig gevraagd worden of je je huidige configuratiebestanden wilt behouden of dat je deze wilt vervangen door de nieuwe die meegeleverd worden. In onderstaand voorbeeld werden we gevraagd of we bestand /etc/ssh/sshd_config wilden behouden of vervangen.

image-1651426162372.png

De optie wat je kiest, is geheel aan jou. We raden aan om zeker even de wijzigingen te bekijken en eventueel achteraf manueel de wijzigingen aan te brengen. Noteer daarom goed over welke bestanden dit gaat.

Stap 8: herstart en controleer je services

Herstart je systeem om de installatie af te ronden:

# reboot

Controleer na de herstart of je systeem en je software werkt zoals verwacht. Controleer ook de Kernel en Debian versie:

# uname -a
Linux nwave-demo-debian 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux

# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Stap 9: de opkuis

Deze stap is optioneel, maar wij houden graag onze systemen opgekuist.

# apt --purge autoremove

Nazorg

Heb je tijdens de upgrade nieuwe configuratiebestanden tegengehouden? Dan is nu het moment om te bekijken wat je aan je behouden configuratiebestanden kan aanpassen. Zo kan je in /etc/ssh/sshd_config bijvoorbeeld helemaal bovenaan de regel Include /etc/ssh/sshd_config.d/*.conf toevoegen. Dit zorgt ervoor dat je aanpassingen aan sshd_config in een apart .conf bestand kan plaatsen en daardoor de standaard configuratie kan overrulen (eens zo handig bij een volgende upgrade!).

Scroll ook even door /var/log/messages en /var/log/syslog uit om te controleren op onregelmatigheden.