मेरे बाहरी हार्ड ड्राइव से ग्रब 2 बूटिंग उबंटू के साथ समस्या हो रही है


0

मैंने अपने बाहरी हार्ड ड्राइव पर उबंटू स्थापित किया लेकिन यह मेरे लैपटॉप पर बूट नहीं होगा। मैं क्या करूं?

मैंने कुछ रीडिंग की और समस्या के स्रोत को ग्रब 2 तक ट्रेस किया। जाहिरा तौर पर, Grub2 डिवाइस के UUID का उपयोग नहीं करता है, और इसके बजाय लिनक्स निर्देशिका (/ dev / sdf2) का उपयोग करता है। इसका मतलब यह है कि जब भी मैं अपने ई-एचडीडी को एक ऐसी प्रणाली में प्लग करता हूं जिसमें अलग-अलग संख्या में ड्राइव जुड़े होते हैं, तो मैं बूट कमांड को संपादित किए बिना बूट करने में सक्षम नहीं होगा। मैं इसे बहुत अच्छी तरह से नहीं समझता, लेकिन जो मैंने पढ़ा है उससे मुझे मिला है।

क्या इसको ठीक करने का कोई तरीका है?

यहाँ मेरा ग्रब कॉन्फ़िगरेशन (उदाहरण कर्नेल प्रविष्टि दिखाने के लिए ट्रिम किया गया) है। मुझे नहीं पता कि यह यूयूआईडी का उपयोग क्यों नहीं कर रहा है। मैंने इसे एक बार ट्विस्ट नहीं किया था ...

### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-20-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    linux   /boot/vmlinuz-2.6.31-20-generic root=/dev/sdc2 ro   quiet splash
    initrd  /boot/initrd.img-2.6.31-20-generic
}
menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    linux   /boot/vmlinuz-2.6.31-20-generic root=/dev/sdc2 ro single 
    initrd  /boot/initrd.img-2.6.31-20-generic
}

मैंने वैसा ही किया और यह काम करता है। क्या आपने बूट लोडर को बाहरी या आंतरिक हार्ड ड्राइव में स्थापित किया है?
पीटरसन

बाहरी ... मुझे लगता है कि इसके साथ कुछ करना है ड्राइव को ठीक से पंजीकृत नहीं करना ... यह sdf पढ़ता रहता है जब केवल sda और sdc होता है ... मुझे लगता है कि मेरी हार्ड ड्राइव sdc है
सीजर

जब तक आपने कुछ ट्विक नहीं किया है, उबंटू का ग्रब 2 यूयूआईडी का उपयोग करता है। कृपया अपना ग्रब कॉन्फ़िगरेशन ( menu.lst या grub.cfg ) पोस्ट करें ।
क्वैक क्विक्सोट

मैं कुछ भी tweaked नहीं है ... एक noob की तरह अगर आप ध्यान नहीं दिया है तो मैं अब तक सतर्क रहा हूँ और किसी भी विन्यास फाइल के साथ नहीं खेला है।
सीजर

ओह प्रिय गाउड, आप सही कह रहे हैं, यह यूयूआईडी का उपयोग नहीं कर रहा है। यह बहुत अजीब है। उबंटू का कौन सा संस्करण चल रहा है? मैं कर्नेल प्रविष्टियों के आधार पर उबंटू 9.10 (कार्मिक) को संभालने जा रहा हूं।
क्वैककोट

जवाबों:


1

समस्या यह थी कि मेरे डिवाइस.मैप को ठीक से कॉन्फ़िगर नहीं किया गया था, जिसके कारण हार्ड ड्राइव के UUIDs के बजाय ubuntu नाम, जैसे sdf2 का उपयोग करके ग्रब किया गया था। डिवाइस device.map को अपडेट करना था और फिर grub2 को अपडेट करना था। यह 'ड्राइवमैप' चलाकर किया जाता है, मुझे लगता है, फिर अपडेट-ग्रब। मैं device.map को अपडेट करने के लिए कमांड पर निश्चित नहीं हूं क्योंकि मैंने लगभग एक सप्ताह पहले ऐसा किया था, लेकिन हाँ। यह सिर्फ मामले में किसी को भी मेरी समस्या में चलाता है।


0

ठीक है, आप सही कह रहे हैं कि यह यूयूआईडी को नहीं पकड़ रहा है, जो मुझे अजीब लगता है।

यहां बताया गया है कि कर्नेल प्रविष्टि कैसे दिखनी चाहिए (यह मेरे Ubuntu 9.10 वीएम से है, थोड़ा ट्वीक किया गया है लेकिन यह काफी स्टॉक होना चाहिए):

menuentry "Ubuntu, Linux 2.6.31-20-generic" {
    recordfail=1
    if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set b22c7fe9-4354-40bf-b9bf-87a469289f6e
    linux /boot/vmlinuz-2.6.31-20-generic root=UUID=b22c7fe9-4354-40bf-b9bf-87a469289f6e ro
    initrd        /boot/initrd.img-2.6.31-20-generic
}

