Üksus -.mount on maskeeritud: OpenVPN klient ei käivitu
Üle jäänud -.mount fail kaustas /run/systemd/system maskeerib juure-mount üksuse, nii et iga failisüsteemi vajav üksus ebaõnnestub enne, kui OpenVPN käivitub.
Teie teenus ebaõnnestub enne, kui OpenVPN üldse käivitub, ja viga räägib mount-üksusest, mida te kunagi ei seadistanud. See ongi vihje: systemd keeldub kogu tehingust, sest juure-mount üksus on maskeeritud ja teie VPN-profiili pole veel loetud. Tavaline põhjus on mahajäänud fail runtime-üksuste kaustas, mitte katkine fstab ja mitte puuduv sertifikaat. Jälgige kõigepealt faili, sest see on kõige odavam seletus, mille saab välistada.
Viga nimetab juure-mounti, mitte teie profiili
systemd genereerib juure-mount üksuse ise kerneli mount-teabe põhjal ja nimetab üksuse -.mount, sest sidekriips tähistab juureteed. See üksus eksisteerib tavaliselt ainult mälus ega oma taga ühtegi faili. Kui viga ütleb, et see on maskeeritud, on keegi pannud üksusefaili sinna, kust systemd selle laeb, ja suunanud selle faili /dev/null-le. Mask on tegelik olek, mitte kirjaviga teates.
Instantsi üksus ebaõnnestub, sest selle töögraaf jõuab juure-mountini järjestuse ja oma mount-nõuete kaudu. Tehing lükatakse tagasi enne, kui OpenVPN binaarfail käivitatakse, seega ei saa kliendi seadistuses miski olla põhjuseks. Seetõttu ei mõjuta profiilide, sertifikaatide ega volituste muutmine seda konkreetset tõrget.
Vaadake runtime-kausta enne, kui hakkate OpenVPN-i siluma
Otsige runtime-üksuste kaustast täpselt selle nimega faili ja küsige seejärel systemdilt, mida ta selle üksuse kohta arvab. Mõlemad vastused on kiired ja koos eristavad need mahajäänud faili tõelisest mount-probleemist.
ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount
Tavalisel masinal sellist faili pole ja maskeeritud nimekirjas juure-mounti ei ole. Kui esimene käsk väljastab sümboolse lingi /dev/null-le, on diagnoos selge. Samas kaustas võib olla sama tööriistaga loodud tmp.mount mask, ja see tekitab sama tüüpi tõrke teise nime all. Vaadake kogu kausta, mitte ainult veateates olevat nime.
ls -la /run/systemd/system/*.mount
Kui kaust on puhas ja üksus on endiselt maskeeritud, asub mask mujal otsinguteel, ja systemctl cat -.mount näitab, millist faili laetakse.
Kustutage fail, laadige uuesti ja käivitage taas
Runtime-faili eemaldamine ja halduri uuesti laadimine on piisav ega puuduta midagi, mis tuli paketist. Laadige enne käivitamist uuesti, sest systemd hoiab laetud üksuse olekut, kuni loeb kausta uuesti.
sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]
Seejärel lugege teenuse enda logi, selle asemel et eeldada, et parandus toimis. Puhas käivitamine tõestab ainult seda, et systemd võttis üksuse vastu; klient võib ikkagi surra puuduva profiili, kättesaamatu partneri või sertifikaadi tõttu, mis ei valideeru. Need on tavalised OpenVPN-i probleemid, mis olid maskeeritud üksuse taga peidus. Logi märgib, milline profiil laeti ja kas tunnel tegelikult püstitati. Kui üksus käivitub ja tunnel mitte, olete jõudnud teise probleemi juurde, mis on edasiminek.
journalctl -u [email protected] -b --no-pager
Kuna /run on ajutine failisüsteem, puhastab taaskäivitus ka faili. See teeb taaskäivitusest kasuliku testi: kui teenus töötab pärast taaskäivitust ja ebaõnnestub jälle pärast järgmist juurutust, küpsetatakse fail image'i sisse.
Takistage selle tagasitulekut image'ist
Konteineri või virtuaalmasina mall, mis maskeerib ehituse ajal mount-üksusi, kannab selle maski igasse klooni. Järgmine asi, mis failisüsteemi vajab, läheb katki, ja teade süüdistab mounti, mitte image'it, kust see tuli. Ühe töötava instantsi sees parandamine varjab probleemi kuni järgmise instantsi loomiseni.
Otsige ehituse kontekstist failinime ja seda loovat käsku, seejärel eemaldage mask mallist ja ehitage uuesti. Kui maski on ehituse ajal tõesti vaja, eemaldage see samas kihis, mis ehituse lõpetab, et tarnitav image algaks puhtalt. Kontrollige värskel kloonil, mitte masinal, mille te käsitsi parandasite. See on ainus test, mis tõestab, et image muutus.
Meeldejääv sümptom on vastuolu vea ja selle vahel, mida te seadistasite. Kui systemd kurdab mounti üle, samal ajal kui käivitate VPN-klienti, lugege kõigepealt teates olevat üksuse nime ja alles siis teenuse nime.