hata: '/ grub/i386-pc/normal.mod' dosyası bulunamadı


46
error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

Ne yapabilirim? Sadece oturup bakıyorum.

Dört yıldan beri kullanmadığım eski netbook'umu (Dell Inspiron 1010) buldum. Windows XP'yi Ubuntu 12.10 ile değiştirdim. Önyüklenebilir USB sürücümü kullandım. Kurdum ve yeniden başlattım. normal.modBulunamayan bir mesaj aldım .

Ne yapmalıyım? Tür exit, rebootya quit? Yeniden kurmalı mıyım?


1
Asla çalışmayan bir cevap. BU ÇALIŞIYOR: işletim sisteminizi yeniden kurun, "başka bir şey yapın" bölümüne gidin, sonra bölüm tablolarınızı oluşturun use your windows partition as your primary boot device. Bu son adım esastır. KULLANMAYIN / önyükleme yapmayın. Başka bir çözüm olabilir: başlatma sırasında önyükleme cihazınızı el ile değiştirmeyi deneyin; Ancak, bunun işe yarayacağını sanmıyorum. Bu, Ubuntu'da 17.10'a kadar devam eden uzun süredir devam eden bir sorundur. Teşekkür ederim.
Wolfpack'08

Bu talimatların hiçbiri benim için çalıştı. Aslında, çeşitli kurtarma araçlarını kullanmak sorunu daha da kötüleştirdi. Grubumu yeniden kurtarabildim ama lvm2 kullandığım için çekirdek başlayamadı. Herhangi bir şey için lvm2 kullanıyorsanız, bu sorun olduğunda, işletim sistemini yeniden yüklemeniz gerekecektir. Söyleyebileceğim kadarıyla, başarısız bir çekirdek güncellemesi + grub + lvm2 kombinasyonundan kurtarma yapılamaz. lvm2 bir noktada Ubuntu Server LTS'ye gönderilmesine rağmen çok az resmi destek görüyor. Verilerimi yedekliyorum ve işletim sistemini yeniden yüklüyorum ve tekrar lvm2'ye dokunmayacağım. Dersimi öğrendim.
CubicleSoft

1
Ben zaten LV2'den uzaklaştım ve o zamandan beri hiç sorun yaşamadım Altyapımın hiçbiri artık kullanmıyor. Varsayılan sistem kurtarma çözümleri (hem grafik hem de CLI) farkında değiller veya yalnızca LVM'den çok az haberdarlar ve bu da LVM kullanmamam için yeterli neden. Sistemi kurtarmak için talimatlarını izlesem ve işe yarasalar bile, sorun gelecekte de tekrar olacaktır. İşletim sistemini yeniden kurmak ve LVM'yi parçalamak benim için en iyi ve en hızlı seçenekti.
CubicleSoft

1
@Wolfpack benim durumumda sorun normal.mod set olmadan muhtemelen ubuntu'yu yeniden kurmamı engeller, lgoin nt çalışır. Ne yapabilirim?
HoCo_

1
@ Wolfpack'08 Lütfen çözümünüzü bir cevap olarak tekrarlayın. Çözümlerin yorum olarak gönderilmesi site ilkelerini atlatıyor. Ayrıca , “aşağıda verilen cevapların hiçbir zaman işe yaramadığını” söylemelisiniz, çünkü bunlardan daha fazlası vardır.
Melebius

Yanıtlar:


40

Grub, açılışta yüklenen küçük bir çekirdek resme sahiptir. Çekirdek görüntü, daha fazla işlevsellik sağlayan modülleri dinamik olarak yükler. i386-pc/normal.mod not foundgrub , normal komutu sağlayan bir grub modülü olan normal.mod dosyasını yükleyemez . Normal yüklemek için mod.for grubun nerede olduğunu söylemeniz gerekir. Bunu yapmak için grub komut satırını (aka Kurtarma Konsolu) kullanabilirsiniz. Grub, önyükleme ile ilgili bir sorun varsa komut satırını başlatır veya grubun başlaması sırasında grub grubunu basılı tutarak (grub menüsünü zorlamak için) manuel olarak başlatabilir ve ardından 'c' tuşuna basabilirsiniz.

Grub'u kullanarak sürücüleri, bölümleri ve dosya sistemlerini keşfedebilirsiniz. Gerek:

  • grub kurulumunu ls veya search.file kullanarak bulun
  • grub değişkenlerini $ önek ve $ root olarak ayarla
  • normal modülü yükleyin ve çalıştırın

