-.mount бірлігі маскировкаланған: OpenVPN клиенті іске қосылмайды
/run/systemd/system ішінде қалған -.mount файлы түбірлік тағайындау бірлігін маскировкалайды, сондықтан файлдық жүйе қажет әр бірлік OpenVPN іске қосылмай тұрып сәтсіз аяқталады.
Қызметіңіз OpenVPN мүлдем іске қосылмай тұрып сәтсіз аяқталады, ал қате сіз ешқашан баптамаған тағайындау бірлігі туралы айтады. Бұл — белгі: systemd бүкіл операциядан бас тартып отыр, өйткені түбірлік тағайындау бірлігі маскировкаланған, ал VPN профиліңіз әлі оқылмаған. Әдеттегі себеп — орындалу уақытының бірліктер қалтасында қалған файл, бүлінген fstab емес және жетіспейтін сертификат емес. Алдымен файлды тексеріңіз, өйткені оны жоққа шығару ең арзан түсініктеме.
Қате сіздің профиліңізді емес, түбірлік тағайындауды атайды
systemd түбірлік тағайындау бірлігін ядроның тағайындау ақпаратынан өзі жасайды және бірлікті -.mount деп атайды, өйткені сызықша түбірлік жолды білдіреді. Бұл бірлік әдетте тек жадта болады және оның артында файл жоқ. Қате оның маскировкаланғанын айтқанда, біреу бірлік файлын systemd жүктейтін орынға қойып, ол файлды /dev/null көрсеткен. Маскировка — нақты күй, хабарламадағы теру қатесі емес.
Дана бірлігі сәтсіз аяқталады, өйткені оның тапсырма графы түбірлік тағайындауға реттілік және өзінің тағайындау талаптары арқылы жетеді. Операция OpenVPN бинарлық файлы орындалмай тұрып қабылданбайды, сондықтан клиент конфигурациясында ештеңе себеп бола алмайды. Сондықтан профильдерді, сертификаттарды немесе тіркелгі деректерін ауыстыру осы нақты ақауға әсер етпейді.
OpenVPN-ді жөндеуге кіріспес бұрын орындалу уақытының қалтасын қараңыз
Орындалу уақытының бірліктер қалтасынан дәл осы атаулы файлды іздеңіз, содан кейін systemd-ден бірлік деп нені санайтынын сұраңыз. Екі жауап та жылдам, ал бірге олар қалған файлды нақты тағайындау мәселесінен ажыратады.
ls -l /run/systemd/system/-.mount
systemctl status -.mount
systemctl list-unit-files --state=masked | grep mount
Қалыпты машинада мұндай файл жоқ, ал маскировкаланғандар тізімінде түбірлік тағайындау жоқ. Егер бірінші команда /dev/null символдық сілтемесін шығарса, диагностика анық. Сол қалтада сол құралдар жасаған tmp.mount маскасы да болуы мүмкін, ол басқа атаумен сол ақау тобын тудырады. Тек қатедегі атауды емес, бүкіл қалтаны қараңыз.
ls -la /run/systemd/system/*.mount
Егер қалта таза болса, ал бірлік әлі маскировкаланған болса, маска іздеу жолының басқа жерінде, және systemctl cat -.mount қай файл жүктеліп жатқанын көрсетеді.
Файлды жойыңыз, қайта жүктеңіз және қайта іске қосыңыз
Орындалу уақытының файлын алып тастау және менеджерді қайта жүктеу жеткілікті, бұл пакеттен келген ештеңеге қатыспайды. Іске қосу алдында қайта жүктеңіз, өйткені systemd қалтаны қайта оқығанша жүктелген бірліктің күйін сақтайды.
sudo rm -f /run/systemd/system/-.mount /run/systemd/system/tmp.mount
sudo systemctl daemon-reload
systemctl status -.mount
sudo systemctl start [email protected]
Содан кейін түзету жұмыс істеді деп ойлаудың орнына қызметтің өз журналын оқыңыз. Таза іске қосу тек systemd бірлікті қабылдағанын дәлелдейді; клиент жетіспейтін профиль, қолжетімсіз серіктес немесе расталмайтын сертификат салдарынан әлі де өлуі мүмкін. Бұл — маскировкаланған бірліктің артында жасырылған кәдімгі OpenVPN мәселелері. Журнал қай профиль жүктелгенін және туннель шынымен орнатылғанын жазады. Егер бірлік іске қосылып, туннель қосылмаса, сіз басқа мәселеге өттіңіз, бұл — ілгерілеу.
journalctl -u [email protected] -b --no-pager
/run уақытша файлдық жүйе болғандықтан, қайта жүктеу файлды да тазалайды. Бұл қайта жүктеуді пайдалы тексеріс етеді: егер қызмет қайта жүктеуден кейін жұмыс істеп, келесі орналастырудан кейін қайта сәтсіз болса, файл бейнеге пісіріліп жатыр.
Оның бейнеден қайта оралуын болдырмаңыз
Құру кезінде тағайындау бірліктерін маскировкалайтын контейнер немесе виртуалды машина үлгісі бұл масканы әр клонға тасымалдайды. Келесі файлдық жүйе қажет нәрсе бұзылады, ал хабарлама келген бейнені емес, тағайындауды кінәлайды. Бір жұмыс істеп тұрған дана ішінде түзету мәселені келесі дана жасалғанша жасырады.
Құру контекстінен файл атауын және оны жасайтын команданы іздеңіз, содан кейін масканы үлгіден алып тастап, қайта құрыңыз. Егер маска құру кезінде шынымен қажет болса, оны құруды аяқтайтын сол қабатта алып тастаңыз, сонда жөнелтілетін бейне таза басталады. Қолмен жөнделген машинада емес, жаңа клонда тексеріңіз. Бейненің өзгергенін дәлелдейтін жалғыз тест осы.
Есте сақтауға тұрарлық симптом — қате мен сіз баптаған нәрсенің сәйкессіздігі. VPN клиентін іске қосып жатқанда systemd тағайындауға шағымданса, алдымен хабарламадағы бірлік атауын, содан кейін қызмет атауын оқыңыз.