Při instalaci Omada controlleru do LXC kontejneru na Proxmoxu se MongoDB 8 odmítla spustit s hláškou o nekompatibilitě s jádrem Linuxu 6.19 a novějším. Přechod na MongoDB 7.0 pak zablokoval Debian 13, protože podpis repozitáře MongoDB používá SHA1. Popíšu, proč se to děje, jaké jsem měl možnosti a jak jsem to vyřešil bez aktualizace jádra a bez restartu celého serveru.
Kontext
Omada Software Controller potřebuje databázi MongoDB. Od verze controlleru 5.15.20 podporuje MongoDB 4.4 až 8. Controller jsem instaloval do LXC kontejneru s Debianem 13 na hostiteli s Proxmox VE 9.2, celý postup je v článku Omada Software Controller v LXC na Proxmoxu s Debianem 13. Proxmox VE 9.2 používá vlastní jádro řady 7.0 a LXC kontejner běží na jádře hostitele. To je pro celý problém podstatné.

Past č. 1: MongoDB 8 se odmítne spustit
MongoDB 8.0 pro Debian 13 se instaluje z větve repozitáře pro Debian 12 („bookworm“). Větev pro trixie existuje, ale balíček v ní apt nenajde. Instalace proběhla bez chyby, služba ale hned po startu spadla s kódem 1. Celou hlášku ukázal až výpis logu:
journalctl -u mongod --no-pager -l -n 5MongoDB cannot start: Linux kernel versions 6.19 and newer has a known
incompatibility with this version of MongoDB.
See https://jira.mongodb.org/browse/SERVER-121912 for more information.Podle hlášení v Jiře MongoDB jde o chybu v alokátoru paměti TCMalloc, který MongoDB 8.0 a novější používá. Na jádrech 6.19 a novějších MongoDB padala, a proto teď raději sama odmítne start. Výjimku podle navazujících úkolů dostala až jádra 7.0.14 a novější. Proxmox VE 9.2 ale v té době používal jádro 7.0.2.
Kód ukončení 1 je dobré rozlišit od kódu 132. Ten MongoDB vrací, když procesor nemá instrukce AVX. Tady šlo o vědomé odmítnutí kvůli jádru, ne o problém s hardwarem.
Jaké byly možnosti
| Možnost | Dopad |
|---|---|
| MongoDB 7.0 místo 8.0 | controller ji podporuje, chyba se jí netýká, hostitele se změna nedotkne |
| Novější jádro Proxmoxu (7.0.14 a vyšší) | čisté řešení, ale restart celého serveru s weby a Nextcloudem a takové jádro nemusí být v repozitáři |
| Přechod na virtuální stroj | VM má vlastní jádro Debianu, ale je náročnější na RAM a hotový kontejner by šel do koše |
Zvolil jsem MongoDB 7.0. Je to jediná varianta, která se nedotkne ničeho jiného na serveru. Na MongoDB 8 se dá přejít později podle oficiálního návodu TP-Link, až bude jádro hostitele novější.
Past č. 2: Debian 13 odmítne repozitář MongoDB 7.0
Po přidání repozitáře MongoDB 7.0 skončil apt update chybou podpisu:
Signing key on ... is not bound: No binding signature at time ...
because: Policy rejected non-revocation signature (PositiveCertification)
requiring second pre-image resistance
because: SHA1 is not considered secure since 2026-02-01T00:00:00Z
Error: The repository 'https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 InRelease' is not signed.Debian 13 ověřuje podpisy repozitářů nástrojem sqv a od února 2026 nepřijímá podpisy klíčů postavené na SHA1. Klíč MongoDB 7.0 takový podpis má. Na straně MongoDB to opravit nejde a vypínat kontrolu podpisů v systému jsem nechtěl.
Řešení: jen jeden balíček, stažený přímo
Controller nepotřebuje celou sadu nástrojů MongoDB, stačí samotný databázový server. Balíček mongodb-org-server jsem proto stáhl přímo z oficiálního serveru MongoDB přes HTTPS a nainstaloval jako soubor. Nefunkční repozitář jsem nejdřív odstranil:
rm /etc/apt/sources.list.d/mongodb-org-7.0.list /usr/share/keyrings/mongodb-server-7.0.gpg
apt updateMůj první pokus zjistit název balíčku výpisem adresáře na serveru selhal, protože server MongoDB výpis adresářů nepovoluje. Proměnná zůstala prázdná a apt dostal nesmyslnou cestu. Spolehlivě funguje čtení seznamu balíčků Packages.gz, který je v každém repozitáři:
F=$(curl -s https://repo.mongodb.org/apt/debian/dists/bookworm/mongodb-org/7.0/main/binary-amd64/Packages.gz \
| gunzip | grep '^Filename: .*mongodb-org-server_7\.0' | awk '{print $2}' | sort -V | tail -n1)
echo $F
curl -fLO "https://repo.mongodb.org/apt/debian/$F"
apt install -y "./$(basename $F)"Příkaz echo $F je důležitá kontrola. Když vypíše prázdný řádek, dál nepokračujte. Takhle se nainstalovala MongoDB 7.0.45. Hlášku couldn't be accessed by user '_apt' na konci instalace lze ignorovat, týká se jen sandboxu při čtení lokálního souboru.
Ověření a vypnutí systémové služby
systemctl start mongod
systemctl status mongod --no-pagerSlužba hlásila active (running). Pak jsem ji zastavil, protože Omada controller si spouští vlastní instanci MongoDB se svými daty. Systémová služba je po instalaci ve stavu disabled, takže se po restartu sama nespustí:
systemctl stop mongodCo tohle řešení stojí
- MongoDB nedostává aktualizace přes
apt. Pro databázi uvnitř controlleru, která neposlouchá do sítě, je to přijatelné. - Při povýšení na MongoDB 8 je potřeba postupovat podle návodu TP-Link, nepřeskakovat hlavní verze a předem udělat zálohu.
- Až bude Proxmox na jádře 7.0.14 nebo novějším, má smysl přechod na MongoDB 8 zvážit.
Výsledek
MongoDB 7.0 běží v kontejneru s Debianem 13 na jádře Proxmoxu bez jakýchkoli zásahů do hostitele. Omada controller se na ní nainstaloval na první pokus a funguje i po aktualizaci na novější verzi.
Shrnutí
- LXC kontejner sdílí jádro s hostitelem, takže na Proxmoxu s novým jádrem se mění chování aplikací uvnitř kontejneru.
- MongoDB 8.0 na jádrech 6.19 a novějších odmítá start kvůli chybě v TCMalloc. Výjimku dostala až jádra 7.0.14 a vyšší.
- Debian 13 od února 2026 odmítá podpisy klíčů postavené na SHA1, a proto nejde přidat repozitář MongoDB 7.0.
- Pro Omada controller stačí balíček
mongodb-org-serverstažený z oficiálního serveru a nainstalovaný jako soubor.
Celou instalaci controlleru popisuji v článku Omada Software Controller v LXC na Proxmoxu s Debianem 13. Pokračování je v článcích Aktualizace a zálohování Omada controlleru a Adopce Omada AP bez výpadku Wi-Fi.