আমার হার্ড ড্রাইভটি মাউন্ট করা হলে / টিএমপি-এর আসল সামগ্রীটির কী হবে?
বেশ কিছু না। এগুলি কেবল দৃশ্য থেকে লুকানো রয়েছে, সাধারণ ফাইল সিস্টেম ট্র্যাভারসালের মাধ্যমে পৌঁছনীয় নয়।
হার্ড ড্রাইভ মাউন্ট করার সময় / টেম্পের আসল সামগ্রীতে কী r / w ক্রিয়াকলাপ করা সম্ভব?
হ্যাঁ. আপনার "আসল" এর ভিতরে যে ফাইলগুলি খোলা ফাইল হ্যান্ডেলগুলি ছিল /tmp
সেগুলি সেগুলি ব্যবহার করতে সক্ষম হবে। আপনি অন্য কোথাও বাইন্ড-মাউন্ট করে /
অন্য কোথাও "পুনরায় প্রদর্শিত" করতে পারেন ।
# mount -o bind / /somewhere/else
# ls /somewhere/else/tmp
এখানে যা ঘটছে তার জন্য আরও ভাল (আমি আশা করি) অনুভূতি পেতে আপনি চালাতে পারেন এমন একটি সামান্য পরীক্ষা।
দ্রষ্টব্য: এটি পুরোপুরি সঠিক হওয়ার চেষ্টা বা সত্যিকার অর্থে কী ঘটছে তার সম্পূর্ণ বিবরণ নয়। আপনাকে বড় ছবি দেওয়ার জন্য যথেষ্ট সঠিক হওয়া উচিত।
আমি me
আমার মেশিনে ডেকে একটি ব্যবহারকারী এবং তার বাড়িতে একটি এলোমেলো ডিরেক্টরি তৈরি করেছি যার মধ্যে একটি ফাইল রয়েছে:
me@home $ pwd
/home/me/tmp
me@home $ echo hello > some_file
me@home $ ls
some_file
me@home $ cat some_file
hello
এই মুহুর্তে, অস্বাভাবিক কিছু নয় - এটি কেবল একটি সরল ফাইল সহ একটি সরল ডিরেক্টরি। আমি সেই অধিবেশনটিকে ঠিক সেইভাবেই খোলা রাখি, এর সাথে cwd
পরীক্ষার ডিরেক্টরিটি রয়েছে।
রুট হিসাবে, আমি একটি ছোট ফাইল সিস্টেম তৈরি করে এটিকে মাউন্ট করব /home/me/tmp
।
root@home # dd if=/dev/zero of=./fs bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00467318 s, 2.2 GB/s
root@home # mkfs -t ext2 ./fs
mke2fs 1.42.12 (29-Aug-2014)
[... snip ...]
Writing superblocks and filesystem accounting information: done
root@home # mount ./fs /home/me/tmp
আমি তারপরে একটি নতুন টার্মিনালটি খুলি me
এবং চারপাশটি দেখি:
me@home #2 $ cd tmp
me@home #2 $ ls
lost+found
me@home #2 $ cat some_file
cat: some_file: No such file or directory
me@home #2 $ echo bye bye > some_file
-su: some_file: Permission denied
সুতরাং, আমরা তৈরি করা ফাইলটি পরিষ্কারভাবে নেই। lost+found
ডিরেক্টরি একটি EXT ফাইলসিস্টেম রুট এর পরিচায়ক। এবং আমি লেখার অনুমতি হারিয়েছি, সুতরাং এটি স্পষ্টতই মূল ডিরেক্টরি নয়।
প্রথম me
সেশনে ফিরে আসুন , আসুন এটি কীভাবে বিশ্ব দেখায় তা দেখুন:
me@home $ echo something else > other_file
লেখার সমস্যা নেই।
me@home $ cat some_file other_file
hello
something else
মূল ফাইলটি এখনও আছে, ইস্যু ছাড়াই নতুন ফাইল তৈরি হয়েছে।
তাই না? কি হচ্ছে?
প্রথম অধিবেশনটি ডিরেক্টরিটিতে প্রবেশ করানোর আগে এটিতে অন্য একটি ফাইল সিস্টেম মাউন্ট করে ওভারলেলে যায়। এই মাউন্ট ক্রিয়াটি মোটেও মূল ফাইল সিস্টেমকে প্রভাবিত করে না। শেল প্রক্রিয়াটির মূল ফাইল সিস্টেমে ডিরেক্টরিতে সঠিক বৈধ হ্যান্ডেল রয়েছে এবং এটির সাথে ইন্টারঅ্যাক্ট করা চালিয়ে যেতে পারে। এটা ধরণের প্রায় চালাচ্ছে তলদেশে গালিচা মাউন্ট পয়েন্ট।
দ্বিতীয় অধিবেশনটি ডিরেক্টরিতে প্রবেশ করল মাউন্টটি শুয়ে থাকার পরে। সুতরাং এটি নতুন, খালি ফাইল সিস্টেম দেখে। এবং সিসাদমিন অনুমতিগুলি বিরক্ত করেছিল, সুতরাং এটি অনুরোধ করা স্থানটি ব্যবহার করতে পারে না ... এটি ঠিক করতে দিন।
root@home # chown me:users /home/me/tmp
me@home #2 $ echo bye bye > some_file
me@home #2 $ ls
lost+found some_file
me@home #2 $ cat some_file
bye bye
গালিচা নীচে থেকে সেশন 1 পালাতে পারে? (এটা মরিয়া হয়ে উঠছে।)
নিশ্চিত! সেশন 1 যদি ফাইল সিস্টেমের গাছটিকে মাউন্ট থেকে সরিয়ে নিয়ে যায় তবে এটি হ্যান্ডেলটি ভিতর থেকে হারিয়ে ফেলবে এবং অন্য সবার মতো মাউন্টটিকে অনুসরণ করবে।
me@home $ cd
me@home $ pwd
/home/me
me@home $ cd tmp
me@home $ cat some_file other_file
bye bye
cat: other_file: No such file or directory
# 2 সেশনের মত একই দৃষ্টিভঙ্গি, আমরা স্বাভাবিক অবস্থায় ফিরে আসছি।
কিন্তু আপনি কীভাবে জানবেন যে ফাইলগুলি অদৃশ্য হয়নি? আর কারও খোঁজ নেই!
এটি সেই মুহুর্তগুলির একটি যেখানে বাঁধাইয়ের মাউন্টগুলি কার্যকর হয়ে যায়। তারা আপনাকে ইতিমধ্যে মাউন্ট করা ফাইল সিস্টেমটি অন্য কোথাও মাউন্ট করতে দেয়।
me@home $ mkdir ~/bind
root@home # mount -o bind /home/me /home/me/bind
(হ্যাঁ, আপনি একটি ফাইল সিস্টেম "নিজের ভিতরে" বাঁধতে পারেন C দুর্দান্ত কৌশল, তাই?)
me@home $ ls bind/tmp
other_file some_file
me@home $ cat bind/tmp/*
something else
hello
সুতরাং তারা অবশ্যই আছে, কর্মের জন্য প্রস্তুত। এটি কেবল সহজ যে তারা তাদের আসল অবস্থানে দৃশ্যমান / পৌঁছনীয় নয়, মাউন্টটি তাদেরকে সাধারণ ডিরেক্টরি ট্র্যাভারসাল থেকে আড়াল করে।
আমি আপনাকে এটির সাথে চারপাশে খেলতে উত্সাহিত করি, একবার আপনি "কৌশল" বাজানো হচ্ছে তা বুঝতে পেরে সত্যিই জটিল নয়। এবং একবার আপনি এটি পেয়ে গেছেন ™, আরও বেশি কার্পেট টানার জন্য ইউনিয়ন ফাইল সিস্টেমগুলি দেখুন :-)
তবে একটি নোট: বুট প্রক্রিয়াটি শেষ হয়ে গেলে মাউন্ট /tmp
বা /var
(বা কোনও মূল ওএস ডিরেক্টরিগুলির কোনও) সত্যই ভাল ধারণা নয়। এই ডিরেক্টরিগুলিতে প্রচুর অ্যাপ্লিকেশন স্থিতি ছেড়ে দেয় এবং আপনি যদি তাদের চারপাশে মাউন্ট গেম খেলেন তবে গুরুতরভাবে বিভ্রান্ত হতে পারেন।