এড়াতে umount -l
লেখার সময়, শীর্ষ-ভোট প্রাপ্ত উত্তরগুলি ব্যবহারের পরামর্শ দেয় umount -l
।
umount -l
বিপজ্জনক বা সেরা অনিরাপদ । সংক্ষেপে:
- এটি আসলে ডিভাইসটিকে আনমাউন্ট করে না, এটি কেবল নামস্থান থেকে ফাইল সিস্টেমটি সরিয়ে দেয়। ফাইল খুলতে লেখার কাজ চালিয়ে যেতে পারে।
- এটি বিটিআরএফএস ফাইল সিস্টেমের দুর্নীতির কারণ হতে পারে
আশেপাশে / বিকল্প কাজ
এর দরকারী আচরণ umount -l
দ্বারা অ্যাক্সেস থেকে ফাইলসিস্টেম লুকিয়ে আছে পরম pathnames ফলে আরও moutpoint ব্যবহার কমানোর।
ডিরেক্টরিটি মাউন্ট করার অনুমতি ছাড়াই একটি খালি ডিরেক্টরি মাউন্ট করে এই একই আচরণ অর্জন করা 000
যেতে পারে।
তারপরে মাউন্টপয়েন্টের নীচে ফাইলের নামের কোনও নতুন অ্যাক্সেস শূন্য অনুমতি নিয়ে নতুন ওভারলেড ডিরেক্টরিতে আঘাত করবে - আনমাউন্টে থাকা নতুন ব্লকারকে এর ফলে বাধা দেওয়া হবে।
প্রথমে চেষ্টা করুন remount,ro
আনলক হওয়ার জন্য বড় আনমাউন্ট প্রাপ্তিটি হ'ল কেবল পঠনযোগ্য রিমাউন্ট। আপনি যখন remount,ro
ব্যাজটি অর্জন করবেন তখন আপনি তা জানেন:
- সমস্ত মুলতুবি থাকা ডেটা ডিস্কে লেখা হয়েছে
- ভবিষ্যতের সমস্ত লেখার প্রচেষ্টা ব্যর্থ হবে
- ডেটাটি সামঞ্জস্যপূর্ণ অবস্থায় রয়েছে, আপনার কি ডিভাইসটি শারীরিকভাবে সংযোগ বিচ্ছিন্ন করা উচিত।
mount -o remount,ro /dev/device
লেখার জন্য ফাইলগুলি খোলা থাকলে ব্যর্থ হওয়ার গ্যারান্টিযুক্ত , তাই সরাসরি চেষ্টা করুন। আপনি নিজেকে ভাগ্যবান বোধ করছেন, পাঙ্ক!
আপনি যদি দুর্ভাগ্য হন তবে কেবল লেখার জন্য উন্মুক্ত ফাইলগুলি সহ প্রক্রিয়াগুলিতে ফোকাস করুন :
lsof +f -- /dev/<devicename> | awk 'NR==1 || $4~/[0-9]+[uw -]/'
তারপরে আপনার কেবলমাত্র পঠনযোগ্য ডিভাইসটিকে পুনরায় গণনা করতে এবং একটি সামঞ্জস্যপূর্ণ অবস্থা নিশ্চিত করতে সক্ষম হওয়া উচিত।
আপনি যদি কেবলমাত্র এই সময়ে পঠনযোগ্য পুনরায় গণনা করতে না পারেন তবে এখানে তালিকাভুক্ত অন্যান্য সম্ভাব্য কয়েকটি কারণ অনুসন্ধান করুন ।
কেবল পঠনযোগ্য পুনরায় মাউন্ট কৃতিত্ব আনলক 🔓☑
অভিনন্দন, মাউন্টপয়েন্টে আপনার ডেটা এখন সামঞ্জস্যপূর্ণ এবং ভবিষ্যতের লেখা থেকে সুরক্ষিত।
fuser
নিকৃষ্ট কেন হয়lsof
কেন fuser
আগে ব্যবহার ব্যবহার করবেন না ? ঠিক আছে, তবে আপনি fuser
কোনও ডিরেক্টরিতে চালিত করতে পারেন, কোনও ডিভাইস নয় , সুতরাং যদি আপনি ফাইলের নাম স্থান থেকে মাউন্টপয়েন্টটি সরিয়ে রাখতে চান এবং ব্যবহার fuser
করতে চান তবে আপনার প্রয়োজন:
mount -o bind /media/hdd /mnt
অন্য স্থানে অস্থায়ীভাবে মাউন্টপয়েন্টটি সদৃশ করুন
- মূল মাউন্ট পয়েন্টটি লুকান এবং নেমস্পেসটি ব্লক করুন:
এখানে কীভাবে:
null_dir=$(sudo mktemp --directory --tmpdir empty.XXXXX")
sudo chmod 000 "$null_dir"
# A request to remount,ro will fail on a `-o bind,ro` duplicate if there are
# still files open for writing on the original as each mounted instance is
# checked. https://unix.stackexchange.com/a/386570/143394
# So, avoid remount, and bind mount instead:
sudo mount -o bind,ro "$original" "$original_duplicate"
# Don't propagate/mirror the empty directory just about hide the original
sudo mount --make-private "$original_duplicate"
# Hide the original mountpoint
sudo mount -o bind,ro "$null_dir" "$original"
আপনার তখন থাকতে হবে:
- আসল নেমস্পেস লুকানো (কোনও ফাইল আর খুলতে পারে না, সমস্যা আরও খারাপ হতে পারে না)
- একটি নকল বাঁধার মাউন্ট ডিরেক্টরি (কোনও ডিভাইসের বিপরীতে) চালানো হবে
fuser
।
এটি আরও সংশ্লেষিত [1] তবে এটি আপনাকে ব্যবহার করতে দেয়:
fuser -vmMkiw <mountpoint>
যা ইন্টারেক্টিভভাবে লেখার জন্য উন্মুক্ত ফাইলগুলি সহ প্রক্রিয়াগুলিকে হত্যা করতে বলবে। অবশ্যই, আপনি মাউন্ট পয়েন্টটি আড়াল না করে এটি করতে পারেন তবে উপরের নকলগুলিumount -l
, কোনও বিপদ ছাড়াই।
-w
প্রসেস লেখা সুইচ পরিমিত, এবং -i
শুধুমাত্র পাঠযোগ্য পুনরারোহণ ইন্টারঅ্যাকটিভ, তাই একটি পর যদি আপনি এটি তাড়ার তারপর আপনি ব্যবহার করতে পারে করছি:
fuser -vmMk <mountpoint>
মাউন্টপয়েন্টের নীচে খোলা ফাইলগুলির সাথে বাকী সমস্ত প্রক্রিয়া মেরে ফেলতে।
আশা করি এই মুহুর্তে, আপনি ডিভাইসটি আনমাউন্ট করতে পারবেন। (আপনি umount
যদি 000
উপরে একটি মোড ডিরেক্টরি বাঁধেন তবে আপনাকে দুবার মাউন্টপয়েন্টে দৌড়াতে হবে ))
বা ব্যবহার করুন:
fuser -vmMki <mountpoint>
ইন্টারঅ্যাকটিভভাবে বাকী কেবল পঠনযোগ্য প্রক্রিয়াগুলি আনমাউন্টটিকে অবরুদ্ধ করে হত্যা করতে।
দাম্মিত, আমি এখনও পাই target is busy
!
খোলা ফাইলগুলি কেবলমাত্র আনমাউন্ট ব্লকার নয়। দেখুন এখানে এবং এখানেঅন্যান্য কারণ এবং তাদের প্রতিকারের জন্য ।
এমনকি যদি আপনার কাছে কিছু লুকানো গ্রিমলিন পাওয়া যায় যা আপনাকে ডিভাইসটিকে সম্পূর্ণরূপে আনমাউন্ট করা থেকে বিরত রাখে তবে কমপক্ষে আপনার ফাইল সিস্টেমটি একটি সামঞ্জস্যপূর্ণ অবস্থায় পেয়েছেন।
তারপরে আপনি lsof +f -- /dev/device
ফাইল সিস্টেমের সাথে থাকা ডিভাইসে খোলা ফাইলগুলির সাথে সমস্ত প্রক্রিয়া তালিকাভুক্ত করতে এবং তারপরে তাদের হত্যা করতে পারেন।
[1] এটি ব্যবহারের জন্য কম সংশ্লেষিত mount --move
তবে এটির জন্য mount --make-private /parent-mount-point
যা বোঝা যায় । মূলত, যদি মাউন্টপয়েন্টটি /
ফাইল সিস্টেমে মাউন্ট করা হয় তবে আপনি এড়াতে চাইবেন।