"मूल डिवाइस को खोजने में असमर्थ" एक ताज़ा आर्कलिनक्स इंस्टॉल पर


36

मैंने मैकबुक प्रो 8,1 (15 "पर ArchLinux (2014.06.01) का नवीनतम संस्करण स्थापित किया है, अगर हार्डवेयर के बारे में यह बात है) आधिकारिक इंस्टॉल गाइड में निर्देशों का पालन करते हुए OSX के साथ दोहरे बूटिंग । हालांकि, जब कोशिश और रिबूट करें। नई स्थापित प्रणाली में, यह मुझे एक रिकवरी शेल में गिरा देता है:

ERROR: device 'UUID=<snip>' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=<snip>'.
You are being dropped to a recovery shell
    Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[rootfs /]# 

(मैंने UUID को हटा दिया क्योंकि मैं इसे टाइप नहीं करना चाहता था, लेकिन यह उसी तरह है जैसे blkidविभाजन के लिए मेरे द्वारा दी गई (इंस्टॉल डिस्क से) ArchLinux पर स्थापित है)

अन्य ऑनलाइन स्रोतों सुझाव है कि यह एक पुरानी की वजह से है pacman, udev, filesystemया linuxपैकेज। हालांकि, वे इस समस्या का वर्णन केवल एक कार्य प्रणाली से कर्नेल अपडेट के बाद करते हैं, न कि एक ताजा स्थापित करने से। मैंने arch-chrootइंस्टाल डिस्क पर बूट करने के दौरान पर्यावरण से इन पैकेजों को फिर से स्थापित किया, लेकिन इससे स्थिति नहीं बदली।

इसके बजाय, मेरे grub.cfgशो के साथ थोड़ा सा प्रयोग यह दर्शाता है कि जो कुछ भी शिकायत की गई है rootवह linuxकमांड का पैरामीटर है कि किस vmlinuzफाइल का उपयोग करना है। दरअसल, बदलते root=UUID=<snip>करने के लिए root=LABEL=ArchLinuxया root=/dev/sda8(दोनों का वर्णन जहां ArchLinux स्थापित किया गया है और मैं निश्चित रूप से एक और वितरण के साथ सफलतापूर्वक से पहले दूसरे संस्करण का इस्तेमाल किया है) देता है Unable to find root device 'LABEL=ArchLinux'और Unable to find root device '/dev/sda8'क्रमशः। इसके अलावा, GRUB UUID द्वारा विभाजन को खोजने में सक्षम प्रतीत होता है, केवल लिनक्स कर्नेल के बारे में शिकायत करता है कि यह नहीं मिल रहा है, क्योंकि प्रारंभिक रैमडिस्क ठीक से लोड किया गया है (यानी। यह GRUB त्रुटि नहीं है जैसा कि यहां वर्णित है , बल्कि एक लिनक्स त्रुटि है)। ।

एक साइड नोट के रूप में: रिकवरी शेल गंभीर रूप से सीमित है, और मानक आउटपुट ठीक से काम नहीं करता है। फिर भी, lsकाम करता है और फ़ाइलों को सूचीबद्ध करने के लिए एक बुनियादी (अस्थायी) फ़ाइल सिस्टम दिखाता है, लेकिन सभी डिस्क डिवाइस से गायब दिखाई देते हैं /dev। हालाँकि, मुझे नहीं पता कि यह त्रुटि का हिस्सा है या नहीं।

यह समान है, लेकिन बूट करते समय लिनक्स रूट फाइल सिस्टम के समान नहीं है , क्योंकि विभाजन शुरू से ही ext4 था । इसके अलावा बिल्कुल समान नहीं है, लेकिन शायद प्रासंगिक मैकबुक प्रो 7.1 पर ArchLinux को बूट करने में असमर्थ है - वसूली खोल के लिए चला जाता है , हालांकि, वहाँ, यह एक ramfsखोल के बजाय एक खोल में गिर जाता है rootfsऔर त्रुटि संदेश भिन्न होते हैं।

जवाबों:


34

सामान्य छवि के साथ बूट करने के बजाय, मैंने फॉलबैक संस्करण का उपयोग किया और सिस्टम में बूट करने में कामयाब रहा। जैसा कि यह पता चला है, block mkinitcpioडिफ़ॉल्ट छवि से हुक (ब्लॉक उपकरणों के लिए जिम्मेदार) के कारण लिनक्स किसी भी ड्राइव का पता नहीं लगा सका । इस वजह से इसे अंदर रखा गया autodetectथा /etc/mkinitcpio.conf। इसे ठीक करने के लिए, HOOKS=...उस फ़ाइल की लाइन को बदलना होगा ताकि वह blockपहले आएautodetect

तय होने से पहले:

HOOKS="base udev autodetect block modconf filesystems keyboard fsck"

तय होने के बाद:

HOOKS="base udev block autodetect modconf filesystems keyboard fsck"

समस्या को स्थायी रूप से ठीक mkinitcpio -p linuxकरने के लिए चल रहा है initramfs


यह बहुत उपयोगी था :)
ajukraine

