সিস্টেমযুক্ত মাউন্ট ব্যর্থ হয়। যেখানে = সেটিং ইউনিটের নামের সাথে মেলে না


20

যদি আমি এই আদেশটি ব্যবহার করি:

mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1

সমস্ত সঠিকভাবে কাজ করে। তবে আমি মাউন্ট দিয়ে মাউন্ট করার চেষ্টা করলে systemdএটি ব্যর্থ হয়।

আমি /etc/systemd/system/mnt-d1.mountনিম্নলিখিত বিষয়বস্তু সহ একটি ফাইল তৈরি করেছি :

[Unit]
Description = Disk 1

[Mount]
What = LABEL=d1
Where = /srv/node/d1
Type = xfs
Options = noatime,nodiratime,logbufs=8

[Install]
WantedBy = multi-user.target

এর পরে আমি এই আদেশগুলি চালাচ্ছি:

systemctl daemon-reload
systemctl start mnt-d1.mount

শেষটি আমাকে দেখিয়েছিল:

Failed to start mnt-d1.mount: Unit mnt-d1.mount failed to load: Invalid argument.  
See system logs and 'systemctl status mnt-d1.mount' for details.

systemctl status mnt-d1.mount আমাকে দেখিয়েছে:

May 16 18:13:52 object1 systemd[1]: Cannot add dependency job for unit mnt-d1.mount, ignoring: Unit mnt-d1.mount failed to ...ectory.
May 16 18:24:05 object1 systemd[1]: mnt-d1.mount's Where= setting doesn't match unit name. Refusing.

systemdমাউন্ট ইউনিটের মাধ্যমে ডিস্ক মাউন্ট করতে দয়া করে আমাকে সহায়তা করুন ।


এখনও কাজ করে না .. একই ত্রুটি
আলেকজান্ডার

এই প্রশ্নটি আবার খোলা উচিত - আমার একই সমস্যা হয়েছিল এবং মন্তব্যে উপস্থাপিত সমাধান আমাকে সহায়তা করেছিল। মন্তব্যটি একটি উত্তর দেওয়া উচিত যাতে আমি এটি আপভোট করতে পারি।
16:48

উত্তর:


26

ত্রুটি বার্তা কারণ ব্যাখ্যা করে:

Where= setting doesn't match unit name. Refusing.

যদিও এই বার্তাটি বোঝার জন্য বেশ কয়েকটি ম্যান পৃষ্ঠা পড়তে হবে requires
প্রতি systemd.mountman পৃষ্ঠা (খনি জোর দেওয়া):

Where=

মাউন্ট পয়েন্টের একটি ডিরেক্টরি একটি নিখুঁত পথ নেয়। মাউন্ট পয়েন্টটি মাউন্ট করার সময় উপস্থিত না থাকলে এটি তৈরি করা হয়। এই স্ট্রিংটি ইউনিটের ফাইলনেমে প্রতিবিম্বিত হতে হবে। (উপরে দেখুন।) এই বিকল্পটি বাধ্যতামূলক।

"উপরে দেখুন" অংশটি হল:

মাউন্ট ইউনিটগুলি তাদের নিয়ন্ত্রণ করে থাকা মাউন্ট পয়েন্ট ডিরেক্টরিগুলির নামকরণ করতে হবে। উদাহরণ: মাউন্ট পয়েন্ট/home/lennart অবশ্যই ইউনিট ফাইলে কনফিগার করা উচিত home-lennart.mount। ফাইল সিস্টেমের পাথটিকে ইউনিটের নামে রূপান্তর করতে ব্যবহৃত পলায়নের যুক্তি সম্পর্কে বিশদর জন্য দেখুন systemd.unit(5)

ঠিক আছে, systemd.unit ম্যান পৃষ্ঠায় বলা হয়েছে:

systemd-escape(1) কমান্ডটি ব্যবহার করে সঠিকভাবে পালানো পথগুলি তৈরি করা যায় ।

নির্দেশ করা systemd-escapeম্যান পেজের যা এটি কীভাবে করবেন তা ব্যাখ্যা করে:

কোনও পাথের জন্য মাউন্ট ইউনিট তৈরি করতে:

$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
tmp-waldi-foobar.mount

সুতরাং, আপনার ক্ষেত্রে, /srv/node/d1অনুবাদ করেsrv-node-d1.mount


3
এটি লক্ষণীয় গুরুত্বপূর্ণ যে "পথ থেকে পালানোর" সিস্টেমটি কিছু-জটিল এমনকি এমনকী-এজেড নামগুলি নিয়ে কাজ করতে পারে। এমনকি পথে কিছু ড্যাশ সি-স্টাইলের \x2dপালাতে রূপান্তর করতে হবে যা ইউনিট ফাইল তৈরি করার সময় (আপনার শেল / সম্পাদকের উপর নির্ভর করে) আবার স্ল্যাশ অক্ষর থেকে বাঁচতে হবে - সুতরাং ইউনিট ফাইল ফিট করে মাউন্ট /some-pathহতে পারে দৌড়াতে হবেedit some\\x2dpath.mount
16-22

আমি কেন মাউন্ট করতে পারি না তা জানার চেষ্টা করে এখানেই শেষ হয়েছি share-name। এটির পুনঃনামকরণ share_nameসমস্যার সমাধান করে।
ব্রায়ান জেড

আমি পারলে ডাবল আপ দিতে পারতাম!
জন মে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.