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