Rbind মাউন্ট পরে পুনরাবৃত্তিমূলক পরিমাণ


13

যখন কোনও ক্রুট প্রবেশ করানো হয় তখন যখন কেউ সন্ধানের দিকে যায় তখন তার সঠিক জায়গায় ঠিকঠাক অবস্থানে থাকা বীমার জন্য -bind এর পরিবর্তে মাউন্ট / সিস এবং / ডিভ ব্যবহার করে -রবাইন্ড ব্যবহার করা আবশ্যক।

আনমাউন্ট করার সময় সমস্যাটি আসে।

একটি সাধারণ সর্বদা সর্বদা ব্যর্থ হয়; বাচ্চাদের মাউন্ট করার পাশাপাশি এটি ব্যবহারে প্রদর্শিত হবে:

$ umount /mnt/chroot/sys
umount: /mnt/chroot/sys: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

আর একটি সম্ভাব্য সমাধান হ'ল প্রোক থেকে প্রাপ্ত মাউন্টগুলি তালিকাভুক্ত করা এবং এটির মতো প্রতিটিের সীমাবদ্ধ করুন:

$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount

তবে এটি পাশাপাশি ব্যর্থ হয়েছে কারণ পুনরাবৃত্ত মাউন্টগুলি আসলে এমটিএবে নিবন্ধভুক্ত নয়:

/mnt/chroot/sys/kernel/security is not mounted (according to mtab)

সম্ভবত সমাধানটি অলস পরিমাণে সম্পাদন করা, তবে এটি আমার পক্ষে বেশ বিপজ্জনক বলে মনে হচ্ছে।

আমি কি মিস করেছি এটি করার আরও ভাল উপায় আছে?


1
আপনি কি নিশ্চিত যে /mnt/chroot/sys/kernel/securityসেই মুহুর্তে মাউন্ট করা হয়েছে? এর আউটপুট কি grep /sys/kernel/security /proc/mounts? umountএর যুক্তি তালিকাভুক্ত করার দরকার নেই /etc/mtab। আপনি যদি এটি পাস করেন তবে -nএটি ফাইলটি একেবারেই খুলবে না।
গিলস 23'15

যদি আপনি আমাউন্টের জন্য জার্গারস তৈরির জন্য আমার গ্রেপ কমান্ডটি ঘনিষ্ঠভাবে দেখেন তবে আমি কেবল এটির /
প্রোচার

উত্তর:


11

এটি আমার জন্য সঠিকভাবে কাজ করেছে - /unix//a/264488/4319 :

mount --rbind /dev /mnt/test
mount --make-rslave /mnt/test
umount -R /mnt/test

প্রথম দুটি কমান্ড দুটি পৃথক কমান্ড হিসাবে হওয়া জরুরী ছিল: একত্রিত হবেন না --rbindএবং --make-rslaveমাউন্টের একটি অনুরোধে।

ছাড়া --make-rslave, আচরণটি অযাচিত ছিল (এবং সফল নয়):

  • umount -l মূল পুরানো মাউন্টপয়েন্টগুলিকেও প্রভাবিত করবে,
  • এবং umount -Rমূল পুরানো মাউন্টপয়েন্টগুলির অধীনে ব্যস্ত (খোলা) ফাইল দ্বারা প্রভাবিত হবে। (খুব অপ্রত্যাশিত ...)

মাউন্টের সাম্প্রতিক সংস্করণে এটি ঠিক করা হয়েছে কিনা তা আপনি জানেন না তবে একত্রিত হওয়া --rbindএবং --make-rslaveএকই মাউন্টের অনুরোধে এটি পুরোপুরি ঠিক আছে :mount --rbind --make-rslave /dev /mnt/test
জাভি মেরিনো

1
আপনি দুটি আর্গুমেন্ট একত্রিত করতে পারবেন, এটি এটি পরিবর্তে একটি পুনরাবৃত্তি মাউন্ট করতে তোলে। সুতরাং এটি আসলে হিসাবে কাজ করে না।
মিরাল

10

এই উত্তরের কৃতিত্ব গিলসকে যায় ; গিলস প্রশ্নের মন্তব্যে উল্লেখ করেছেন যে '-n' স্যুইচটি এমটিএবকে উপেক্ষা করে এবং / প্রোক / মাউন্টগুলিতে তালিকাবদ্ধ যে কোনও কিছু আনমাউন্ট করে।

ম্যানপেজ থেকে:

-n     Unmount without writing in /etc/mtab.

সুতরাং --rbind মাউন্টটি কীভাবে উন্মুক্ত করা যায় সে সম্পর্কে আমার প্রশ্নের উত্তর দিতে, এটি আমার পক্ষে কাজ করা সম্পূর্ণ আদেশ:

grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount -n

মার্কি, গিলস!


1
চেষ্টা করছি mount --rbind / /mnt && umount -n /mnt/dev/shm(বা পিটিএস), আমি পেয়েছি umount: /mnt/dev/shm: target is busyumount -l /mntসিস্টেমটিকে মেরে ফেলে (উদাহরণস্বরূপ sudo ব্যর্থ হয়ে stdin কোনও tty নয়)। এটি ইনস্টল করা ফেডোরা সিস্টেমে রয়েছে। আমি অনুমান করি এটি আমার একটি পুরানো সমস্যা: unix.stackexchange.com/questions/269695/…
সোর্সজেডি

3

যেহেতু ইউজ-লিনাক্স ভি 2.23 (25-এপ্রিল -2013) umountকমান্ডটি -R, --recursiveবিকল্পটি সমর্থন করে ।

ম্যান পেজটি এখানে যা বলেছে:

প্রতিটি নির্দিষ্ট ডিরেক্টরি পুনরাবৃত্তভাবে আনমাউন্ট করুন। চেইনের কোনও আনমাউন্ট অপারেশন যদি কোনও কারণে ব্যর্থ হয় তবে প্রতিটি ডিরেক্টরিটির পুনরাবৃত্তি বন্ধ হবে। মাউন্টপয়েন্টগুলির মধ্যে সম্পর্ক /proc/self/mountinfo এন্ট্রি দ্বারা নির্ধারিত হয় । ফাইল সিস্টেমটি অবশ্যই মাউন্টপয়েন্ট পথ দ্বারা নির্দিষ্ট করা উচিত; ডিভাইসের নাম (বা ইউইউডি) দ্বারা একটি পুনরাবৃত্ত আনমাউন্ট অসমর্থিত।


0

তার জন্য ধন্যবাদ. আমি সম্পূর্ণ স্ক্রট-ট্রিটিকে আনমাউন্ট করতে আমার স্ক্রিপ্টগুলিতে এটি ব্যবহার করি: (সেই অনুযায়ী $ এমএনটি সেট করতে নিশ্চিত করুন)

for dir in $(grep "$MNT" /proc/mounts | cut -f2 -d" " | sort -r)
do
    umount $dir 2> /dev/null
    (( $? )) && umount -n $dir
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.