/Boot/grub/grub.cfg जब कुछ चलाता फ़ाइल उत्पन्न होता है अद्यतन-ग्रब में स्क्रिप्ट से /etc/grub.d और फ़ाइल में चर / etc / default / grub


  • अब, वहाँ डिफ़ॉल्ट फ़ाइल में एक चर रहा है, GRUB_DISABLE_LINUX_UUID , कि करने के लिए सेट करता है, तो सच एक दे देंगे जड़ = / dev / sdXY के लिए मूल्य linux कर्नेल लाइन (के बजाय एक जड़ = UUID = ... मूल्य)। मुझे नहीं लगता कि यह आपकी समस्या है, लेकिन यह सुनिश्चित करने के लिए अपने / etc / default / grub फ़ाइल की जाँच करें। आपको ये लाइनें देखनी चाहिए ( #लाइन की शुरुआत में इसका मतलब है कि यह टिप्पणी की गई है):

    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true
    

    यदि आप शुरुआत में बिना GRUB_DISABLE_LINUX_UUID देखते हैं #, तो इसे डालें, फ़ाइल को सहेजें, और grub.cfgsudo update-grub को पुन: उत्पन्न करने के लिए चलाएँ । फिर grub.cfg को फिर से देखें कि क्या वह सही दिखता है।


  • यदि डिफ़ॉल्ट फ़ाइल ठीक लगती है, तो अगली बार अपने ड्राइव के UUID को स्वयं देखें। यह संभव है कि ड्राइव UUIDs सही ढंग से सेट नहीं हैं, या सही तरीके से पता नहीं चल रहा है। uDev के पास डिस्क UUIDs के लिए डिवाइस ट्री में सिमलिंक बनाने का काम है; उन्हें जांचो:

    $ ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx 1 root root 10 2010-04-18 04:15 b22c7fe9-4354-40bf-b9bf-87a469289f6e -> ../../sda1
    lrwxrwxrwx 1 root root 10 2010-04-18 04:15 e1c64ac1-186d-4c15-8833-6072ac6421df -> ../../sda5
    

    यदि यह आपको वह विभाजन नहीं दिखाता है जिसे आप देखने की अपेक्षा कर रहे हैं, तो आपको सीधे फाइल सिस्टम को ट्यून 2 एफएएस ( मैनपेज ) ( सही डिवाइस के नाम के साथ / dev / sda1 की जगह) की जाँच करने की आवश्यकता हो सकती है :

    $ sudo tune2fs -l /dev/sda1 | grep UUID
    Filesystem UUID:          b22c7fe9-4354-40bf-b9bf-87a469289f6e
    

    यदि यह गायब है, तो आप इसे फिर से बना सकते हैं:

    $ sudo tune2fs -U random /dev/sda1
    

    अब फिर से ट्यून 2 एफएल- आउटपुट की जांच करें, और फिर / देव / डिस्क / बाय- यूआईडी दोबारा चेक करें। परिवर्तनों को चुनने से पहले आपको रिबूट करने की आवश्यकता हो सकती है। अद्यतन-भोजन की स्क्रिप्ट अब UUID उठाना चाहिए, तो यह फिर से चलाने के लिए और नए जाँच grub.cfg अगर यह सही लग रहा है देखने के लिए।


  • यदि इनमें से कोई भी पैन नहीं कर रहा है, तो आपको थोड़ा गहरा खुदाई करने की आवश्यकता हो सकती है। आइए हमारी मान्यताओं की जाँच करें:
    • आपकी बूट ड्राइव का विभाजन कैसे किया जाता है? ( fdisk -l )
    • आपका बूट ड्राइव कैसे स्वरूपित है? (ext2 / 3/4? FAT32? NTFS?)
    • क्या आपने वुबी के माध्यम से स्थापित किया?

device.map सही तरीके से कॉन्फ़िगर नहीं किया गया है। मुझे अपने लैपटॉप पर काम करने के लिए ubuntu मिली लेकिन परीक्षण-और-त्रुटि ('ई' का उपयोग करके मापदंडों को संपादित करना था)। मुझे पता है कि यह बेवकूफी है, लेकिन क्या डिवाइस को सेट करने का एक तरीका है। स्वचालित रूप से या क्या मुझे इसे मैन्युअल रूप से सेट करना है?
सीजर

@ नाम: हाँ, मुझे भी ऐसा करना पड़ा है। मैं डिवाइस redetecting के बारे में निश्चित नहीं हूँ। मुझे पहले ही मैन्युअल रूप से device.map सेट करना पड़ा है; यह मुख्य रूप से / dev / sdX और (hdX) के बीच के रिश्ते को निर्धारित करने के लिए उपयोग किया जाता है; यदि डिवाइस इसमें सूचीबद्ध नहीं हैं, तो ग्रब बूट समय पर (HDX) गतिशील रूप से असाइन करेगा।
क्वैक क्विकोट

यह स्वचालित रूप से स्थापित नहीं कर रहा है ... तो क्या मैं सिर्फ उन चीजों को सेट करता हूं जिनकी मुझे आवश्यकता है? अभी, मेरा बाहरी sdc2 पर सेट है ... क्या मुझे इसे मैन्युअल रूप से "hdd" में सेट करना चाहिए "
सीजर

@anon: ईमानदारी से मुझे यकीन नहीं है। आप एक खाली डिवाइस के साथ प्रयास कर सकते हैं। और देखें ... लेकिन मुझे लगता है कि काम करने की प्रार्थना करने के लिए आपको यूएवी समस्या को ठीक करने की आवश्यकता होगी। सदस्यों में एक अच्छा Grub2 संसाधन है ।inet.net/~herman546/ p20.html ... आप इसे कुछ विचारों के माध्यम से देख सकते हैं।
क्वैक क्विटोटे

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