ਤੁਹਾਡੀ ਸੇਵਾ 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 ਕਲਾਇੰਟ ਸ਼ੁਰੂ ਕਰ ਰਹੇ ਹੋਵੋ, ਤਾਂ ਪਹਿਲਾਂ ਸੁਨੇਹੇ ਵਿੱਚ ਯੂਨਿਟ ਦਾ ਨਾਮ ਪੜ੍ਹੋ ਅਤੇ ਫਿਰ ਸੇਵਾ ਦਾ ਨਾਮ।

ਸੰਬੰਧਿਤ ਲੇਖ