Örnek

Aşağıdaki sadece bir örnek. Yerel sürücünüze ve bölüm kurulumunuza uyarlamanız gerekecektir.

normal.mod nerede? bazı muhtemel konumlara bak

grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod

grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod

grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1

Bunu alırsanız "Unknown command 'search.file'", search.file komutunun kullanılamadığı anlamına gelir. Bunun sebebi sizin istekte bulunmanız ve grub rescue>istekte bulunmamaktan kaynaklanıyor olmasıdır grub>. Bu durumda ls, bulmak için bölüm düzeninizle ilgili komutu ve bilginizi hala taşıyabilir ve kullanabilirsiniz normal.mod.

buldum (hd0, msdos1)

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

grub neden bulamadı?
$ önekini kontrol et - grub dizininin mutlak konumu
(bu, grub grub-install tarafından yüklendiğinde ayarlanır)

grub> echo $prefix
(hd0,msdos2)/boot/grub

$ root kontrol edin - aygıt
grubunu içermeyen yollar için varsayılan aygıt grub, başlangıçta bunu cihaza $ önekinden ayarlar.

grub> echo $root
hd0,msdos2

root ve öneki yanlış bölüme (hd0, msdos2)
set $ root ve $ öneki normal.mod (hd0, msdos1) bulduğumuz bölüme

grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub

normal modülü yükleyin ve çalıştırın

grub> insmod normal
grub> normal

Yardımcı olabilecek diğer bazı komutlar

Tüm cihazları ve bölümleri listeler.

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)

Bu bölüm

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib

ls dosya sistemi (not / sonunda)

grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/


i386-pc dizininin içinde / boot / grubun varlığına bakmak , bunun bir
x86_64-efi dizininin BIOS kurulumu olduğu anlamına gelir.

grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg


+1 ubuntu kurulumuma önyükleme yapmak için bu adımları uyguladıktan sonra grubumu sudo grub-install /dev/sdXyüklemek için koştum . LVM kurulumunun grubumu bir şekilde karıştırdığını düşünüyorum.
DavidG

Sanırım benim yaptığım gibi "Bilinmeyen Komut" arama dosyası "nı alırsanız, pes etmenin vakti geldi. Grub sıkıştığında bir kere yetmez.Ayrıca, Ubuntu'yu asla bir başkasının Windows bilgisayarına da kurmayın, çünkü eğer karışırlarsa gerçekten çok kızarlar
Scooter

@Scooter Canlı bir CD / USB açarak Grub'u yeniden yükleme talimatı için bu cevaba bakın .
bain

@bain Cevabınız için teşekkürler. Benim durumumda Ubuntu iso diskinden yeniden yükleme yaptım. Ubuntu grubun berbat olduğunu ya da belki de otomatik olarak üzerine yazdığını buldu, ama tekrar Windows'a yeniden başlayabilmek için tekrar bulunduğum yere yeniden yazdı.
Scooter

Grub kurtarma kabuğu bu komutların hiçbirini desteklemiyor gibi görünüyor. "Bilinmeyen komut 'search.file'"
Cerin

30

Bunu öğleden sonra bir makinede çözdüm. Bu sorunun bir nedeni, hatalı GRUB dosyalarını yüklemediğiniz ve bu nedenle yüklediğiniz zaman, EFI güvenli önyüklemenizin olduğunu düşünen kurucudur.

Yapmanız gereken, GRUB 2'yi kurmak. Bunu yapmak için, canlı örneği önyüklemeniz, kök bölümünüzü monte etmeniz ve kurmanız gerekir.

Canlı bir örnekte, kök bölümünüzün yüklendiği bölümü bulun. GParted bunu size söyler veya kullanabilirsiniz

sudo fdisk -l

Ubuntu'nun kurulu olduğu bölüme gidin.

Bölümünüzü aldıktan sonra, onu yerleştirmeniz gerekir. Kök bölümünün / dev / sda5 konumunda olduğunu varsayarsak, şöyle olur:

sudo mount /dev/sda5 /mnt

Sonra GRUB 2'yi kurun

sudo grub-install /dev/sda --root-directory=/mnt [doğru yapmanız gereken bazı yerler olduğu için bunun için kopyala ve yapıştır komutunu kullanın.]

Bunun senin problemin olduğunu farz edersek, o zaman sadece yeniden başlayabilmelisin ve her şey yoluna girecek.

