Tenesta di feilar før OpenVPN i det heile køyrer, og feilen snakkar om ei monteringseining du aldri har sett opp. Det er teiknet: systemd avviser heile transaksjonen fordi rotmonteringseininga er maskert, og VPN-profilen din er ikkje lesen enno. Den vanlege årsaka er ei etterlaten fil i runtime-mappa for einingar, ikkje ein øydelagd fstab og ikkje eit manglande sertifikat. Følg fila først, for det er den billegaste forklaringa å utelukke.

Feilen nemner rotmonteringa, ikkje profilen din

systemd lagar rotmonteringseininga sjølv ut frå monteringsinformasjonen til kjernen, og kallar eininga -.mount fordi ein bindestrek står for rotstien. Den eininga finst vanlegvis berre i minnet og har inga fil bak seg. Når feilen seier at ho er maskert, har nokon lagt ei einingafile der systemd vil laste henne, og peika fila mot /dev/null. Maskeringa er ein reell tilstand, ikkje ein skrivefeil i meldinga.

Instanseininga feilar fordi jobbgrafen når rotmonteringa gjennom rekkjefølgje og gjennom sine eigne monteringskrav. Transaksjonen blir avvist før OpenVPN-binæra blir køyrd, så ingenting i konfigurasjonen til klienten kan vere årsaka. Difor har byte av profilar, sertifikat eller påloggingsinformasjon inga verknad på nettopp denne feilen.

Sjå i runtime-mappa før du feilsøkjer OpenVPN

Leit etter ei fil med nøyaktig det namnet i runtime-mappa for einingar, og spør deretter systemd kva han meiner eininga er. Begge svara er snøgge, og saman skil dei ei etterlaten fil frå eit ekte monteringsproblem.

ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount

Ein normal maskin har inga slik fil, og den maskerte lista inneheld ikkje rotmonteringa. Viss den første kommandoen skriv ut ei symbolsk lenkje til /dev/null, er diagnosen avgjort. Same mappa kan innehalde ei tmp.mount-maskering laga av dei same verktøya, og det gir same slag feil under eit anna namn. Sjå på heile mappa og ikkje berre namnet i feilen.

ls -la /run/systemd/system/*.mount

Viss mappa er rein og eininga framleis er maskert, ligg maskeringa ein annan stad i søkjestien, og systemctl cat -.mount viser kva fil som blir lasta.

Slett fila, last inn på nytt og start igjen

Det er nok å fjerne runtime-fila og laste inn styraren på nytt, og det rører ingenting som kom frå ein pakke. Last inn på nytt før du startar, fordi systemd held på den innlasta tilstanden til eininga til han les mappa på nytt.

sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]

Les deretter eigen loggen til tenesta i staden for å gå ut frå at rettinga virka. Ein rein start beviser berre at systemd godtok eininga; klienten kan framleis døy på ein manglande profil, ein utilgjengeleg partnar eller eit sertifikat som ikkje validerer. Det er vanlege OpenVPN-problem som var gøymde bak den maskerte eininga. Loggen registrerer kva profil som vart lasta, og om tunnelen faktisk vart etablert. Viss eininga startar og tunnelen ikkje, har du flytt deg til eit anna problem, og det er framgang.

journalctl -u [email protected] -b --no-pager

Fordi /run er eit mellombels filsystem, ryddar ein omstart også fila. Det gjer ein omstart til ein nyttig test: viss tenesta verkar etter ein omstart og feilar igjen etter neste utrulling, blir fila baka inn i image-fila.

Hindra at ho kjem tilbake frå image-fila

Ein container- eller virtuell maskin-mal som maskerer monteringseiningar under bygginga, tek med seg den maskeringa til kvar klone. Det neste som treng filsystemet, ryker, og meldinga gir monteringa skulda i staden for image-fila ho kom frå. Å reparere det inne i ein køyrande instans gøymer problemet til neste instans blir laga.

Søk i byggjekonteksten etter filnamnet og etter kommandoen som lagar det, fjern deretter maskeringa frå malen og bygg på nytt. Viss maskeringa verkeleg trengst under bygginga, fjern henne i same laget som fullfører bygginga, slik at image-fila som blir sendt ut startar reint. Stadfest på ein fersk klone og ikkje på maskinen du reparerte for hand. Det er den einaste testen som beviser at image-fila er endra.

Symptomet du bør hugse, er avviket mellom feilen og det du sette opp. Når systemd klagar over ei montering medan du startar ein VPN-klient, les eininganamnet i meldinga før du les tenestanamnet.

Relaterte artiklar