উত্তর:
একটি বাঁধাই মাউন্ট হ'ল ডিরেক্টরি গাছের একটি বিকল্প দৃশ্য। ধ্রুপদীভাবে, মাউন্টিং একটি ডিরেক্টরি গাছ হিসাবে স্টোরেজ ডিভাইসের একটি দৃশ্য তৈরি করে। পরিবর্তে একটি বাইন্ড মাউন্ট একটি বিদ্যমান ডিরেক্টরি ট্রি গ্রহণ করে এবং এটি একটি অন্য বিন্দুতে প্রতিলিপি করে। বাইন্ড মাউন্টে ডিরেক্টরি এবং ফাইলগুলি মূল হিসাবে একই। দুটি দৃষ্টিভঙ্গি একই ডেটা দেখায় বলে একদিকে যে কোনও পরিবর্তন তত্ক্ষণাত অন্যদিকে প্রতিফলিত হয়।
উদাহরণস্বরূপ, লিনাক্স কমান্ড জারি করার পরে
mount --bind /some/where /else/where
ডিরেক্টরি /some/where
এবং /else/where
একই বিষয়বস্তু আছে।
একটি হার্ড লিঙ্ক বা প্রতীকী লিঙ্কের বিপরীতে, একটি বাইন্ড মাউন্ট ফাইল সিস্টেমে কী সঞ্চিত তা প্রভাবিত করে না। এটি লাইভ সিস্টেমের সম্পত্তি।
bindfs
ফাইল-সিস্টেমটি হয় ফিউজ ফাইলসিস্টেম যা ডিরেক্টরি গাছের একটি দৃশ্য তৈরি করে। উদাহরণস্বরূপ, কমান্ড
bindfs /some/where /else/where
তোলে /else/where
মাউন্ট-পয়েন্ট যার অধীনে বিষয়বস্তু /some/where
দৃশ্যমান।
যেহেতু bindfs একটি পৃথক ফাইল সিস্টেম, তাই ফাইলগুলি /some/where/foo
এবং /else/where/foo
অ্যাপ্লিকেশনগুলিতে পৃথক ফাইল হিসাবে উপস্থিত হয় (বাইন্ডস ফাইল সিস্টেমের নিজস্ব st_dev
মান রয়েছে)। একদিকে যে কোনও পরিবর্তন অন্যদিকে "ম্যাজিকালি" প্রতিবিম্বিত হয় তবে ফাইলগুলি একই রকমের বিষয়টি কেবল তখনই স্পষ্ট হয় যখন কেউ জানে যে বাইন্ডফ কীভাবে কাজ করে।
Bindfs এর মাউন্ট পয়েন্টগুলির কোন জ্ঞান নেই, সুতরাং যদি এখানে মাউন্ট পয়েন্ট থাকে তবে এটি নীচে /some/where
কেবল অন্য ডিরেক্টরি হিসাবে প্রদর্শিত হয় /else/where
। মাউন্ট বা মাউন্টের মাউন্টের মাউন্ট নীচে সংশ্লিষ্ট ডিরেক্টরি পরিবর্তন হিসাবে /some/where
প্রদর্শিত হবে /else/where
।
বাইন্ডফগুলি কিছু ফাইল মেটাডেটা পরিবর্তন করতে পারে: এটি ফাইলগুলির জন্য জাল অনুমতি এবং মালিকানা প্রদর্শন করতে পারে। বিশদগুলির জন্য ম্যানুয়ালটি দেখুন এবং উদাহরণগুলির জন্য নীচে দেখুন।
একটি bindfs ফাইল সিস্টেম একটি নন-রুট ব্যবহারকারী হিসাবে মাউন্ট করা যেতে পারে, আপনি কেবল FUSE ফাইল সিস্টেমগুলি মাউন্ট করার অধিকার প্রয়োজন। আপনার বিতরণের উপর নির্ভর করে এর জন্য fuse
গোষ্ঠীতে থাকা প্রয়োজন বা সমস্ত ব্যবহারকারীর জন্য মঞ্জুরিপ্রাপ্ত হতে পারে। FUSE ফাইল সিস্টেমটি আনমাউন্ট fusermount -u
করার জন্য umount
, উদাহরণস্বরূপ পরিবর্তে ব্যবহার করুন
fusermount -u /else/where
ফ্রিবিএসডি nullfs
ফাইল সিস্টেম সরবরাহ করে যা একটি ফাইল সিস্টেমের একটি বিকল্প দৃষ্টিভঙ্গি তৈরি করে। নিম্নলিখিত দুটি কমান্ড সমতুল্য:
mount -t nullfs /some/where /else/where
mount_nullfs /some/where /else/where
কমান্ড জারি করার পরে, /else/where
একটি মাউন্ট পয়েন্ট হয়ে যায় যেখানে এর সামগ্রীগুলি /some/where
দৃশ্যমান হয়।
যেহেতু নালফগুলি একটি পৃথক ফাইল সিস্টেম, তাই ফাইলগুলি /some/where/foo
এবং /else/where/foo
অ্যাপ্লিকেশনগুলিতে পৃথক ফাইল হিসাবে প্রদর্শিত হয় (নালফস ফাইল সিস্টেমের নিজস্ব st_dev
মান রয়েছে)। একদিকে যে কোনও পরিবর্তন অন্যদিকে "ম্যাজিকালি" প্রতিবিম্বিত হয়, তবে ফাইলগুলি একই রকমের বিষয়টি কেবল তখনই স্পষ্ট হয় যখন কেউ জানে যে নালফ কীভাবে কাজ করে।
FUSE bindfs এর বিপরীতে, যা ডিরেক্টরি গাছের স্তরে কাজ করে, ফ্রিবিএসডি'র নালফগুলি কার্নেলের আরও গভীরভাবে কাজ করে, তাই মাউন্ট পয়েন্টগুলি /else/where
দৃশ্যমান হয় না: কেবল সেই গাছ যা একই মাউন্ট পয়েন্টের অংশ হিসাবে /some/where
নীচে প্রতিফলিত হয় /else/where
।
নালফস ফাইল সিস্টেমটি অন্যান্য বিএসডি ভেরিয়েন্টের (ওএস এক্স, ওপেনবিএসডি, নেটবিএসডি) অধীনে ব্যবহারযোগ্য হতে পারে তবে এটি ডিফল্ট সিস্টেমের অংশ হিসাবে সংকলিত হয় না।
লিনাক্সের অধীনে, বাইন্ড মাউন্টগুলি কার্নেল বৈশিষ্ট্য হিসাবে উপলব্ধ। কমান্ড লাইন অপশন বা মাউন্ট বিকল্পটি mount
পাস করে আপনি --bind
কমান্ড দিয়ে একটি তৈরি করতে পারেন bind
। নিম্নলিখিত দুটি কমান্ড সমতুল্য:
mount --bind /some/where /else/where
mount -o bind /some/where /else/where
এখানে, "ডিভাইস" /some/where
কোনও ডিস্ক বিভাজন যেমন কোনও অন ডিস্ক ফাইল সিস্টেমের ক্ষেত্রে নয়, তবে একটি বিদ্যমান ডিরেক্টরি রয়েছে। মাউন্ট পয়েন্টটি /else/where
অবশ্যই যথারীতি একটি বিদ্যমান ডিরেক্টরি হতে হবে। নোট করুন যে কোনও ফাইল সিস্টেমের ধরণটি কোনওভাবেই নির্দিষ্ট করা হয়নি: বাইন্ড মাউন্ট তৈরি করা কোনও ফাইল সিস্টেম ড্রাইভারের সাথে জড়িত নয়, এটি মূল মাউন্ট থেকে কার্নেল ডেটা স্ট্রাকচার অনুলিপি করে।
mount --bind
অ-ডিরেক্টরিতে অ-ডিরেক্টরিতে মাউন্ট করা সমর্থন করে: /some/where
একটি নিয়মিত ফাইল হতে পারে (এক্ষেত্রেও নিয়মিত ফাইল হওয়া /else/where
দরকার)।
একটি লিনাক্স বাইন্ড মাউন্ট মূল থেকে মূলত পৃথক পৃথক। কমান্ড df -T /else/where
একই ডিভাইস এবং একই ফাইল সিস্টেমের ধরণটি দেখায় df -T /some/where
। ফাইলগুলি /some/where/foo
এবং /else/where/foo
পার্থক্যহীন, যেন সেগুলি হার্ড লিঙ্ক। এটি আনমাউন্ট করা সম্ভব /some/where
, যার ক্ষেত্রে /else/where
মাউন্ট থাকে।
পুরানো কার্নেলগুলি দিয়ে (আমি ঠিক কখন জানি না, আমি প্রায় 3.x অবধি মনে করি), বাইন্ড মাউন্টগুলি আসল থেকে সত্যই পৃথক হতে পারে। সাম্প্রতিক কার্নেলগুলি পিআইডি / মাউন্টিনফোর মাধ্যমে বাঁধার মাউন্টগুলি ট্র্যাক করে এবং তথ্যটি প্রকাশ করে, যা findmnt
বাইন্ড মাউন্টকে যেমন নির্দেশ করতে দেয় ।
আপনি আবদ্ধ করতে পারেন মাউন্ট এন্ট্রি /etc/fstab
। আপনার পছন্দসই অন্যান্য বিকল্পগুলির সাথে বিকল্পগুলিতে কেবল bind
(বা rbind
ইত্যাদি) অন্তর্ভুক্ত করুন। "ডিভাইস" হ'ল বিদ্যমান গাছ। ফাইল সিস্টেম কলামে এটি থাকতে পারে none
বা bind
(এটি উপেক্ষা করা হবে, তবে একটি ফাইল সিস্টেমের নাম ব্যবহার বিভ্রান্তিকর হবে)। উদাহরণ স্বরূপ:
/some/where /readonly/view none bind,ro
যদি মাউন্ট পয়েন্টগুলি নীচে থাকে তবে /some/where
তাদের বিষয়বস্তুগুলি নীচে দৃশ্যমান নয় /else/where
। পরিবর্তে bind
, আপনি ব্যবহার করতে পারেন rbind
, নীচে মাউন্ট পয়েন্ট প্রতিলিপি /some/where
। উদাহরণস্বরূপ, যদি /some/where/mnt
মাউন্ট পয়েন্ট হয়
mount --rbind /some/where /else/where
সমতুল্য
mount --bind /some/where /else/where
mount --bind /some/where/mnt /else/where/mnt
তদ্ব্যতীত , লিনাক্স মাউন্টগুলিকে ভাগ করে নেওয়া , ক্রীতদাস , প্রাইভেট বা অনিবন্ধযোগ্য হিসাবে ঘোষিত করার অনুমতি দেয় । এটি যে মাউন্ট অপারেশনটি একটি বাঁধাইয়ের মাউন্টের নীচে প্রতিফলিত হয় যা মাউন্ট পয়েন্টটিকে প্রতিলিপি দেয় তা প্রভাবিত করে। আরও বিশদের জন্য, কার্নেল ডকুমেন্টেশন দেখুন ।
লিনাক্স মাউন্টগুলি সরানোর একটি উপায়ও সরবরাহ করে: যেখানে --bind
অনুলিপিগুলি --move
একটি মাউন্ট পয়েন্টকে সরায়।
দুটি বাইন্ড-মাউন্টড ডিরেক্টরিতে বিভিন্ন মাউন্ট অপশন থাকা সম্ভব। একটি গণ্ডগোল রয়েছে, তবে: বাঁধাই মাউন্ট তৈরি করা এবং মাউন্ট অপশনগুলি নির্ধারণ করা পারমাণবিকভাবে করা যায় না, তাদের দুটি ক্রমাগত ক্রিয়াকলাপ হতে হবে। (পুরানো কার্নেলগুলি এটির অনুমতি দেয় নি)) উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডগুলি কেবল পঠনযোগ্য দৃশ্য তৈরি করে, তবে সময়ের একটি ছোট উইন্ডো থাকে যার সময় /else/where
পঠন-লিখন হয়:
mount --bind /some/where /else/where
mount -o remount,ro,bind /else/where
যদি আপনার সিস্টেম FUSE সমর্থন করে না, একই প্রভাব অর্জনের জন্য একটি ধ্রুপদী কৌশলটি হল একটি এনএফএস সার্ভার চালানো, এটি আপনি যে ফাইলগুলি প্রকাশ করতে চান তা রফতানি করুন (অ্যাক্সেসের অনুমতি দিয়ে localhost
) এবং সেগুলি একই মেশিনে মাউন্ট করুন। স্মৃতিশক্তি এবং পারফরম্যান্সের ক্ষেত্রে এটির তাত্পর্যপূর্ণ ওভারহেড রয়েছে, তাই বাইন্ট মাউন্টগুলির একটি নির্দিষ্ট সুবিধা রয়েছে যেখানে পাওয়া যায় (যা বেশিরভাগ ইউনিক্স রূপে ফুসকে ধন্যবাদ) SE
সুরক্ষার কারণে বা আপনি যে দুর্ঘটনাক্রমে এটিকে সংশোধন করবেন না তা নিশ্চিত করার জন্য সুরক্ষার স্তর হিসাবে কোনও ফাইল সিস্টেমের কেবল পঠনযোগ্য দর্শন তৈরি করা কার্যকর হতে পারে।
বাইন্ডফ সহ:
bindfs -r /some/where /mnt/readonly
লিনাক্স সহ, সহজ উপায়:
mount --bind /some/where /mnt/readonly
mount -o remount,ro,bind /mnt/readonly
এটি /mnt/readonly
পড়ার-লেখার সময়কালের একটি স্বল্প বিরতি ছেড়ে দেয় । এটি যদি সুরক্ষা উদ্বেগের বিষয় থাকে তবে প্রথমে একটি ডিরেক্টরিতে বিন্দু মাউন্ট তৈরি করুন যা কেবলমাত্র রুট অ্যাক্সেস করতে পারে, কেবল এটি কেবল পঠনযোগ্য করে তুলুন, তারপরে এটিকে সর্বজনীন মাউন্ট পয়েন্টে সরান। নীচের স্নিপেটে নোট করুন যে এটি গুরুত্বপূর্ণ /root/private
(মাউন্ট পয়েন্টের উপরে ডিরেক্টরিটি) ব্যক্তিগত; /root/private/mnt
উপরের মূল অনুমতিগুলি অপ্রাসঙ্গিক কারণ এগুলি মাউন্ট পয়েন্টের আড়ালে লুকানো রয়েছে।
mkdir -p /root/private/mnt
chmod 700 /root/private
mount --bind /some/where /root/private/mnt
mount -o remount,ro,bind /root/private/mnt
mount --move /root/private/mnt /mnt/readonly
ফাইল সিস্টেম ব্যবহারকারী এবং গোষ্ঠীগুলিকে তাদের সংখ্যাযুক্ত আইডি দ্বারা রেকর্ড করে। কখনও কখনও আপনি একাধিক সিস্টেমের সাথে সমাপ্ত হন যা একই ব্যক্তিকে বিভিন্ন ব্যবহারকারী আইডি দেয়। এটি নেটওয়ার্ক অ্যাক্সেস নিয়ে কোনও সমস্যা নয় তবে আপনি যখন ডিস্কে একটি সিস্টেম থেকে অন্য সিস্টেমে ডেটা নিয়ে যান তখন এটি ব্যবহারকারী আইডিগুলিকে অর্থহীন করে তোলে। মনে করুন যে অ্যালিসের ইউজার আইডি 1000 এবং ববটির ইউজার আইডি 1001 রয়েছে এমন কোনও সিস্টেমে আপনি একটি মাল্টি-ইউজার ফাইল সিস্টেম (যেমন ext4, বিটিআরএফএস, জেডএফএস, ইউএফএস,…) দিয়ে একটি ডিস্ক তৈরি করেছেন এবং আপনি সেই ডিস্কটি অ্যাক্সেসযোগ্য করতে চান একটি সিস্টেম যেখানে অ্যালিসের ব্যবহারকারী আইডি 1001 এবং ববটির ব্যবহারকারী ID 1000 রয়েছে you আপনি যদি ডিস্কটি সরাসরি মাউন্ট করেন তবে অ্যালিসের ফাইলগুলি ববের মালিকানাধীন প্রদর্শিত হবে (কারণ ব্যবহারকারী আইডি 1001) এবং ববের ফাইলগুলি এলিসের মালিকানাধীন প্রদর্শিত হবে (কারণ ব্যবহারকারীর আইডি 1000)।
ব্যবহারকারীর আইডি পুনরায় তৈরি করতে আপনি বাইন্ডফ ব্যবহার করতে পারেন। প্রথমে একটি ব্যক্তিগত ডিরেক্টরিতে ডিস্ক পার্টিশনটি মাউন্ট করুন, যেখানে কেবলমাত্র রুট এটি অ্যাক্সেস করতে পারে। তারপরে ইউজার আইডি এবং গ্রুপ আইডি রিম্যাপিং সহ অ্যালিস এবং বব এর ব্যবহারকারী আইডি এবং গোষ্ঠী আইডি সজ্জিত করে একটি সর্বজনীন এলাকায় একটি বিন্দু দর্শন তৈরি করুন।
mkdir -p /root/private/alice_disk /media/alice_disk
chmod 700 /root/private
mount /dev/sdb1 /root/private/alice_disk
bindfs --map=1000/1001:1001/1000:@1000/1001:@1001/1000 /root/private/alice_disk /media/alice_disk
নন-বুট করা সিস্টেমের ব্যবহারকারীর হোম ফোল্ডারে কোনও ব্যক্তি কীভাবে অনুমতি সহ ফাইলগুলি অ্যাক্সেস করতে পারে দেখুন দেখুন ? এবং মাউন্ট --bind অন্য ব্যবহারকারী হিসাবে নিজেকে অন্য উদাহরণ হিসাবে ।
সিস্টেমের ডিরেক্টরি গাছের একটি সাবট্রিতে একটি ক্রুট জেল বা ধারক একটি প্রক্রিয়া চালায়। এটি সীমাবদ্ধ অ্যাক্সেস সহ একটি প্রোগ্রাম চালনাতে দরকারী হতে পারে, যেমন কেবল নিজস্ব ফাইল এবং এটি যে ফাইলগুলি সরবরাহ করে সেগুলিতে অ্যাক্সেস সহ একটি নেটওয়ার্ক সার্ভার চালান, তবে একই কম্পিউটারে সঞ্চিত অন্যান্য ডেটা নয়)। ক্রুটের একটি সীমাবদ্ধতা হ'ল প্রোগ্রামটি একটি সাবট্রির মধ্যে সীমাবদ্ধ: এটি স্বাধীন সাবট্রিতে অ্যাক্সেস করতে পারে না। বাঁধাই মাউন্টগুলি সেই মূল গাছটিতে অন্যান্য সাবট্রিজগুলি গ্রাফ্ট করার অনুমতি দেয়। এটি তাদের লিনাক্সের অধীনে ধারকগুলির ব্যবহারিক ব্যবহারের জন্য মৌলিক করে তোলে।
উদাহরণস্বরূপ, ধরুন যে কোনও মেশিন একটি পরিষেবা চালায় /usr/sbin/somethingd
যা কেবলমাত্র এর অধীনে ডেটা অ্যাক্সেস করা উচিত /var/lib/something
। ক্ষুদ্রতম ডিরেক্টরি ট্রিটিতে এই দুটি ফাইল রয়েছে root কীভাবে পরিষেবাটি সীমাবদ্ধ থাকবে? একটি সম্ভাবনা হ'ল পরিষেবাটির /usr/sbin/somethingd
অধীনে থাকা সমস্ত ফাইলের (কমপক্ষে এবং বেশ কয়েকটি ভাগ করে নেওয়া লাইব্রেরি) হার্ড লিঙ্ক তৈরি করা /var/lib/something
। তবে এটি জটিল (জটিল লিঙ্কগুলি যখনই কোনও ফাইল আপগ্রেড করা হয় তখন আপডেট করা প্রয়োজন), এবং যদি বিভিন্ন ফাইল সিস্টেমে থাকে /var/lib/something
এবং কাজ করে না /usr
। আরও ভাল সমাধান হ'ল একটি অ্যাডহক রুট তৈরি করা এবং মাউন্টগুলি ব্যবহার করে এটি পপুলেট করুন:
mkdir /run/something
cd /run/something
mkdir -p etc/something lib usr/lib usr/sbin var/lib/something
mount --bind /etc/something etc/something
mount --bind /lib lib
mount --bind /usr/lib usr/lib
mount --bind /usr/sbin usr/sbin
mount --bind /var/lib/something var/lib/something
mount -o remount,ro,bind etc/something
mount -o remount,ro,bind lib
mount -o remount,ro,bind usr/lib
mount -o remount,ro,bind usr/sbin
chroot . /usr/sbin/somethingd &
লিনাক্সের মাউন্ট নেমস্পেসগুলি ক্রুটকে সাধারণীকরণ করে। বাইন্ড মাউন্টগুলি হ'ল নামস্থান কীভাবে নমনীয় উপায়ে পপুলেশন করা যায়। উদাহরণস্বরূপ একই ফাইলনামের জন্য একটি প্রক্রিয়া তৈরি করা দেখুন aking
ক্রুটগুলির আরেকটি ব্যবহার হ'ল একটি ডিরেক্টরিতে একটি ভিন্ন বিতরণ ইনস্টল করা এবং এটি থেকে প্রোগ্রামগুলি চালানো, এমনকি যখন তাদের হার্ড-কোডেড পাথগুলিতে ফাইলগুলির প্রয়োজন হয় যা বেস সিস্টেমে উপস্থিত থাকে না বা পৃথক সামগ্রী থাকে। উদাহরণস্বরূপ, 64৪-বিট সিস্টেমে একটি 32-বিট বিতরণ ইনস্টল করা যা মিশ্র প্যাকেজগুলি সমর্থন করে না, সামঞ্জস্যতা পরীক্ষা করতে কোনও বিতরণ বা অন্যান্য বিতরণের পুরানো প্রকাশ ইনস্টল করতে, পরীক্ষার জন্য নতুন রিলিজ ইনস্টল করতে স্থিতিশীল বেস সিস্টেম বজায় রাখার সময় সর্বশেষতম বৈশিষ্ট্য ইত্যাদি দেখুন 64৪-বিট দেবিয়ান / উবুন্টুতে আমি কীভাবে 32-বিট প্রোগ্রাম চালাব? দেবিয়ান / উবুন্টুতে উদাহরণের জন্য।
মনে করুন যে আপনার ডিস্ট্রিবিউশনের সর্বশেষ প্যাকেজগুলির একটি ডিরেক্টরি ডিরেক্টরিতে আছে /f/unstable
সেখানে আপনি সেই ডিরেক্টরিটিতে স্যুইচ করে প্রোগ্রাম পরিচালনা করেন chroot /f/unstable
। এই ইনস্টলেশনগুলি থেকে হোম ডিরেক্টরিগুলি উপলভ্য করতে, তাদের chroot এ বাঁধুন:
mount --bind /home /f/unstable/home
প্রোগ্রামটি শ্রুত স্বয়ংক্রিয়ভাবে এটি করে।
আপনি যখন কোনও ডিরেক্টরিতে একটি ফাইল সিস্টেম মাউন্ট করেন, তখন এটি ডিরেক্টরিটির পিছনে কী লুকায় ides ডিরেক্টরিটি আনমাউন্ট না হওয়া পর্যন্ত সেই ডিরেক্টরিতে থাকা ফাইলগুলি অ্যাক্সেসযোগ্য হয়ে যায়। যেহেতু বিএসডি নালফস এবং লিনাক্স বাইন্ড মাউন্টগুলি মাউন্ট পরিকাঠামোর চেয়ে নিম্ন স্তরে কাজ করে, একটি নালফ মাউন্ট বা একটি ফাইল সিস্টেমের একটি বাইন্ড মাউন্ট সেই ডিরেক্টরিগুলি উন্মোচন করে যা মূল সাবমেরেন্টের আড়ালে লুকানো ছিল।
উদাহরণস্বরূপ, ধরুন যে আপনি একটি tmpfs ফাইল সিস্টেম মাউন্ট করেছেন /tmp
। /tmp
Tmpfs ফাইল সিস্টেমটি তৈরি করার সময় যদি এখানে ফাইল থাকত তবে এই ফাইলগুলি এখনও অবধি কার্যকরভাবে অ্যাক্সেসযোগ্য তবে ডিস্কের স্থান গ্রহণ করতে পারে। চালান
mount --bind / /mnt
(লিনাক্স) বা
mount -t nullfs / /mnt
(ফ্রিবিএসডি) এ মূল ফাইল সিস্টেমের একটি ভিউ তৈরি করতে /mnt
। /mnt/tmp
মূল ফাইল সিস্টেম থেকে ডিরেক্টরিটি হ'ল ডিরেক্টরি ।
কিছু এনএফএস সার্ভার (যেমন এনএফএসভি 4 এর আগে লিনাক্স কার্নেল এনএফএস সার্ভার) সর্বদা প্রকৃত ডিরেক্টরি অবস্থানের বিজ্ঞাপন দেয় যখন তারা কোনও ডিরেক্টরি রফতানি করে। এটি হ'ল, যখন কোনও ক্লায়েন্ট অনুরোধ করে server:/requested/location
, সার্ভার লোকেশনতে গাছটিকে পরিবেশন করে /requested/location
। কখনও কখনও ক্লায়েন্টদের অনুরোধ করার অনুমতি দেওয়া বাঞ্ছনীয় /request/location
তবে প্রকৃতপক্ষে ফাইলগুলি পরিবেশন করা /actual/location
। যদি আপনার এনএফএস সার্ভার কোনও বিকল্প অবস্থান পরিবেশন করা সমর্থন করে না, তবে আপনি প্রত্যাশিত অনুরোধের জন্য একটি বাইন্ড মাউন্ট তৈরি করতে পারেন, যেমন
/requested/location *.localdomain(rw,async)
ইন /etc/exports
এবং নিম্নলিখিতটিতে /etc/fstab
:
/actual/location /requested/location bind bind
কখনও কখনও আপনি কোনও ফাইলকে /some/where/is/my/file
নীচে প্রদর্শিত করতে প্রতীকী লিঙ্ক তৈরি করতে চাইবেন /else/where
তবে যে অ্যাপ্লিকেশনটি ব্যবহার file
করে তা প্রতীকী লিঙ্কগুলি এবং প্রত্যাখাতকে প্রসারিত করে /some/where/is/my/file
। একটি বাইন্ড মাউন্ট এটিকে ঘিরে কাজ করতে পারে: বাঁধাই-মাউন্ট /some/where/is/my
করুন /else/where/is/my
এবং তারপরে নীচে নয়, অধীনে realpath
থাকবে বলে প্রতিবেদন করবে ।/else/where/is/my/file
/else/where
/some/where
আপনি যদি বাইন্ড মাউন্টগুলি ব্যবহার করেন তবে আপনার অ্যাপ্লিকেশনগুলির যত্ন নিতে হবে যা ফাইল সিস্টেম ট্রিটিকে পুনরাবৃত্তভাবে অতিক্রম করে, যেমন ব্যাকআপ এবং সূচীকরণ (যেমন একটি সনাক্ত ডাটাবেস তৈরি করতে )।
সাধারণত, বাইন্ড মাউন্টগুলি পুনরাবৃত্ত ডিরেক্টরি ডিরেক্টরি ট্র্যাভারসালগুলি থেকে বাদ দেওয়া উচিত, যাতে প্রতিটি ডিরেক্টরি ট্রি কেবলমাত্র একবারে মূল স্থানে যায়। বাইন্ডফ এবং নালফ দিয়ে, যদি সম্ভব হয় তবে এই ফাইল সিস্টেমের প্রকারগুলি উপেক্ষা করতে ট্র্যাভারসাল সরঞ্জামটি কনফিগার করুন। লিনাক্স বাইন্ড মাউন্টগুলি যেমন স্বীকৃত হতে পারে না: নতুন অবস্থানটি আসলটির সমান। লিনাক্স বাইন্ড মাউন্টগুলির সাহায্যে, বা এমন সরঞ্জামগুলির সাহায্যে যা কেবল পথগুলি বাদ দিতে পারে এবং ফাইল সিস্টেমের ধরণগুলি নয়, আপনাকে বাইন্ড মাউন্টগুলির জন্য মাউন্ট পয়েন্টগুলি বাদ দিতে হবে।
Traversals যে ফাইলসিস্টেম গণ্ডি থামবে (যেমন find -xdev
, rsync -x
, du -x
, ...) স্বয়ংক্রিয়ভাবে যখন তারা কোনো bindfs সম্মুখীন হন বা nullfs মাউন্ট পয়েন্ট বন্ধ কারণ যে মাউন্ট পয়েন্ট একটি ভিন্ন ফাইল সিস্টেম বার করে দেব। লিনাক্স বাইন্ড মাউন্টগুলির সাহায্যে পরিস্থিতিটি আরও জটিল:
বাইন্ড মাউন্টগুলি একটি পৃথক স্থানে ডিরেক্টরি গাছের একটি ভিউ সরবরাহ করে। তারা একই ফাইলগুলি সম্ভবত বিভিন্ন মাউন্ট অপশন এবং (বাইন্ডফের সাহায্যে) পৃথক মালিকানা এবং অনুমতি নিয়ে প্রকাশ করে। ডিরেক্টরি সিস্টেমের পরিবর্তিত দর্শন উপস্থিত ফাইল সিস্টেমগুলিকে ওভারলে ফাইল সিস্টেম বা স্ট্যাকেবল ফাইল সিস্টেম বলা হয় । আরও অনেক ওভারলে ফাইল সিস্টেম রয়েছে যা আরও উন্নত রূপান্তরগুলি সম্পাদন করে। এখানে কয়েকটি সাধারণ বিষয় রয়েছে। যদি আপনার পছন্দসই ব্যবহারের কেসটি এখানে আচ্ছাদিত না করা থাকে তবে FUSE ফাইল সিস্টেমের সংগ্রহস্থলটি পরীক্ষা করুন ।
bindfs -r
, আরও কিছুটা হালকা ওজন।ইউনিয়ন মাউন্ট করে - একক ডিরেক্টরি অধীনে একাধিক ফাইল সিস্টেম (যার নাম শাখা ) উপস্থাপন করে : যদি tree1
এতে থাকে foo
এবং tree2
থাকে bar
তবে তাদের ইউনিয়ন দৃশ্যে উভয় foo
এবং থাকে bar
। নতুন ফাইলগুলি একটি নির্দিষ্ট শাখায় বা আরও জটিল বিধি অনুসারে নির্বাচিত একটি শাখায় লিখিত হয়। এই ধারণার বেশ কয়েকটি বাস্তবায়ন রয়েছে যার মধ্যে রয়েছে:
mount --bind /dir1 /dir1
? উত্সের উত্স এবং লক্ষ্য পৃথক যেখানে ক্ষেত্রে এটি কীভাবে আলাদা?
/proc/self/mountinfo
। ক্রুট হিসাবে, এটি বিচ্ছিন্নতার জন্য ব্যবহার করা যেতে পারে, তবে এটি নিজস্বভাবে নয়। আপনার যদিও মাউন্ট নেমস্পেসের প্রয়োজন হবে না : ফাইল সিস্টেমের নেমস্পেস অংশের জন্য ক্রুট যথেষ্ট। আপনার নিশ্চিত করতে হবে যে ক্রুটের কোনও প্রক্রিয়া ক্রোটের বাইরে কোনও প্রক্রিয়া হিসাবে একই ব্যবহারকারীর মতো চলবে না।
সরল, আপনি যখন বাইন্ড মাউন্ট ব্যবহার করবেন তখন হোস্ট মেশিনের একটি ফাইল বা ডিরেক্টরি একটি ধারক হিসাবে মাউন্ট করা হয় তাই হোস্ট মেশিনে ফাইল ডিরেক্টরিতে যা কিছু পরিবর্তন হয় তা স্বয়ংক্রিয়ভাবে ডিরেক্টরিতে থাকা ধারকের ভিতরে উপস্থিত হয়ে যায়।