मैंने विभिन्न लिनक्स सिस्टमों पर देखा है, जहां वास्तविक डिवाइस नोड (उदाहरण के लिए /dev/sda1
) के /dev/root
बजाय, रूट डिवाइस वास्तविक फाइल सिस्टम के रूप में या प्रकट होता है , mtab
कहते हैं कि यह एक फाइलसिस्टम कहलाता है rootfs
(जो वास्तविक फाइलसिस्टम के रूप में प्रकट होता है /proc/filesystems
, लेकिन में कोड नहीं है <linux-kernel-source-tree>/fs
)। वास्तविक रूट डिवाइस नोड (जैसे कि rdev, और क्रोमियम OS रूटदेव) को निर्धारित करने के लिए कुछ विशेषताओं का उपयोग करने के लिए विभिन्न उपयोगिताओं को बनाया गया है। मुझे यह पढ़ने के अलावा कहीं और कोई तार्किक स्पष्टीकरण नहीं मिल सकता है कि बहुत छोटे एम्बेडेड उपकरणों को हमेशा /dev
अपने रूट डिवाइस के लिए एक डिवाइस नोड नहीं होना चाहिए। (क्या यह सच है, और यदि ऐसा है, तो क्या यह मेरे सवाल का जवाब है?) Mtab कभी-कभी क्यों कहता है /dev/root
(और मुझे लगता है कि मैंने इसे देखा होगाrootdev
एक बार) असली डिवाइस नोड के बजाय, और मैं इसे हमेशा वास्तविक डिवाइस नोड कैसे कह सकता हूं? कर्नेल सबसे पहले root
cmdline में पैरामीटर का पालन करते हुए रूट डिवाइस को मापता है, फिर init/systemd
इसे fstab
सही के अनुसार मापता है ? यदि ऐसा है, तो मैं मैंने देखा कि init
बनाए रखता हूं mtab
। यदि मेरा सिद्धांत सही है, तो मैं init
वास्तविक रूट डिवाइस नोड को कैसे लिख सकता हूं mtab
? /etc/mtab
वास्तव में यह एक प्रतीकात्मक कड़ी है /proc/mounts
, जिसका अर्थ mtab
है कि कर्नेल द्वारा बनाए रखा जाएगा । तो मैं कैसे एक कर्नेल को कॉन्फ़िगर / पैच करता हूं, यह कहने के बजाय कि रूट डिवाइस नोड पथ है /dev/root
, mtab
में वास्तविक डिवाइस नोड है?
mount
इस सेटअप के साथrootfs on / type rootfs (rw)
initrd और/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
ext2 हार्ड डिस्क के लिए देता है ।