GRUB ने उबंटू और आर्क लिनक्स इंस्टॉलेशन के कर्नेल / इनट्रामेफ़्स को भ्रमित किया


9

मेरे पास एक मशीन है जो उबंटू के GRUB के साथ बूट लोडर के रूप में दोहरे बूट उबंटू (16.04 वर्तमान में) और विंडोज 7 के लिए उपयोग किया जाता है।

अब मैंने आधिकारिक इंस्टॉलेशन निर्देशों का पालन करते हुए आर्क ओएस को तीसरे ओएस के रूप में जोड़ा। मैंने आर्क से GRUB स्थापित नहीं किया क्योंकि मैं उबंटू द्वारा नियंत्रित एक का उपयोग करना चाहता था। निर्देशों में एक कमांड थी mkinitcpio -p linuxजिसमें संभवतः कुछ बूट फाइलें उत्पन्न हुई थीं, जिन्हें मैंने वर्णित किया था।

अब जब मैं Ubuntu को GRUB से इसकी डिफ़ॉल्ट प्रविष्टि के माध्यम से बूट करने की कोशिश करता हूं, तो मुझे यह अप्रिय त्रुटि मिलती है (स्क्रीन फोटो के लिए खेद है):

त्रुटि संदेश

uname -aशो के आउटपुट के रूप में , यह आर्क कर्नेल को बूट करने की कोशिश कर रहा है, लेकिन /dev/sda6उबंटू रूट विभाजन है।

मुझे उबंटू को लोड करने में सक्षम होने Advanced options for Ubuntuके लिए Ubuntu, with Linux 4.4.0-*प्रविष्टियों में से एक का चयन करना होगा, मुझे ऐसी प्रविष्टि नहीं मिल सकती है जो आर्क को सही ढंग से लोड करेगी।

