Njësia -.mount është e maskuar: klienti OpenVPN nuk niset
Një skedar -.mount i mbetur në /run/systemd/system maskon njësinë e montimit rrënjë, kështu që çdo njësi që ka nevojë për sistemin e skedarëve dështon përpara se OpenVPN të niset.
Shërbimi juaj dështon përpara se OpenVPN të ekzekutohet fare, dhe gabimi flet për një njësi montimi që nuk e keni konfiguruar kurrë. Ky është shenja: systemd refuzon të gjithë transaksionin sepse njësia e montimit rrënjë është e maskuar, dhe profili juaj VPN nuk është lexuar ende. Shkaku i zakonshëm është një skedar i mbetur në drejtorinë e njësive të kohës së ekzekutimit, jo një fstab i prishur dhe jo një certifikatë që mungon. Ndiqni së pari skedarin, sepse është shpjegimi më i lirë për t'u përjashtuar.
Gabimi emërton montimin rrënjë, jo profilin tuaj
systemd e gjeneron vetë njësinë e montimit rrënjë nga informacioni i montimit të kernelit, dhe e quan njësinë -.mount sepse një vizë përfaqëson shtegun rrënjë. Kjo njësi zakonisht ekziston vetëm në memorie dhe nuk ka asnjë skedar pas saj. Kur gabimi thotë se është e maskuar, dikush ka vendosur një skedar njësie atje ku systemd do ta ngarkojë dhe e ka drejtuar atë skedar te /dev/null. Maska është një gjendje reale, jo një gabim shtypi në mesazh.
Njësia e instancës dështon sepse grafiku i punëve të saj arrin montimin rrënjë përmes renditjes dhe përmes kërkesave të veta të montimit. Transaksioni refuzohet përpara se binari i OpenVPN të ekzekutohet, kështu që asgjë në konfigurimin e klientit nuk mund të jetë shkaku. Kjo është arsyeja pse ndryshimi i profileve, certifikatave ose kredencialeve nuk ka asnjë efekt në këtë dështim të caktuar.
Shikoni drejtorinë e kohës së ekzekutimit përpara se të korrigjoni OpenVPN
Kërkoni një skedar me pikërisht atë emër në drejtorinë e njësive të kohës së ekzekutimit, pastaj pyesni systemd se çfarë mendon se është njësia. Të dyja përgjigjet janë të shpejta, dhe së bashku ndajnë një skedar të mbetur nga një problem i vërtetë montimi.
ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount
Një makinë normale nuk ka një skedar të tillë, dhe lista e të maskuarve nuk përmban montimin rrënjë. Nëse komanda e parë shtyp një lidhje simbolike drejt /dev/null, diagnoza është e qartë. E njëjta drejtori mund të përmbajë një maskë tmp.mount të krijuar nga të njëjtat mjete, dhe kjo prodhon të njëjtën klasë dështimi nën një emër tjetër. Shikoni të gjithë drejtorinë dhe jo vetëm emrin në gabim.
ls -la /run/systemd/system/*.mount
Nëse drejtoria është e pastër dhe njësia është ende e maskuar, maska ndodhet diku tjetër në shtegun e kërkimit, dhe systemctl cat -.mount do të tregojë cili skedar po ngarkohet.
Fshini skedarin, ringarkoni dhe nisni përsëri
Heqja e skedarit të kohës së ekzekutimit dhe ringarkimi i menaxherit mjafton, dhe nuk prek asgjë që vjen nga një paketë. Ringarkoni përpara nisjes, sepse systemd mban gjendjen e njësisë së ngarkuar derisa ta rilexojë drejtorinë.
sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]
Pastaj lexoni ditarin e vetë shërbimit në vend që të supozoni se rregullimi funksionoi. Një nisje e pastër provon vetëm se systemd e pranoi njësinë; klienti mund të vdesë ende për shkak të një profili që mungon, një partneri të paarritshëm ose një certifikate që nuk vërtetohet. Këto janë probleme të zakonshme të OpenVPN që ishin fshehur pas njësisë së maskuar. Ditari shënon cili profil u ngarkua dhe nëse tuneli u vendos vërtet. Nëse njësia niset dhe tuneli jo, keni kaluar në një problem tjetër, dhe ky është përparim.
journalctl -u [email protected] -b --no-pager
Meqenëse /run është një sistem skedarësh i përkohshëm, një rinisje e pastron gjithashtu skedarin. Kjo e bën rinisjen një provë të dobishme: nëse shërbimi funksionon pas një rinisjeje dhe dështon përsëri pas vendosjes tjetër, skedari po piqet në imazh.
Parandaloni që ai të kthehet nga imazhi
Një shabllon kontejneri ose makine virtuale që maskon njësitë e montimit gjatë ndërtimit të tij do ta çojë atë maskë në çdo klon. Gjëja tjetër që ka nevojë për sistemin e skedarëve prishet, dhe mesazhi fajëson montimin në vend të imazhit nga i cili erdhi. Rregullimi brenda një instance në punë e fsheh problemin derisa të krijohet instanca tjetër.
Kërkoni në kontekstin e ndërtimit emrin e skedarit dhe komandën që e krijon, pastaj hiqni maskën nga shablloni dhe rindërtoni. Nëse maska është vërtet e nevojshme gjatë ndërtimit, hiqeni në të njëjtin shtresë që e përfundon ndërtimin, në mënyrë që imazhi i dërguar të niset i pastër. Verifikoni në një klon të ri dhe jo në makinën që e rregulluat me dorë. Kjo është prova e vetme që dëshmon se imazhi ndryshoi.
Simptoma që duhet mbajtur mend është mospërputhja midis gabimit dhe asaj që po konfiguronit. Kur systemd ankohet për një montim ndërsa nisni një klient VPN, lexoni emrin e njësisë në mesazh përpara se të lexoni emrin e shërbimit.