Grub hatası: '/grub/i386-pc/normal.mod' dosyası bulunamadı?


17

Son zamanlarda makineme arch (umarım başarıyla) kurdum. Yeniden başlatmaya gittiğimde bir sorunum vardı. Metin yazan siyah bir ekranım var

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

O zamandan beri bir cevap aramaya çalıştım. Neredeyse burada Ubuntu forumlarında bir tane buldum ama sonra yanlış olduğunu söyleyen yorumlardan birini gördüm. Başka bir yanıt daha var, ancak işleri karıştırmaktan korkmak için canlı CD'den yüklemek isteyip istemediğimden emin değilim.

Sürekli olarak bölümleme, komut, öğretici ve sistem sorunlarıyla karşılaştıktan sonra 7 saatinizi ayarladıysanız korkumu anlayacaksınız. Ne büyük bir keyif.

Grub çalışmasını kolay bir çözüm bilen var mı?


İkinci öneri (liveCD ve chroot ile) muhtemelen denemeye değer. Ya da bir varyasyon: Ben bir kemer kullanıcısı değilim ama daha önce kurdum ve hatırladığım kadarıyla, bu öneri, kurulumun, bazıları bir kroot içeren çeşitli aşamaları ile ilgili olarak düşünmek isteyebilirsiniz. Kemer CD'sini önyükleyen ve ardından kurulumunuza monte edip kromatlayan önceki bir adıma geri gidebilirseniz, deneyebilmeniz gerekir grub-install. Adımlardan hiçbirini tekrarlamanız gerekmez, sadece bir liveCD'den bilgi almak için bunları bir kılavuz olarak kullanın.
goldilocks 29:13

Şu anda bilgisayarda değilken grub kurulumunu denediğime inanıyorum ve işe yaramadı.
Griffin

@Griffin "grub-install" deki gibi çalışmadı ya da sorunu çözmedi mi?
derobert

@derobert grub-install geçerli bir komut değildi \
Griffin

@goldilocks İkincisi de çalışmıyor
Griffin

Yanıtlar:


9

Gerçekten sinir bozucu bir şey ...

Görünüşe göre dizin / boot / grub / i386-pc sadece yerinde değildi, nihayet tüm / usr / lib / grub / i386-pc / boot / grub kopyalayarak sorunu çözdüm. Bu kadar.

cp -r /usr/lib/grub/i386-pc /boot/grub

Bunu da yaptım çünkü eksik de. Ne yazık ki, bu düzeltmedi.
Wolfpack'08

8

Benzer bir sorunun ortasındayım (bu arada kemer üzerinde de)

Grub bu dosyayı bulamıyor ve yanlış bir "önek" kullandığından çalıştırılamıyor

İşte yaptıklarınız. Grub kurtarma moduna önyükleme yaparsınız, sonra nasıl önyükleme yapacağınızı anlarsınız.

Önce çalıştırmak set benimdir örneğin, bu irade liste değişkenleri

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

Şimdi, önek grub'un normal.mod dosyasını aradığı değişkendir. Benim durumda HD1, msdos3 aynıdır / dev / sdb3 (benzer şekilde, hd0, msdos1 olurdu / dev / sda1), geçerli bölümleri listesi içinde türüdür görmek yapmak isteyebilirsiniz neyi ls

Şimdi, benim durumumda, grub, kemer bölümümde / boot olarak monte edilen / dev / sdb1 üzerine kuruldu, bu yüzden doğru önek (hd1, msdos1) / grub

Öyleyse önyükleme yapmam gerekiyor:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

Sizin durumunuzda, hangi bölümü kurduğunuzu hatırlamanız veya tahmin etmeniz gerekecektir. Yanlış tahmin edebilirsiniz, herhangi bir zarar vermez, insmod komutu basitçe başarısız olur ve başka bir bölümle tekrar deneyebilirsiniz.

