Ձեր ծառայությունը ձախողվում է դեռ այն ժամանակ, երբ 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-ը ժամանակավոր ֆայլային համակարգ է, վերագործարկումը նաև ջնջում է ֆայլը։ Դա վերագործարկումը դարձնում է օգտակար փորձարկում. եթե ծառայությունը աշխատում է վերագործարկումից հետո և նորից ձախողվում հաջորդ տեղակայումից հետո, ապա ֆայլը թխվում է պատկերի մեջ։

Կանխեք պատկերից նրա վերադարձը

Կոնտեյների կամ վիրտուալ մեքենայի ձևանմուշը, որը կառուցման ընթացքում քողարկում է տեղադրման միավորները, այդ քողարկումը կտանի յուրաքանչյուր կլոն։ Հաջորդը, ինչին ֆայլային համակարգ է պետք, կկոտրվի, և հաղորդագրությունը մեղադրում է տեղադրմանը, այլ ոչ թե պատկերին, որից այն եկել է։ Մեկ աշխատող օրինակի ներսում ուղղելը թաքցնում է խնդիրը մինչև հաջորդ օրինակի ստեղծումը։

Կառուցման համատեքստում փնտրեք ֆայլի անունը և այն հրամանը, որը ստեղծում է այն, ապա հանեք քողարկումը ձևանմուշից և նորից կառուցեք։ Եթե քողարկումն իսկապես անհրաժեշտ է կառուցման ընթացքում, հանեք այն նույն շերտում, որը ավարտում է կառուցումը, որպեսզի ուղարկվող պատկերը մաքուր մեկնարկի։ Ստուգեք թարմ կլոնի վրա, ոչ թե ձեռքով վերանորոգված մեքենայի վրա։ Դա միակ փորձարկումն է, որն ապացուցում է, որ պատկերը փոխվել է։

Հիշելու արժանի ախտանիշը սխալի և ձեր կարգավորած բանի անհամապատասխանությունն է։ Երբ systemd-ն բողոքում է տեղադրումից, մինչ դուք մեկնարկում եք VPN հաճախորդ, նախ կարդացեք հաղորդագրության միավորի անունը, ապա ծառայության անունը։

Առնչվող հոդվածներ