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.
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ř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
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.
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
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