Vienība -.mount ir maskēta: OpenVPN klients neieslēdzas
Atlikusī -.mount datne mapē /run/systemd/system maskē saknes montāžas vienību, tāpēc katra vienība, kurai vajadzīga failu sistēma, sabrūk pirms OpenVPN palaišanas.
Jūsu pakalpojums sabrūk, pirms OpenVPN vispār sāk darboties, un kļūda runā par montāžas vienību, kuru jūs nekad neesat konfigurējis. Tā ir pazīme: systemd atsaka visu transakciju, jo saknes montāžas vienība ir maskēta, un jūsu VPN profils vēl nav nolasīts. Parastais iemesls ir atlikusi datne izpildlaika vienību mapē, nevis sabojāts fstab un nevis trūkstošs sertifikāts. Vispirms pārbaudiet datni, jo tas ir lētākais izskaidrojums, ko var izslēgt.
Kļūda nosauc saknes montāžu, nevis jūsu profilu
systemd pats ģenerē saknes montāžas vienību no kodola montāžas informācijas un nosauc vienību -.mount, jo domuzīme apzīmē saknes ceļu. Šī vienība parasti pastāv tikai atmiņā, un aiz tās nav nevienas datnes. Kad kļūda saka, ka tā ir maskēta, kāds ir ievietojis vienības datni tur, kur systemd to ielādēs, un norādījis šo datni uz /dev/null. Maskējums ir īsts stāvoklis, nevis drukas kļūda ziņojumā.
Instances vienība sabrūk, jo tās darbu grafs sasniedz saknes montāžu caur secību un caur savām montāžas prasībām. Transakcija tiek atteikta pirms OpenVPN binārā faila izpildes, tāpēc nekas klienta konfigurācijā nevar būt par iemeslu. Tāpēc profilu, sertifikātu vai akreditācijas datu maiņa neietekmē šo konkrēto kļūmi.
Apskatiet izpildlaika mapi, pirms atkļūdojat OpenVPN
Meklējiet datni ar tieši šo nosaukumu izpildlaika vienību mapē un pēc tam pajautājiet systemd, ko tas domā, ka vienība ir. Abas atbildes ir ātras, un kopā tās atdala atlikušo datni no īstas montāžas problēmas.
ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount
Parastā mašīnā šādas datnes nav, un maskēto sarakstā nav saknes montāžas. Ja pirmā komanda izdrukā simbolisku saiti uz /dev/null, diagnoze ir skaidra. Tajā pašā mapē var būt tmp.mount maskējums, ko radījuši tie paši rīki, un tas izraisa tādu pašu kļūmju klasi citā nosaukumā. Apskatiet visu mapi, ne tikai kļūdā minēto nosaukumu.
ls -la /run/systemd/system/*.mount
Ja mape ir tīra un vienība joprojām ir maskēta, maskējums atrodas citur meklēšanas ceļā, un systemctl cat -.mount parādīs, kura datne tiek ielādēta.
Izdzēsiet datni, pārlādējiet un palaidiet no jauna
Pietiek noņemt izpildlaika datni un pārlādēt pārvaldnieku, un tas neaizskar neko, kas nāk no pakotnes. Pārlādējiet pirms palaišanas, jo systemd saglabā ielādētās vienības stāvokli, līdz mapi izlasa vēlreiz.
sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]
Pēc tam lasiet paša pakalpojuma žurnālu, tā vietā lai pieņemtu, ka labojums ir nostrādājis. Tīra palaišana pierāda tikai to, ka systemd ir pieņēmis vienību; klients joprojām var nomirt trūkstoša profila, nesasniedzama partnera vai sertifikāta dēļ, kas nevalidējas. Tie ir parasti OpenVPN problēmu gadījumi, kas bija paslēpti aiz maskētās vienības. Žurnāls reģistrē, kurš profils tika ielādēts un vai tunelis tiešām tika izveidots. Ja vienība startē, bet tunelis ne, jūs esat pārgājis uz citu problēmu, un tas ir progress.
journalctl -u [email protected] -b --no-pager
Tā kā /run ir pagaidu failu sistēma, restartēšana izdzēš arī datni. Tas padara restartēšanu par noderīgu pārbaudi: ja pakalpojums darbojas pēc restartēšanas un atkal sabrūk pēc nākamās izvietošanas, datne tiek iecepta attēlā.
Novērsiet, lai tā neatgrieztos no attēla
Konteinera vai virtuālās mašīnas veidne, kas būvēšanas laikā maskē montāžas vienības, pārnēsās šo maskējumu uz katru klonu. Nākamais, kam vajadzīga failu sistēma, salūzt, un ziņojums vaino montāžu, nevis attēlu, no kura tas nāca. Labošana vienā darbojošā instancē paslēpj problēmu līdz nākamās instances izveidei.
Meklējiet būvēšanas kontekstā datnes nosaukumu un komandu, kas to izveido, pēc tam noņemiet maskējumu no veidnes un būvējiet no jauna. Ja maskējums būvēšanas laikā tiešām ir vajadzīgs, noņemiet to tajā pašā slānī, kas pabeidz būvēšanu, lai piegādātais attēls sāktos tīrs. Pārbaudiet svaigā klonā, nevis mašīnā, kuru salabojāt ar rokām. Tas ir vienīgais tests, kas pierāda, ka attēls ir mainījies.
Simptoms, ko vērts atcerēties, ir neatbilstība starp kļūdu un to, ko jūs konfigurējāt. Kad systemd sūdzas par montāžu, kamēr jūs palaižat VPN klientu, vispirms izlasiet ziņojumā esošo vienības nosaukumu un tikai pēc tam pakalpojuma nosaukumu.