Obsah

Espressobin: upgrade z Debian 9 na Debian 10 Buster

Vytvořeno: 10.4.2020

Poznámka k aktuálnosti: Toto je dobový článek. Postup odpovídá přechodu ze Stretch na Buster a dnes už slouží spíš jako dokumentační zápisek k upgrade routeru než jako aktuální doporučení.

Když se blížil konec podpory Debianu 9 Stretch, řešil jsem na Espressobinu přechod na Debian 10 Buster. Protože šlo o router, dělal jsem upgrade opatrně a s rezervou času. Samotný přechod proběhl bez velkých komplikací, ale po restartu jsem musel dořešit automatický start dnsmasq.

Aktualizace stávající instalace

Nejdřív dává smysl dostat Debian 9 do posledního konzistentního stavu:

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

Potom je vhodné systém restartovat a ověřit, že všechno ještě funguje.

Přepsání APT zdrojů ze stretch na buster

Před změnou jsem si pro jistotu udělal zálohu sources.list i sources.list.d:

sudo cp -v /etc/apt/sources.list /root/
sudo cp -rv /etc/apt/sources.list.d/ /root/

Pak už šlo přepsat stretch na buster:

sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*
cat /etc/apt/sources.list

Na původním systému zdroje vypadaly zhruba takto:

deb http://httpredir.debian.org/debian stretch main contrib non-free
deb http://httpredir.debian.org/debian stretch-updates main contrib non-free
deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free

Načtení nových zdrojů a minimální upgrade

Po úpravě zdrojů následovalo načtení balíčků a nejprve menší upgrade:

sudo apt update
sudo apt upgrade

Při tomto kroku jsem si dával pozor na dotazy kolem konfiguračních souborů, aby si systém nepřepsal lokální nastavení služeb.

Úplný upgrade na Debian 10

Hlavní přechod na Buster:

sudo apt full-upgrade

Po restartu jsem si ověřil verzi systému a uklidil staré balíčky:

uname -r
lsb_release -a
sudo apt --purge autoremove

Problém s automatickým startem dnsmasq

Po restartu se ukázalo, že DHCP server dnsmasq nenaběhne automaticky. Ruční start sice fungoval:

systemctl start dnsmasq

Ale v logu byla chyba s portem 53:

dnsmasq: failed to create listening socket for port 53: Address already in use

První část řešení byla v /etc/systemd/resolved.conf, kde bylo potřeba nastavit:

DNSStubListener=no

Jenže tím problém úplně nezmizel. Druhou příčinou byl parametr bind-interfaces v /etc/dnsmasq.conf. Při bootu zřejmě ještě nebyla síť připravená a démon kvůli tomu spadl. Pomohlo řádek zakomentovat.

Výsledná konfigurace vypadala takto:

interface=br0
listen-address=172.24.1.1
#bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=172.24.1.50,172.24.1.150,12h

Zdroje