उबुन्टुsudo update-grub से चल रहा है ( " एक ग्रब 2 कॉन्फिग फ़ाइल बनाने के update-grubलिए चलाने के grub-mkconfig -o /boot/grub/grub.cfgलिए एक स्टब है । )) कुछ भी नहीं बदलता है। grub-customizerउपकरण भी इस अब तक फिक्सिंग में बेकार था।

GRUB के इस भ्रम का कारण क्या है और मैं इसे कैसे ठीक करूं ताकि प्रत्येक लिनक्स संस्करण सही कर्नेल के साथ और सही विभाजन से बूट हो?

ऐसा लगता है कि मैंने Ubuntu की / बूट माउंट के साथ आर्क को बेवकूफ़ रूप से स्थापित किया है, इसलिए संभवत: उसने अपने बूट फ़ाइलों को वहां रखा है।

मैं उबंटू के बूट लोडर को फिर से सीधे प्राप्त करने के लिए आर्क के सभी संबंधित सामानों को मिटा देने के साथ ठीक हूं और बाद में आर्क की एक साफ स्थापना करता हूं।


अपडेट (उबंटू चैट में उनके समर्थन के लिए @terdon के लिए धन्यवाद):

यहाँ मेरी है /boot/grub/grub.cfg

सभी लिनक्स प्रविष्टियाँ मेरे / dev / sda6 विभाजन को इंगित करती हैं, जो उबंटू की जड़ है:

$ grep ' linux /' /boot/grub/grub.cfg
    linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
        linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
        linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
        linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro init=/sbin/upstart
        linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro recovery nomodeset
        linux /vmlinuz-4.4.0-21-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
        linux /vmlinuz-4.4.0-21-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro init=/sbin/upstart
        linux /vmlinuz-4.4.0-21-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro recovery nomodeset
        linux /vmlinuz-4.2.0-35-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
        linux /vmlinuz-4.2.0-35-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro init=/sbin/upstart
        linux /vmlinuz-4.2.0-35-generic root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro recovery nomodeset

मैंने Ubuntu से GRUB कॉन्फिगर को अपडेट करने की कोशिश की:

$ sudo grub-mkconfig -o /boot/grub/grub.cfg 
Generating grub configuration file ...
dpkg: warning: version 'linux' has bad syntax: version number does not start with a digit
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
Found linux image: /boot/vmlinuz-4.2.0-35-generic
Found initrd image: /boot/initrd.img-4.2.0-35-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
Found Arch on /dev/sda8
done

मैंने Ubuntu से MBUB को GRUB को पुनः स्थापित करने का प्रयास किया:

$ sudo grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

$ sudo grub-install --recheck /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

उन लोगों द्वारा स्थापित उबंटू कर्नेल पैकेज हैं, मैंने dpkg-reconfigureउन सभी को करने की कोशिश की, लेकिन इस मुद्दे पर कोई प्रभाव नहीं पड़ा:

$ dpkg -l linux-image* | grep ^ii
ii  linux-image-4.2.0-35-generic       4.2.0-35.40  amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-21-generic       4.4.0-21.37  amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-35-generic 4.2.0-35.40  amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-21-generic 4.4.0-21.37  amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

मैंने उबंटू इनट्राम्राम्स को फिर से बनाने की कोशिश की:

$ sudo update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-4.4.0-21-generic
update-initramfs: Generating /boot/initrd.img-4.2.0-35-generic

मेरा विभाजन लेआउट:

उबंटू प्रणाली से जाँच की गई। लेबल को खुद को समझाना चाहिए।

$ lsblk -f /dev/sda
NAME    FSTYPE LABEL       UUID                                 MOUNTPOINT
sda                                                             
├─sda1  ntfs   win7-boot   90DCF3A5DCF3842E                     /win/boot
├─sda2  ntfs   windows7    482C7A572C7A3FCC                     /win/c
├─sda3  ext4   grub-boot   6dbb8633-dadd-4b5e-8d85-b0895fde9dfb /boot
├─sda5  ext4   images      81dc42c4-a161-4ccd-b704-6e5c09298943 /images
├─sda6  ext4   ubuntu-1604 eee18451-b607-4875-8a88-c9cb6c6544c8 /
├─sda7  ext4   ubuntu-home 485b3ef1-7216-4053-b25c-f656d529e8e6 /home
├─sda8  ext4   arch-root   8d281a0c-969c-44cf-ba6a-1d3c7b4be7ec 
├─sda9  ext4   arch-home   32522902-a53d-44c8-90f2-6bbf14c40f1f 
└─sda10 swap   linux-swap  8b05bd9b-bc42-46f6-8c18-50711a3c48b9 [SWAP]

मेरा GRUB मेनू संरचना:

GRUB मुख्य पृष्ठ

उबंटू के लिए उन्नत विकल्प:
Ubuntu के लिए GRUB उन्नत विकल्प

आर्क के लिए उन्नत विकल्प:
आर्क के लिए ग्रब उन्नत विकल्प


मेरी /bootनिर्देशिका:

$ ls -la /boot
total 118480
drwxr-xr-x  4 root root     4096 Apr 24 20:50 .
drwxr-xr-x 28 root root     4096 Apr 24 19:44 ..
-rw-r--r--  1 root root  1313029 Mär 16 01:45 abi-4.2.0-35-generic
-rw-r--r--  1 root root  1239577 Apr 19 00:21 abi-4.4.0-21-generic
-rw-r--r--  1 root root   184888 Mär 16 01:45 config-4.2.0-35-generic
-rw-r--r--  1 root root   189412 Apr 19 00:21 config-4.4.0-21-generic
drwxr-xr-x  6 root root     4096 Apr 26 19:58 grub
-rw-r--r--  1 root root 18598360 Apr 24 20:59 initramfs-linux-fallback.img
-rw-r--r--  1 root root  3516429 Apr 24 20:59 initramfs-linux.img
-rw-r--r--  1 root root 33642388 Apr 24 18:31 initrd.img-4.2.0-35-generic
-rw-r--r--  1 root root 36143341 Apr 24 19:51 initrd.img-4.4.0-21-generic
drwx------  2 root root    16384 Okt 28 17:43 lost+found
-rw-r--r--  1 root root   182704 Jan 28 13:44 memtest86+.bin
-rw-r--r--  1 root root   184380 Jan 28 13:44 memtest86+.elf
-rw-r--r--  1 root root   184840 Jan 28 13:44 memtest86+_multiboot.bin
-rw-------  1 root root  3745312 Mär 16 01:45 System.map-4.2.0-35-generic
-rw-------  1 root root  3853719 Apr 19 00:21 System.map-4.4.0-21-generic
-rw-------  1 root root  6829104 Mär 16 01:45 vmlinuz-4.2.0-35-generic
-rw-------  1 root root  7013968 Apr 19 00:21 vmlinuz-4.4.0-21-generic
-rw-r--r--  1 root root  4435552 Apr 14 19:20 vmlinuz-linux

4.4.0 और 4.2.0 गुठली उबंटू होनी चाहिए, आर्क में 4.5.0 कर्नेल होना चाहिए। लेकिन मुझे कैसे पता चलेगा कि इसके नाम के कर्नेल संस्करण के बिना कौन सी फ़ाइल किससे संबंधित है?


मेरी उबंटू रूट निर्देशिका (निर्देशिका को बाहर रखा गया):

$ ls -la / | grep ^[^d]
total 124
lrwxrwxrwx   1 root      root         32 Apr 24 19:44 initrd.img -> boot/initrd.img-4.4.0-21-generic
lrwxrwxrwx   1 root      root         32 Apr  5 17:45 initrd.img.old -> boot/initrd.img-4.2.0-35-generic
lrwxrwxrwx   1 root      root         29 Apr 24 19:44 vmlinuz -> boot/vmlinuz-4.4.0-21-generic
lrwxrwxrwx   1 root      root         29 Apr  5 17:45 vmlinuz.old -> boot/vmlinuz-4.2.0-35-generic

मेरी आर्क रूट डायरेक्टरी में कोई फाइल या लिंक नहीं है।


मुझे ubuntu, windows और arch linux के ट्रिपल बूट के साथ भी यही समस्या थी। आपको ग्रब को मैन्युअल रूप से ठीक करने की आवश्यकता है यदि आवश्यक हो, तो आर्क लिनक्स में बूट करें फिर ग्रब को फिर से बनाएं, आपको स्थापित करने की आवश्यकता हो सकती है os-prober। तो इन चलाने sudo mkinitcpio -p linuxतो sudo grub-mkconfig -o /boot/grub/grub.cfgअंत मेंsudo grub-install /dev/sda
एडवर्ड टोर्वाल्ड

जब मैं अपने लैपटॉप पर विभिन्न लिनक्स डिस्ट्रोस स्थापित कर रहा था (जबकि पुराने को बदलकर, खिड़कियों को अछूता रखते हुए) मुझे भी ऐसी ही समस्या थी। मैंने बस ओफी से पुराने ओएस के संबंधित फ़ोल्डर को हटा दिया और एक ग्रब-अपडेट किया। लेकिन मेरे मामले में, 1. यह यूईएफआई प्रणाली थी 2. मैंने कई लिनक्स ओएस नहीं रखे।
पंजीकृत उपयोगकर्ता

बूट करते समय, क्या आप गतिशील रूप से उबंटू में बूट करने के लिए कर्नेल और initrd को संशोधित कर सकते हैं? यदि आपने ऐसा किया है, तो क्या त्रुटि आई है?
SHW

आपके द्वारा पोस्ट की गई स्क्रीन में त्रुटि संदेश है Root device mounted successfully, but /sbin/init does not exists:। क्या आपने इसकी जांच की? क्या initवाकई गायब है? यदि हां, तो आपको निश्चित रूप से इसे स्थापित करना चाहिए, यदि इसके बजाय यह मौजूद है, तो किसी भी विचार को क्यों नहीं पाया जा सकता है?
मारियसमैटुटिया

जवाबों:


5

मैंने आखिरकार अपने Ubuntu की /bootडायरेक्टरी में ऑर्बिट से आर्क विभाजन और उसके बूट फाइलों को nuking करके इसे हल किया । Ubuntu अब फिर से ठीक है, शेष सभी GRUB प्रविष्टियाँ फिर से काम कर रही हैं।

यहाँ मैंने क्या किया की एक सूची है:

  • आर्क की initramfsफाइलें हटाएं :

    sudo rm /boot/initramfs-linux*
    
  • आर्क की vmlinuzफ़ाइल हटाएँ :

    sudo rm vmlinuz-linux
    
  • /dev/sda8GParted का उपयोग करके आर्क विभाजन ( ) को प्रारूपित करें

  • अद्यतन GRUB के विन्यास:

    sudo update-grub
    
  • रिबूट और आनंद लें!


मुझे लगता है कि पहली कोडेड लाइन में initramfs-linuxनहीं होना चाहिए...ranfs...
अनवर

1
@ बेशक, ध्यान देने के लिए धन्यवाद। मैंने टाइपो तय किया।
बाइट कमांडर

1

फिक्सिंग grub.cfg हाथ से (अनुशंसित नहीं)

अपने को देख रहा है grub.cfg

उबंटू प्रविष्टि टूटी हुई है (और निम्नलिखित में से कुछ भी)

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-eee18451-b607-4875-8a88-c9cb6c6544c8' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos3'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3  6dbb8633-dadd-4b5e-8d85-b0895fde9dfb
    else
      search --no-floppy --fs-uuid --set=root 6dbb8633-dadd-4b5e-8d85-b0895fde9dfb
    fi
    linux   /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro  
    initrd  /initramfs-linux.img
}

