इसे शायद अपडेट किया जाना चाहिए, क्योंकि यहां दी गई बहुत सी जानकारी भ्रामक है, और वास्तव में कभी भी व्यापक रूप से सही नहीं हो सकती है।
https://bootlin.com/blog/find-root-device/
/ आरोह बिंदु के लिए, आपको बस यह बताया जाता है कि यह / dev / रूट से मेल खाती है, जो कि आपके द्वारा खोजा जाने वाला वास्तविक उपकरण नहीं है।
बेशक, आप कर्नेल कमांड लाइन को देख सकते हैं और देख सकते हैं कि किस रूट रूट फाइल सिस्टम लिनक्स को बूट करने के लिए निर्देश दिया गया था (रूट पैरामीटर):
$ बिल्ली / proc / cmdline मेम = 512M कंसोल = ttyS2,115200n8 रूट = / dev / mmcblk0p2 rw rootwait
हालांकि, इसका मतलब यह नहीं है कि आप जो देखते हैं वह वर्तमान रूट डिवाइस है। कई लिनक्स सिस्टम मध्यवर्ती रूट फाइल सिस्टम (initramdisks और initramfs की तरह) पर बूट होते हैं, जिनका उपयोग केवल अंतिम एक तक पहुंचने के लिए किया जाता है।
एक बात जो यह बताती है कि जरूरी नहीं है कि वास्तविक रूप से वास्तविक डिवाइस रूट / cmdline वास्तविक रूप से चालू हो।
यह व्यस्त लोगों में से है, जो मुझे लगता है कि वे जानते हैं कि वे बूट स्थितियों के बारे में क्या बात कर रहे हैं।
https://www.linuxquestions.org/questions/slackware-14/slackware-current-dev-root-688189/page2.html
दूसरा उपयोगी संसाधन जो मुझे मिला, वह पुराने थ्रेडवेयर थ्रेड के प्रश्न के बारे में है / dev / root, इस थ्रेड की आयु से, हम देख सकते हैं कि सभी वेरिएंट हमेशा मौजूद थे, लेकिन मेरा मानना है कि 'सबसे' डिस्ट्रोस प्रतीकात्मक का उपयोग कर रहे थे लिंक विधि, लेकिन यह एक सरल कर्नेल संकलित स्विच था, यह एक बना सकता है, या एक नहीं बना सकता है अगर मैं पोस्टरों को सही ढंग से समझ गया, अर्थात, इसे एक तरह से स्विच करें, और रीडलिंक / देव / रूट वास्तविक डिवाइस नाम की रिपोर्ट करता है, इसे स्विच करें। अन्य, और यह नहीं है।
चूँकि उस धागे का मुख्य विषय यह था कि कैसे / देव / जड़ से छुटकारा पाना है, उन्हें वास्तव में क्या है, इसे क्या बनाना है, आदि, जिसका अर्थ है, उन्हें इससे छुटकारा पाने के लिए इसे समझना था।
gnashly इसे अच्छी तरह से समझाया:
/ dev / root एक जेनेरिक उपकरण है जिसका उपयोग fstab में किया जा सकता है। एक 'रूटफ़्स' का भी उपयोग कर सकते हैं। ऐसा करने से कुछ लाभ मिलता है कि यह आपको कम विशिष्ट होने की अनुमति देता है। मेरा क्या मतलब है, अगर रूट विभाजन एक बाहरी ड्राइव पर है, तो यह हमेशा एक ही डिवाइस के रूप में नहीं दिखा सकता है और इसे सफलतापूर्वक बढ़ते हुए / सही डिवाइस से मिलान करने के लिए fstab को बदलने की आवश्यकता होगी। / Dev / root का उपयोग करके यह हमेशा मेल खाता होगा कि लिलो या ग्रब से कर्नेल बूट पैरामीटर्स में जो भी डिवाइस निर्दिष्ट किया गया है।
/ dev / root हमेशा वर्चुअल माउंट पॉइंट के रूप में मौजूद रहा है, भले ही आपने इसे कभी नहीं देखा हो। तो रूटफुट है (इसकी तुलना विशेष वर्चुअल डिवाइस जैसे कि proc और tmpfs से करें जिनकी कोई पूर्ववर्ती / देव नहीं है)
/ dev / root एक वर्चुअल डिवाइस है जैसे 'proc' या / dev / tcp '। इन उपकरणों के लिए / dev में कोई डिवाइस नोड नहीं है-यह पहले से ही वर्चुअल डिवाइस के रूप में कर्नेल में है।
यह बताता है कि क्यों एक प्रतीकात्मक लिंक जरूरी नहीं है। मुझे आश्चर्य है कि मैंने अब से पहले इस मुद्दे को कभी नहीं मारा, यह देखते हुए कि मैं कुछ कार्यक्रमों को बनाए रखता हूं जिन्हें इस जानकारी को जानने की आवश्यकता है, लेकिन पहले से कहीं अधिक देर से बेहतर।
मेरा मानना है कि यहां दिए गए कुछ समाधान solutions अक्सर ’काम करेंगे, और शायद मैं क्या करूंगा, लेकिन वे समस्या का वास्तविक वास्तविक समाधान नहीं हैं, जो कि व्यस्त लेखक के रूप में नोट किया गया है, एक बहुत ही कार्यान्वयन में काफी जटिल है मजबूत तरीके से।
[अद्यतन:} कुछ उपयोगकर्ता परीक्षण डेटा प्राप्त करने के बाद, मैं माउंट विधि के साथ जा रहा हूं, जो कम से कम कुछ मामलों के लिए ठीक लग रहा था। / Proc / cmdline उपयोगी नहीं था क्योंकि बहुत सारे संस्करण हैं। पहले उदाहरण में, आप पुरानी विधि देखते हैं। यह कम और कम सामान्य है क्योंकि इसका उपयोग करने के लिए इसे दृढ़ता से हतोत्साहित किया जाता है (मूल / देव / sdx [0-9] प्रकार वाक्यविन्यास) क्योंकि वे पथ गतिशील रूप से बदल सकते हैं (स्वैप डिस्क आदेश, नई डिस्क डालें, आदि, और अचानक / देव / sda1 बन जाता है / dev / sdb1)।
root=/dev/sda1
root=UUID=5a25cf4a-9772-40cd-b527-62848d4bdfda
root=LABEL=random string
root=PARTUUID=a2079bfb-02
वी.एस. बहुत साफ और आसान पार्स करने के लिए:
mount
/dev/sda1 on / type ext4 (rw,noatime,data=ordered)
Cmdline के मामले में, आप देखेंगे, सिद्धांत में एकमात्र 'सही जवाब' है, पहला, पदावनत एक, क्योंकि आपको रूट लक्ष्य जैसे / dev / sdxy को रूट नहीं करना चाहिए
अगले दो को उस स्ट्रिंग से प्रतीकात्मक लिंक प्राप्त करने की आगे की क्रिया करने की आवश्यकता है / dev / disk / by-uuid या / dev / डिस्क / बाय-लेबल
अंतिम की आवश्यकता है कि मुझे विश्वास है कि parted -l का उपयोग करके यह पता लगाने के लिए कि parted id क्या इंगित कर रही है।
उदाहरण के लिए केवल वही वेरिएंट हैं जिन्हें मैंने जाना है और देखा है, उदाहरण के लिए जीपीटीआईडी जैसे अन्य भी हो सकते हैं।
तो मैं इसका उपयोग कर रहा समाधान है:
पहले, देखें कि क्या / dev / root एक प्रतीकात्मक लिंक है। यदि यह है, तो सत्यापित करें कि यह / देव / डिस्क / बाय-यूआईडी या बाय-लेबल नहीं है, यदि यह है, तो आपको अंतिम वास्तविक पथ प्राप्त करने के लिए प्रसंस्करण का दूसरा चरण करना होगा। आपके द्वारा उपयोग किए जाने वाले टूल पर निर्भर करता है।
यदि आपको कुछ नहीं मिला, तो माउंट पर जाएं, और देखें कि यह कैसा है। अंतिम गिरावट के मामले के रूप में, एक मैं उपयोग नहीं कर रहा हूं क्योंकि इसके खिलाफ दिए गए तर्क भी जरूरी नहीं कि वास्तविक विभाजन या प्रश्न में डिवाइस मेरे लिए पर्याप्त है कि मैं अपने कार्यक्रम के लिए उस समाधान को अस्वीकार कर दूं। माउंट पूरी तरह से मजबूत समाधान नहीं है, और मुझे यकीन है कि पर्याप्त नमूने दिए गए हैं, ऐसे मामलों को ढूंढना आसान होगा जहां यह बिल्कुल भी सही नहीं है, लेकिन मेरा मानना है कि ये दो मामले 'सबसे' उपयोगकर्ताओं को कवर करते हैं, जो मुझे चाहिए।
सबसे अच्छा, सबसे साफ और सबसे विश्वसनीय समाधान कर्नेल के लिए होता है कि वह हमेशा प्रतीकात्मक कड़ी बनाए, जिससे किसी भी चीज या किसी को चोट न पहुंचे और इसे अच्छा कहें, लेकिन यह वास्तविक दुनिया में काम नहीं करता है। ।
मैं इनमें से किसी को भी 'अच्छे या मजबूत' समाधान के रूप में नहीं मानता, लेकिन माउंट विकल्प 'अच्छा पर्याप्त' को संतुष्ट करने के लिए प्रकट होता है, और यदि वास्तव में मजबूत समाधान की आवश्यकता होती है, तो उस सामान का उपयोग करें जो अनुशंसित बॉक्स में है।