ერთეული -.mount ნიღბიანია: OpenVPN-ის კლიენტი არ გაეშვება
დარჩენილი -.mount ფაილი /run/systemd/system-ში ნიღბავს ძირეული მიმაგრების ერთეულს, ამიტომ ფაილური სისტემის საჭიროების მქონე ყოველი ერთეული ვარდება 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 დროებითი ფაილური სისტემაა, გადატვირთვა ფაილსაც შლის. ეს გადატვირთვას სასარგებლო ტესტად აქცევს: თუ სერვისი გადატვირთვის შემდეგ მუშაობს და შემდეგი განთავსების შემდეგ ისევ ვარდება, ფაილი გამოსახულებაში ცხვება.
ხელი შეუშალეთ მის დაბრუნებას გამოსახულებიდან
კონტეინერის ან ვირტუალური მანქანის შაბლონი, რომელიც აგების დროს ნიღბავს მიმაგრების ერთეულებს, ამ ნიღაბს ყველა კლონში გადაიტანს. შემდეგი, რასაც ფაილური სისტემა დასჭირდება, გატყდება და შეტყობინება მიმაგრებას ადანაშაულებს და არა გამოსახულებას, საიდანაც ის მოვიდა. ერთი მოქმედი ინსტანსის შიგნით გასწორება პრობლემას მალავს შემდეგი ინსტანსის შექმნამდე.
აგების კონტექსტში მოძებნეთ ფაილის სახელი და ბრძანება, რომელიც მას ქმნის, შემდეგ მოხსენით ნიღაბი შაბლონიდან და თავიდან ააგეთ. თუ ნიღაბი ნამდვილად საჭიროა აგების დროს, მოხსენით იმავე ფენაში, რომელიც აგებას ასრულებს, რათა გაგზავნილი გამოსახულება სუფთად გაეშვას. შეამოწმეთ ახალ კლონზე და არა ხელით გასწორებულ მანქანაზე. ეს ერთადერთი ტესტია, რომელიც ამტკიცებს, რომ გამოსახულება შეიცვალა.
დასამახსოვრებელი სიმპტომია შეუსაბამობა შეცდომასა და იმას შორის, რასაც აყალიბებდით. როცა systemd მიმაგრებაზე ჩივის, სანამ VPN კლიენტს უშვებთ, ჯერ შეტყობინებაში ერთეულის სახელი წაიკითხეთ და მერე სერვისის სახელი.