अंतिम दो पंक्तियाँ कर्नेल और initrd को लोड करने के लिए आपकी ग्रब-जारी की गई कमांड हैं, और वर्तमान में ARCH कर्नेल और initiramfs की तलाश कर रही हैं। इसके अलावा, यह उनके लिए /पहचाने गए विभाजन के तहत दिखता है uuid=eee18451-b607-4875-8a88-c9cb6c6544c8जिसके द्वारा अपेक्षित उबंटू फ़ाइलों की मेजबानी नहीं हो सकती है या नहीं।

आप इसे ठीक कर सकते हैं:

sudo blkid

अपने ubuntu रूट विभाजन के uuid पाने के लिए।

फिर अंतिम दो पंक्तियों को अपने नवीनतम कर्नेल और initrd छवियों के साथ simlink से बदलें (चूंकि यह उबंटू इसे होने की उम्मीद करता है)

linux   /vmlinuz root=UUID=<correct-uuid-ubuntu-partition> ro  
initrd  /initrd.img

यदि यह इसे तुरंत ठीक नहीं करता है, तो कुछ अन्य सुधार की आवश्यकता हो सकती है। आप उन्हें परीक्षण की गई और काम करने वाली प्रविष्टि में से एक की "नकल" करके पता लगा सकते हैं, और मुझे लगता है कि आप सबसे अधिक वैनिला वन (जैसे कोई अपस्टार्ट या अन्य कर्नेल पैरामीटर जैसे कि नामांकित नहीं किया जा रहा है) का उपयोग करेंगे।