यह पुन: पेश करने के लिए कठिन लगता है, मुझे भी यही समस्या थी और इसने इसे ठीक कर दिया लेकिन उसी ड्राइव ने दूसरे पीसी पर पूरी तरह से काम किया। पीसी जहां समस्या उत्पन्न हुई, वह एक पुराना LGA775 पीसी था और ऊपर का समाधान मलबे विभाजन तालिका का उपयोग करते समय आवश्यक नहीं था। तो समस्या केवल तब होती है जब UEFI के बिना एक पुराने सिस्टम पर gpt विभाजन तालिका का उपयोग किया जाता है। मुझे नहीं पता कि मैक हमेशा ईएफआई का उपयोग करते हैं लेकिन मुझे आश्चर्य है कि आपने किस विभाजन तालिका का उपयोग किया है?
MADforFUNandHappy

यह एक समय हो गया है, और मैकबुक कोई और नहीं है, लेकिन मुझे यकीन है कि यह GPT का उपयोग करता है।
hlt

हालाँकि, मुझे ओपी के रूप में वही मुद्दे मिल रहे हैं और आपका जवाब मुझ पर लागू होता है, इससे मेरा मुद्दा हल नहीं हुआ।
नाथन गोइंग

1

मैं एक समान मुद्दे में भाग गया लेकिन एक अलग सेटअप के साथ। मैं एक वर्चुअल मशीन में ArchLinux का उपयोग कर रहा हूं और मेरा बूटलोडर syslinux है। मैंने कर्नेल हुक ऑर्डर को स्विच करने पर आपकी चाल का उपयोग किया, लेकिन मैं अभी भी रूटफ़-शेल में समाप्त हुआ।

मेरे लिए जो मुद्दा तय किया गया था वह APPENDमेरे अंदर syslinux.cfgसे लाइन बदल रहा था

APPEND root=UUID=<snip>

सेवा मेरे

APPEND root=PARTUUID=<snip>

आप आसानी से जोड़ सकते हैं PARTUUIDकरने के लिए syslinux.cfgएक कमांड का उपयोग करके की तरह blkid | grep sda1 | awk '{ print $7 }' >> /boot/syslinux/syslinux.cfgमाना आपके जड़ विभाजन है/dev/sda1

बाद में आप अपने पसंदीदा टेक्स्ट-एडिटर का उपयोग करके लाइन को उपयुक्त स्थान पर ले जा सकते हैं।

संपादित करें: मैंने अभी पहचाना है कि छोटी awk स्क्रिप्ट में कॉलम संख्या भिन्न हो सकती है, इसलिए बेहतर है कि इसे देखने से पहले आउटपुट पर एक नज़र डालें syslinux.cfg

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.