Bunun için orijinal çözüm buradan yapıldı: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html


1
Benim için işe yaramadı. Aynı problemim var ve hala bir çözüm arıyorum.
ExpatEgghead 7:13

3
--Root dizini şimdi - Grub2 dizini içinde -boot dizini
bain

1
İşe yarayan bir diğer kolay düzeltme de /etc/grub.d/backup içinde bulunan grup yedeğini / boot / grub'a kopyalamak. Ekteki benioku dosyasına uygun klasörler ve yollar için bakın.
jhexp

Benim durumumda sorun 2 sabit sürücüm oldu ve ilk önce bios dizisi yanlış sürücüye bakıyordu. Bu sürücünün eski bir bozuk grub kurulumu vardı.
eusoubrasileiro

Fdisk'ten hangisinin doğru olduğunu söyleyemezseniz, bu SO yardımcı olabilir (hangi cihazın / medya / ubuntu / bazı adların
Michael

2

Bu bilgiyi forumlarda bulamadım, bu yüzden bu sorunun uzun zaman önce sorulmasına rağmen bazı bilgileri paylaşmak istiyorum:

Ubuntu yüklü büyük (örneğin 1TB) bir bölüme sahipseniz ve / boot / için bir tane daha ayırmadıysanız, bu hataların nedeni bu olabilir. GRUB başladığında, / boot / grub / dizininden normal sürücüleri okumak için biosdisk sürücüsünü kullanır. Bazen bu dizin, fiziksel olarak, biosdisk sektörünün desteklediği maksimum seviyenin ardından bir yerde sabit diskte bulunabilir. Sorun, örneğin sistem güncellemesinden sonra ortaya çıkabilir. Ayrıca, Ubuntu 13.10 yeni kurulumundan sonra her zaman bu sorunla karşılaşıyorum, ancak anakarta / bios'a bağlı olarak farklılık gösterebilir.

Grub kurtarma komutunu kullanarak - doğru PREFIX ve ROOT ayarını yaptıktan sonra, ls / boot'ı deneyin - eğer bir şey görmüyorsanız, ancak canlı cd / flash sürücüden önyükleme yaparken dosyaları yukarıda görebilirsiniz - .

Sistemi önyüklenebilir hale getirmek için farklı şeyler yapabilirsiniz, ancak ileride bu sorundan kaçınmanın tek yolu (yükseltme sırasında) dizini ayrı bir küçük bölüme koymaktır.


1

grub-rescueİstemi alırsanız ve / veya yapılandırmanız LVM kullanıyorsa, diğer çözümler işe yaramayabilir , bunun yapılması gerekir.

Bir kurtarma diskinde önyükleme yapın (ipucu: Yedek USB diskimin özel bir bölümünde küçük bir dağıtım tutarım).

LVM kullanıyorsanız, cilt grubunuzun adını lvdisplayveya LVM ile ilgili komutlarla bulun . Etkinleştir (aksi halde mount: special drive /dev/volumegroupname/partition does not existbağlamaya çalışırken bir hata alırsınız ):

vgchange -a y volumegroupname

Şimdi normal /bölümünüzü bağlayın, örneğin /mnt :

mount /dev/volumegroupname/partition /mnt

Birkaç özel cihaz da /boottakın (ayrı bir bölmede olduğu gibi):

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs /sys /mnt/sys

Sonra chroother zamanki dağıtımınıza:

chroot /mnt

Son olarak, GRUB2'yi yeniden yükleyin - komutlar dağıtımınıza bağlı olarak değişebilir, bu Slackware'de çalışır (eğer sürücünüz ise /dev/sda):

grub-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

Yeniden başlat ve yapmalısın.


0

SEÇİLMİŞ CEVAP ASLA ÇALIŞMAYACAKTIR.

BU ÇALIŞIYOR:

  1. İşletim sisteminizi yeniden kurun, " başka bir şey yapın " bölümünegidin, bölüm tablolarınızı oluşturun,
  2. Windows bölümünüzü birincil önyükleme aygıtınız olarak kullanın .

İkinci adım adım esastır .

KULLANMAYIN/boot .

Başka bir çözüm olabilir: başlatma sırasında önyükleme cihazınızı el ile değiştirmeyi deneyin; ancak bunun işe yarayacağını sanmıyorum ve henüz test etmedim.

Bu, Ubuntu'da 17.10'a kadar devam eden uzun süredir devam eden bir sorundur.

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.