यह एक अच्छा उम्मीदवार होना चाहिए:

menuentry 'Ubuntu, with Linux 4.4.0-21-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-21-generic-advanced-eee18451-b607-4875-8a88-c9cb6c6544c8'

आर्क प्रविष्टि समान रूप से टूटी हुई है, जिसमें यह संभवतः Ubuntu रूट विभाजन के तहत आर्क इनट्राम्राम्स और कर्नेल के लिए दिखता है। उन का डिफ़ॉल्ट स्थान अंडर / बूट है। स्थान को सही करके और यह जाँच कर कि आर्क विभाजन युक्त आर्क रूट है, आर्क प्रविष्टि की अंतिम दो पंक्तियों को समायोजित करें।

चेतावनी के ए (कई) शब्द:

यह उबंटू उपयोगकर्ताओं को grub.cfgहाथ से गड़बड़ करने के लिए सामान्य रूप से अनुशंसित नहीं है । निश्चित रूप से इसकी एक प्रति बनाएं और इसके संपादन में सावधानी बरतें। इस संभावना के लिए तैयार रहें कि आपका सिस्टम अनबूटेबल हो जाए (लेकिन आप मेरे पुराने उत्तर में उल्लिखित बूट प्रक्रिया का उपयोग करके इसे फिर से जीवित कर पाएंगे)।

इसके अलावा, जबकि यह आपकी समस्या को इस समय के आसपास ठीक कर सकता है, यह अगली बार आपको अपने खराब मेनू को फिर से भरने के लिए आपको काटने के लिए वापस आ सकता है। किसी कारण से, ubuntu के तहत ग्रब की ओएस जांच / बूट के तहत आर्क कर्नेल की उपस्थिति से भ्रमित हो जाती है। मुझे लगता है कि बूट-रिपेयर जैसी एक उपयोगिता आपके सभी डिस्ट्रो को बूट करने योग्य बनाने में सक्षम होनी चाहिए, लेकिन अगर मुझे सही ढंग से याद है कि यह आपके लिए काम नहीं करता है।

एक स्थाई फिक्स में डिफ़ॉल्ट / बूट की तुलना में एक अलग निर्देशिका में आर्क कर्नेल और चित्रों को स्थापित करने में शामिल हो सकता है। यह पूरी तरह से है और आपको आर्क विकी की ग्रब एंट्री के बारे में सलाह लेनी चाहिए कि इसे कैसे ठीक से करना है।