Bundan sonra, grubun normalde olması gerektiği gibi yükler ve listeden önyüklemek istediğim şeyi seçebilirim. Normalde böyle bir karmaşa meydana geldiğinde, grubunuzu mbr'nize ( grub-install kullanarak ) yeniden yüklemek kalıcı olarak düzeltmelidir, böylece her önyükleme yaptığınızda bunu yapmanız gerekmez. Ancak bunu düzeltmek bu kadar kolay değilse ne yapacağımı bulmakta çok zorlanıyorum (ya da ne yapmanız gerektiğini paylaşıyorum).

Ancak bu başarısız olursa (örneğin önek doğruysa ancak hala önyükleme yapamıyorsanız), sorunu çözmek için canlı veya kurtarma CD'lerine başvurmalısınız (bundan kaçınmak en iyisidir)


Bu biraz eski bir soru olabilir, ama birisinin bir şeyleri düzeltmek için canlı cd'ler ve usb'ler kullanarak etrafta dolaşmak yerine grub kurtarmayı nasıl kullanacağını cevaplaması gerektiğini buldum. Bize yardım etmek için her zaman elimizde canlı medya yoktur ve bunu yapsak bile, tercih ettiğimiz ortamdan çalışmak genellikle daha iyidir.
Cestarian

Harika bir açıklama! (Özellikle "yanlış tahmin etme" hiçbir şeye zarar vermeyecektir). Yanlışlıkla bir Windows bölümünü silmenin Ubuntu üzerinde hiçbir etkisi olmayacağını düşündükten sonra, çift önyükleme penceresi + Ubuntu sistemi ile aynı problemle karşılaştım . Her neyse, bu yazı hatayı nasıl düzelteceğinizi anlamamıza gerçekten yardımcı oldu. Hangi bölümün grub içerdiğini hatırlayamadığım için hepsini listeledim ls, sonra doğru kombinasyona ulaşana kadar tek tek denedim :-)
Leigh

@ Birine yardım ettiğine sevindim :)
Cestarian

1
Bir şeyi düzeltmek her zaman iyidir, ancak nasıl düzelttiğinizi anlamak daha da iyidir :-) Şerefe.
Leigh

Siz bir dahisiniz
Ashish Doneriya

5

Bu sorunu bugün yeni bir Mint 15 kurulumundan sonra yaşadım.

Yükleyici /boot/grub/x86_64-efimodülleri oluşturdu, ancak normal /boot/grub/i386-pcmodülleri oluşturmadı.

Grub'un Canlı CD'den yeniden yüklenmesi sorunu çözdü.

Değiştir / dev / sda ve / dev / sda1 Önyükleme aygıtı ve önyükleme bölümü ile ve Canlı CD'den aşağıdaki komutları çalıştırın:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot

1

Gönderiniz için teşekkürler. Neredeyse özdeş bir hata mesajını çözdüm - "Vista '' /grub2/i386-pc/normal.mod 'bulunamadı" Windows Vista yüklü eski bir Dell Optiplex bilgisayarına yeni bir Linux CentOS 5.11 kurulumundan sonra önyükleme sistemi.

Durumumu karmaşıklaştıran şey, FEDORA varsayılan bölümlerine GRUB (GREG2 (LEGACY) yerine GRUB2) kullanan daha yeni Fedora 20 dağıtımını yüklemeyi denemememdi. Sonra, Windows bölümünü tutarak ve FEDORA bölümlerinin üzerine yazarak CentOS'u doğrudan bunun üzerine yüklemeye çalıştım.

CentOS yüklemesi sırasında, ilk (Windows) bölümümü tek başına (hd0,0) bıraktım ve / boot dizinini ikinci (önyükleme) bölümünde (hd0,1) oluşturdum. Daha sonra o anda MBR'yi değiştirmemeyi seçtim ve bunun yerine diğer seçeneği seçtim (başka bir bölümdeki bootloader).

Başarılı bir kurulum gibi göründükten sonra, yukarıdaki hataya yeniden başlatıldı.

