Upgrade z Debian 9 na Debian 10 Buster na Linuxovém routeru

Autor: | 10. 4. 2020 | IT, Linux

Štítky: debian | linux | router | upgrade

Protože podpora pro Debian 9 Stretch bude brzy končit, začal jsem řešit přechod na novější Debian 10 Buster. Do přechodu se nikdy nehrnu, protože mám trochu obavy z dílčích problémů při upgrade. A pokud se jedná o router, který mi zajišťuje připojení k síti, tak jsem o to opatrnější. Respektive raději si na upgrade vyhrazuju více času.

Postup na přechod není nikterak složitý a při upgrade jsem se nesetkal s žádnou výraznou komplikací. Jediný problém, který se objevil byl ten, že po bootování automaticky nestartoval dhcp server (dnsmasq) a musel jsem ho nastartovat ručně. Chvíli mi trvalo, než jsem přišel na to, jak problém s automatickým startováním vyřešit. Pojďme tedy na postup přechodu Debian 9 na Debian 10.

Aktualizace instalovaných balíčků

Nejprve je dobré začít aktualizací současného systému Debian 9. K tomu poslouží sekvence následujících příkazů.

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt --purge autoremove

Po aktualizace je dobré systém restartovat, pro ujištění, že všechno funguje jak má (zejména pokud došlo k aktualizaci jádra).

Aktualizace zdrojů balíčkovacího systému APT

Na začátek jsem zkontroloval na jaké zdroje balíčkovací systém odkazuje. Výstup vypadal takto:

root@espressobin:~# cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian stretch main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch main contrib non-free

deb http://httpredir.debian.org/debian stretch-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch-updates main contrib non-free

deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free

deb http://security.debian.org/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free

Následující sekvence příkazů zajistí, přepsání slova stretch na slovo buster ve všech zdrojích. Pro jistotu je dobré udělat zálohu.

sudo cp -v /etc/apt/sources.list /root/
sudo cp -rv /etc/apt/sources.list.d/ /root/
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*
### see updated file now ###
cat /etc/apt/sources.list

Načtení nových zdrojů balíčků

Jednoduše příkaz:

sudo apt update

Minimální systémový upgrade

Nejprve aktualizujeme nezbytné minimum.

sudo apt upgrade

Při tomto procesu se bude systém ptát na některé konfigurační soubory, jestli chcete ponechat původní nebo nainstalovat nové. Buďte v tomto obezřetní, ať si nepřepíšete vlastní konfigurace. Já jsem si vždycky porovnával obsah nových souborů s obsahem existujících a podle toho jsem se rozhodoval.

Zároveň jsem povolil restartování služeb po aktualizaci balíčků. Počítejte ovšem s tím, že Vám postupně spadne většina služeb. V mém případě to byla i wifi konektivita. Proto jsem se připojil k zařízení raději kabelem, aby se proces instalace nepřerušil.

Úplný upgrade na Debian 10

Nejprve aktualizujeme nezbytné balíčky v rámci Debian 10.

sudo apt full-upgrade

Po restartu je dobré ověřit si verzi systému a odstranit staré balíčky.

uname -r
lsb_release -a

sudo apt --purge autoremove

Problém se startováním DNSMASQ – přidělování IP adres

Po restartu systému jsem narazil na problém, že dhcp server nestartoval automaticky. Musel jsem ho nastartovat ručně po startu:

systectl start dnsmasq

V logu jsem našel následující informaci:

dnsmasq: failed to create listening socket for port 53: Address already in use [fail]
invoke-rc.d: initscript dnsmasq, action "start" failed.

Po delším hledání se mi podařilo část problému vyřešit editací souboru /etc/systemd/resolved.conf. Bylo nutné nastavit proměnnou:

DNSStubListener=no

Bohužel se u mě sešly 2 problémy najednou a proto řešení trvalo ještě déle. Ani tento zásah nepomohl, aby démon dnsmasq startoval automaticky. V logu jsem dohledal další chybové hlášení. V rámci konfigurace souboru /etc/dnsmasq.conf jsem opsal i tento parametr:

bind-interfaces

A to byla druhá příčina, proč démon při bootování nenastartoval. Asi ještě nebyla aktivní síť a proto padnul. Zakomentování parametru se vše vyřešilo. Přikládám ještě úplnou konfiguraci souboru /etc/dnsmasq.conf:

interface=br0                           # Use interface wlp0s0
listen-address=172.24.1.1               # Explicitly specify the address to listen on
#bind-interfaces                        # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8                          # Forward DNS requests to Google DNS
domain-needed                           # Don't forward short names
bogus-priv                              # Never forward addresses in the non-routed address spaces
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with

Další články