OLD ANSWER (अनुशंसित यदि आप आर्क लॉन्ग टर्म पर स्विच करने की योजना बना रहे हैं) तो यहां वही होगा जो मैं करूंगा, और किसी तरह कुछ महीने पहले किया है।

पर जाएं मेहराब विकी कोड़ना पेज और अपने विभाजन तालिका के लिए प्रासंगिक अनुभाग पढ़ा (आप की संभावना UEFI, तो और इतने पर ईएसपी के बारे में पढ़ा रहे हैं)।

मैन्युअल रूप से आर्क में बूटिंग

यह एक अत्यधिक औपचारिक अनुभव है जो मैं कोशिश करने की सलाह देता हूं। मान लें कि आपका आर्क लिनक्स कर्नेल आपकी डिस्क पर कहीं स्थित है, cग्रब प्रॉम्प्ट पर दबाएं और डिवाइस की सूची और जैसे दिखने वाले विभाजन देखने के लिए ls टाइप करें (hd0,msdos1),(hd1,gpt1),...। आप सामग्री को देखने के लिए उनमें से प्रत्येक को ls कर सकते हैं।

आपको तीन चीजों का पता लगाना होगा:

  • आपका आर्क /रूट विभाजन कहां है
  • आपका आर्क कर्नेल कहाँ है vmlinuz
  • आपका आर्क कहाँ है intiramfs-linux.img

एक बार इन तीनों को रखने के बाद, आप ग्रब में तीन कमांड चलाएंगे> कुछ इसी तरह से।

grub> set root=(hd0,1)
grub> linux /vmlinuz root=/dev/sda1
grub> initrd /intiramfs-linux.img
grub> boot

ध्यान दें कि ग्रब खोज कर सकते हैं, उदा

grub> find /sbin/init

(एक ग्रब स्वचालित रूप से नहीं मिल सकता है और आपको एक कर्नेल आतंक दे सकता है;))

यह सब मैंने यहां सीखा है , एक ऐसा स्रोत जिसकी मैं अत्यधिक अनुशंसा करता हूं। यदि आप प्रबंधित कर सकते हैं, तो ग्रब को ठीक करना छोड़ दें! अन्यथा...

एक लाइव कुंजी से बूट आर्क! लाइव आर्क वातावरण प्राप्त करें और chrootआर्क पर इंस्टॉलेशन विकी का अनुसरण उसी तरह से करें जैसे आपने पहली बार किया था।

ग्रब को ठीक करना

आर्क के अंदर से, प्रासंगिक ग्रब पैकेज स्थापित करें, और विशेष रूप os-proberसे grub-installआपके अन्य सिस्टम का पता लगाने के लिए। वहां स्थापित गाइड का ध्यानपूर्वक पालन करें और आप (कम से कम) बूट मेनू से दोनों और ubuntu को बूट करने में सक्षम होना चाहिए। आदेशों को स्थापित करना इस तरह देखना समाप्त कर देगा।

** चेतावनी ** इन आदेशों को न चलाएं, वे अनुकरणीय हैं, आपको अपने सिस्टम के लिए उपयुक्त लोगों को काम करने की आवश्यकता है

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg

** यदि सभी अन्य विफल होते हैं **

दुर्भाग्य से, यह उतना ही विशिष्ट है क्योंकि इसे सीमित संख्या में जानकारी दी जाती है और एसई वास्तव में ऐसे मुद्दों के लिए एक मंच नहीं है, इसलिए मेरे "सामान्य" उत्तर में उपयोगी संसाधनों का उल्लेख है।

यदि आप इसका पता नहीं लगा सकते हैं, तो शायद आर्क मंचों द्वारा ड्रॉप करें, और बशर्ते आपने अपना सर्वश्रेष्ठ प्रयास किया हो और डॉक्स को हाथ से पहले पढ़ लें, आपको मदद मिल सकती है।

आर्क के माध्यम से यह सब करना मेरे लिए सीखने का एक मौलिक अनुभव रहा है।


1
आपके प्रतिक्रिया के लिए धन्येवाद। सबसे पहले, यह एक BIOS प्रणाली है जिसमें एमबीआर विभाजन डिस्क है। दूसरा, मैं उबंटू से ग्रब पैकेज और कॉन्फ़िगरेशन का उपयोग करना चाहता हूं, आर्क से GRUB को फिर से स्थापित करना मैं क्या योजना नहीं है। मुझे यह भी संदेह है कि यह कोई भी बदलाव करेगा ... और मैं उन्नत विकल्पों में कहीं न कहीं GRUB प्रविष्टि के माध्यम से उबंटू को बूट कर सकता हूं। समस्या यह है कि GRUB किसी भी तरह से यह निर्धारित करने में सक्षम नहीं लगती है कि कौन सा कर्नेल या आरंभिक रैमडिस्क है या कौन सा विभाजन किस सिस्टम पर संबंधित है।
बाइट कमांडर

