কিছু লিনাক্স সিস্টেমে কেন মূল ফাইল সিস্টেমটি mtab এ / dev / <রিয়েল ডিভাইস নোডের পরিবর্তে / dev / root হিসাবে উপস্থিত হয়?


11

আমি বিভিন্ন লিনাক্স সিস্টেমে দেখেছি যেখানে আসল ডিভাইস নোডের পরিবর্তে (উদাহরণস্বরূপ /dev/sda1:), মূল ডিভাইসটি /dev/rootআসল ফাইল সিস্টেমের পরিবর্তে প্রদর্শিত হয় বা mtabবলে যে এটি একটি ফাইল সিস্টেম হিসাবে পরিচিত rootfs(যা প্রকৃত ফাইল সিস্টেম হিসাবে প্রদর্শিত হয় /proc/filesystems, তবে কোড নেই <linux-kernel-source-tree>/fs)। আসল রুট ডিভাইস নোড (যেমন rdev, এবং ক্রোমিয়াম ওএস রুটদেব) নির্ধারণ করতে নির্দিষ্ট বৈশিষ্ট্যগুলি ব্যবহার করার জন্য বিভিন্ন ইউটিলিটি তৈরি করা হয়েছে। খুব কোথাও এম্বেড থাকা ডিভাইসগুলির সর্বদা /devতাদের মূল ডিভাইসের জন্য কোনও ডিভাইস নোড থাকতে হয় না এমনটি পড়ার চেয়ে আমি এর সাথে অন্য কোনও যৌক্তিক ব্যাখ্যা পাই না । (এটি কি সত্য, এবং যদি তা হয় তবে তা কি আমার প্রশ্নের উত্তর?) এমতাব মাঝে মাঝে কেন বলেন /dev/root(এবং আমি মনে করি এটি সম্ভবত বলতে দেখেছি)rootdevএকবার) আসল ডিভাইস নোডের পরিবর্তে, এবং আমি কীভাবে এটি সর্বদা আসল ডিভাইস নোড বলতে পারি? কার্নেল প্রথমে সেমিডলাইনে rootপ্যারামিটারটি অনুসরণ করে রুট ডিভাইসটি মাউন্ট করে , তারপরে init/systemdএটি fstabসঠিক অনুসারে পুনরায় মাউন্ট করে ? যদি তা হয়, তবে আমি ধরে রাখি initরক্ষণাবেক্ষণ করি mtab। যদি আমার তত্ত্বটি সঠিক হয় তবে আমি কীভাবে initআসল রুট ডিভাইস নোডকে লিখতে পারি mtab? আমি লক্ষ্য করেছি যে /etc/mtabএটি আসলে একটি প্রতীকী লিঙ্ক /proc/mounts, যার অর্থ mtabকার্নেল দ্বারা রক্ষণাবেক্ষণ করা হবে। সুতরাং আমি কীভাবে কোনও কার্নেলটি কনফিগার করব / রুট ডিভাইস নোড পাথের পরিবর্তে কার্নেলটি প্যাচ করব /dev/root, mtabআসল ডিভাইস নোড রয়েছে?

উত্তর:


4

এটি সাধারণত একটি initramfs ব্যবহার করার একটি নিদর্শন।

কার্নেল ডকুমেন্টেশন থেকে ( https://www.kernel.org/doc/Docamentation/files systemms/ramfs-rootfs- initramfs.txt )

রুটফস কী?

রুটফগুলি র‌্যামফসের একটি বিশেষ উদাহরণ (বা tmpfs, যদি এটি সক্ষম থাকে), যা সর্বদা 2.6 সিস্টেমে উপস্থিত থাকে। আপনি আর ডি প্রক্রিয়াটি মারতে না পারার কারণ প্রায় একই কারণে আপনি রুটফগুলি আনমাউন্ট করতে পারবেন না; খালি তালিকার জন্য পরীক্ষা করতে ও পরিচালনা করার জন্য বিশেষ কোড না রাখার চেয়ে কার্নেলের পক্ষে নির্দিষ্ট তালিকা খালি না হয়ে যেতে পারে তা নিশ্চিত করা এটি আরও সহজ এবং সহজ।

বেশিরভাগ সিস্টেমগুলি রুটফের উপরে অন্য একটি ফাইল সিস্টেম মাউন্ট করে এবং এটিকে এড়িয়ে চলে। র‌্যামফের খালি দৃষ্টান্তটি যে স্থান গ্রহণ করে তা খুব সামান্য।

এইভাবে rootfsমূল ফাইল সিস্টেমটি যা ইনি্রামফের জন্য তৈরি করা হয়েছিল এবং এটি আনমাউন্ট করা যায় না।

সম্মানের ক্ষেত্রে /dev/root, আমি এ সম্পর্কে কম নিশ্চিত, তবে আমি যদি সঠিকভাবে স্মরণ করি তবে /dev/rootএকটি আরআরআরডিডি ব্যবহার করার সময় তৈরি করা হয় (কোনও ইনিমরাফের মতো নয়)।


mountএই সেটআপটি দিয়েrootfs on / type rootfs (rw) আরআরআরডি এবং /dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)এক্সট 2 হার্ড ডিস্কের জন্য দেয় ।
সিরো সান্তিলি :4 病毒 审查 六四 事件

/dev/rootinitramfs এর কিছু বাস্তবায়ন দ্বারা ব্যবহৃত হয় তবে অন্যরা নয় - এই ক্ষেত্রে এটি কার্নেলের কারণে হয় না। কোনও initramfs ব্যবহার না করার সময় , এটি কার্নেলের দ্বারা ব্যবহৃত একটি স্থানধারক মান বলে মনে হয়। (যদিও এটি পরে কার্নেল সংস্করণে মুছে ফেলা হতে পারে)। stackoverflow.com/questions/37310046/...
sourcejedi


2

লিনাক্সে, /dev/rootযদি উপস্থিত থাকে তবে বুট সময়ে তৈরি প্রকৃত ডিভাইসের একটি সিমিলিংক।

আপনি বুট করা কার্নেলের প্যারামিটারটি ব্যবহার readlink /dev/rootবা ব্যবহার cat /proc/cmdlineকরতে পারেন rootএবং এর পিছনে আসল ডিভাইসটি সন্ধান করতে পারেন।

মানুষ থেকে dracut(8)

তবে, সফল বুটটি চালিয়ে যাওয়ার জন্য উদ্দেশ্যটি হল আপনার রুট ভলিউমটি সনাক্ত করা এবং ফাইল সিস্টেমে নির্দেশিত একটি সিমিলিংক / ডেভ / রুট তৈরি করা।


আমি পুরোপুরি নিশ্চিত নই যে /dev/rootরেডহ্যাট ভিত্তিক বিতরণের কোনও প্রত্নক্ষেত্র কিনা ।
রুই এফ রিবেইরো

ঠিক আছে, আমার ডেবিয়ান 8 নেই /dev/root/। পুরানো CentOS এ এটি একটি সিমিলিংকের পরিবর্তে একটি আসল ডিভাইস নোড বলে মনে হচ্ছে।
ইল্কাচ্চু

1
ঠিক আছে, ওপেন এম্বেডের base-filesরেসিপিটিরfstab উল্লেখ রয়েছে /dev/root, তাই এটি কেবল রেড হ্যাট থেকে উদ্ভূত ডিস্ট্রোস নয় যা এটি ব্যবহার করছে।
ack
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.