İlk bölümdeki önyükleme bilgilerinin GRUB2 konumuna işaret ettiğinden şüpheleniyorum. CPU, daha önce oluşturulan FEDORA00 bölümleri kaldırılmış olduğu için normal.mod'u bulamadı.

İşte adımlarım:

  1. Centos 5 kurulum CD'mden kurtarma moduna ("linux kurtarma") önyükleme yapın.

  2. Yerel sürücüyü takın: chroot / mnt / sysimage

  3. Tek kullanıcı moduna geç: su

  4. CentOS kurulumunu güncelleyin: yum update

  5. Grub.conf dosyasına "Microsoft Windows Vista" eklemek için emacs düzenleyicisini kullanın: emacs /boot/grub/grub.conf ve Vista'yı varsayılan işletim sistemi yapın.

    ( NOT: Bkz. Www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ ve https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html /Installation_Guide/sn-medialess-editing-grub-conf.html .)

  6. MBR'yi güncelleme girişimi: grub-install / dev / hda

  7. CPU'nun "GRUB" görüntülendikten sonra askıya alındığı, tanımlanamayan bir GRUB hatasıyla yeniden başlatın.

  8. Orijinal Windows Vista yükleme diskinden (veya başka bir Windows kurtarma diskinden) yeniden başlatın ve diski onarma seçeneğini seçin. MBR'nin onarıldığını bildiren bir mesaj alın.

  9. Windows Vista'da doğru şekilde yeniden başlatın.

Eminim daha zarif çözümler var, ama bu benim için çalıştı. Ayrıca http://help.ubuntu.com/community/Grub2/Upgrading adresinde açıklandığı gibi GRUB'dan GRUB2'ye geçiş paketini indirmeyi denedim :

$ yum install grub-pc

Ama paketi bulamadı. Belki de denemeliydim yum install grub.


0

Flittermice ekleniyor ...

USB'den önyükleme yapar ve i386 klasörüne sahipseniz, kırık kısımdaki i386 klasörünü kök olarak açabilir ve ardından çalışan i386 klasörünü usb'den kopyalayabilirsiniz.


0

CentOS 6.7 sistemime iki aşamada girdim. İlk olarak, yukarıdaki flittermice'in tavsiyelerini takip ettim, canlı CD'den önyükledim, / dev / sda2'yi / mnt olarak bağladım ve i386-pc klasörünü / mnt / usr / ... 'dan kopyaladım. tarafından find /|grep i386) / boot / grub ile yeniden başlatılır.

Bu bana grub> grub kurtarma yerine grub verdi> ;-).

Sonra burada bir kılavuz izledim [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/] bulmak ve önyükleme yapmak için benim bölümüm. (Hd0,2) idi, çünkü (hd0,1) takas tarafından alındı.

Daha sonra, bu önyüklemenin "otomatik" olmasının mümkün olmadığını anladım, muhtemelen / boot'ım inode boyutu 256 ile ext4 üzerinde ve eski grub1 128 gerektiriyor. [ Http: // ' den bazı komutları izlemeye çalışacağım. kb.kristianreese.com/index.php?View=entry&EntryID=113] bölümü kurulumdan önce hazırlamak için.


0

Ubuntu'yu yeniden yükleyin. "Başka bir şey yap" a gidin. Windows yükleme bölümünüzü, önyükleme yükleyicisini kurması gereken konum olarak seçin.

Varolan bir Windows yüklemeniz varsa grub'u aynı bölüme yüklemelisiniz; Aksi takdirde, soruda görülen sorunla karşılaşırsınız.

Bu, 14, 15, 16, 17 Ubuntu'nun tüm sürümleri ve muhtemelen daha önceki sürümleri için geçerlidir. Önyükleme yükleyicisinin nereye kurulacağı sorulduğunda, / boot bölümü oluşturmayın ve seçmeyin; bunun yerine Windows bölümünü kullanın.

Teşekkür ederim.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.