अनिवार्य रूप से, वही चरण लागू होते हैं। ग्रब-इनस्टॉल और ग्रब-mkconfig (जो आपको एक नई grub.cfg फाइल बनाता है) ग्रब कमांड हैं जो उबंटू के तहत भी उपलब्ध हैं। जांचें कि क्या ओएस-प्रोबेर भी उपलब्ध है या इसी तरह की चीज है (यह अन्य फाइल सिस्टम खोजने के लिए mkconfig की अनुमति देता है)। यह यह ठीक करता है कि कर्नेल चित्र सही स्थान पर हैं, आपकी पोस्ट को पुन: प्रस्तुत करना मुझे यकीन नहीं है कि यह मामला है। सभी कर्नेल और .img सुनिश्चित करने के लिए अपने / boot विभाजन का निरीक्षण करें। आपने आर्क के इनट्रामाफ़्स के साथ अपने लिनक्स initrd.img को ओवरराइट कर दिया होगा। Ubuntu मंचों या पूछे जाने वाले प्रश्न को हिट करें।
तीन दिग

जैसा कि मैंने लिखा था, मैंने पहले से ही कोई फायदा नहीं होने के लिए grub-mkconfig को चलाया, लेकिन जब मैं घर पर होता हूं तो उपलब्ध छवियों की जांच / बूट करता हूं। और कुछ ओएस-प्रोब स्क्रिप्ट हैं।
बाइट कमांडर

क्षमा करें, वह याद किया। तब आपने संभवतः अपने ubuntu कर्नेल और आर्च के साथ initrd को अधिलेखित कर दिया है। आप उबंटू फालबैक कर्नेल (मुझे लगता है) से अपने अपग्रेड / अपडेट अनुक्रम को चलाकर उन्हें पॉप कर सकते हैं
तीन दिग

उबंटू की गुठली ठीक होनी चाहिए क्योंकि मैं उन सभी को "उबंटू के लिए उन्नत विकल्प" मेनू से बूट कर सकता हूं। अगर वहां कुछ भी गलत है, तो यह केवल डिफ़ॉल्ट कर्नेल के लिए सिम्लिंक हो सकता है ... आज शाम को जा रहे हैं।
बाइट कमांडर

0

मेरा समाधान सरल है। मैं टर्मिनल का उपयोग करता हूं और निम्नलिखित कार्य करता हूं:

sudo rm /boot/grub/grub.cfg
sudo update-grub

यदि आपके पास आगे की समस्याएं हैं, तो बस उपयोग करें boot-repair, जो एक मुफ्त डाउनलोड है, सीडी डिस्क को जलाने के लिए पर्याप्त छोटा है।


ओपी पहले ही चल चुका है update-grub। बूट-मरम्मत इस विशेष मुद्दे के साथ मदद करने की बहुत संभावना नहीं है।
terdon

ग्रब और कुछ बूट मरम्मत या अद्यतन प्रक्रियाएं मानती हैं कि /boot/grub/grub.cfg में क्या है ctrrent और सही है। लेकिन परिवर्तन करें, एक विभाजन सुधार की तरह, आपको एक नया यूयूआईडी मिलता है, जो आपको ग्रब-रेस्क्यू में रखता है> इससे निपटने के लिए, बस ऐसा करें: sudo rm /boot/grub/grub.cfg; सुडो अपडेट-ग्रब। Grub.cfg में सभी प्रविष्टियां नई और वर्तमान होंगी।
BAD-Boop

हां, लेकिन फिर से, ओपी पहले ही ऐसा कर चुका है और इससे कोई मदद नहीं मिली है। मुझे एहसास है कि सवाल बड़ा है और इसे याद करना आसान है लेकिन sudo grub-mkconfig -o /boot/grub/grub.cfgवहीं है। update-grubएक बहुत ही सरल शेल स्क्रिप्ट है जो चलती है grub-mkconfig -o /boot/grub/grub.cfg । आप इसके साथ देख सकते हैं cat /usr/sbin/update-grub
terdon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.