error: file '/grub/i386-pc/normal.mod' tidak ditemukan

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

Apa yang dapat saya? Saya hanya duduk dan menatapnya.

Saya menemukan netbook lama saya (Dell Inspiron 1010) yang belum saya gunakan selama sekitar empat tahun. Saya mengganti Windows XP dengan Ubuntu 12.10. Saya menggunakan drive USB bootable saya. Saya menginstal dan reboot. Saya mendapat pesan yang normal.modtidak ditemukan.

Apa yang harus saya lakukan? Jenis exit, rebootatau quit? Haruskah saya menginstal ulang?

Don Metlay
sumber
1
JAWABAN DI BAWAH INI PERNAH BERHASIL. INI BEKERJA: instal ulang OS Anda, buka "melakukan sesuatu yang lain", buat tabel partisi Anda, lalu use your windows partition as your primary boot device. Langkah terakhir itu penting. JANGAN GUNAKAN / boot. Mungkin ada solusi lain: coba ubah perangkat booting Anda secara manual saat startup; Namun, saya tidak berpikir itu akan berhasil. Ini adalah masalah lama yang telah bertahan di Ubuntu hingga dan termasuk 17.10. Terima kasih.
Wolfpack'08
Tidak satu pun dari instruksi ini yang berhasil untuk saya. Bahkan, menggunakan berbagai alat pemulihan membuat masalahnya menjadi lebih buruk. Saya dapat menginstal ulang grub tetapi karena saya menggunakan lvm2, kernel gagal memulai. Jika Anda menggunakan lvm2 untuk apa pun, maka ketika masalah ini terjadi, Anda harus menginstal ulang OS. Sejauh yang saya tahu, tidak ada pemulihan dari pembaruan kernel yang gagal + kombinasi grub + lvm2. lvm2 melihat sangat sedikit dukungan resmi meskipun didorong untuk Ubuntu Server LTS pada satu titik. Saya mencadangkan data saya dan menginstal ulang OS dan tidak akan menyentuh lvm2 lagi. Belajar pelajaran saya.
CubicleSoft
1
Saya sudah beralih dari lvm2 dan sejak itu tidak memiliki masalah. Tidak ada infrastruktur saya yang menggunakannya lagi. Solusi penyelamatan sistem default (baik grafis dan CLI) tidak menyadari atau hanya sedikit menyadari LVM dan itu adalah alasan yang cukup bagi saya untuk tidak menggunakan LVM. Bahkan jika saya mengikuti arahan Anda untuk memulihkan sistem dan mereka bekerja, masalahnya mungkin akan terjadi lagi di masa depan. Menginstal ulang OS dan membuang LVM adalah pilihan terbaik dan tercepat bagi saya.
CubicleSoft
1
@ Wolfolf dalam kasus saya masalahnya adalah bahwa tanpa set normal.mod mencegah saya untuk menginstal ulang ubuntu, lgoin tidak berfungsi. Apa yang dapat saya?
HoCo_
1
@ Wolfpack'08 Harap memposting ulang solusi Anda sebagai jawaban. Posting solusi sebagai komentar menghindari prinsip-prinsip situs. Anda juga harus menyebutkan yang "jawaban di bawah tidak pernah berhasil" karena ada lebih banyak dari mereka.
Melebius

Jawaban:

40

Grub memiliki gambar inti kecil yang dimuat saat boot. Gambar inti secara dinamis memuat modul yang menyediakan fungsionalitas lebih lanjut. i386-pc/normal.mod not foundmenunjukkan bahwa grub tidak dapat memuat normal.mod , yang merupakan modul grub yang menyediakan perintah normal . Untuk memuat normal.mod, Anda perlu memberi tahu grub di mana itu. Untuk melakukan ini, Anda dapat menggunakan baris perintah grub (alias Rescue Console). Grub akan memulai baris perintah jika ada masalah boot, atau Anda dapat memulainya secara manual dengan menahan tombol shift ketika grub mulai (untuk memaksa menampilkan menu grub), dan kemudian menekan tombol 'c'.

Menggunakan grub Anda dapat menjelajahi drive, partisi, dan sistem file. Kamu butuh:

  • temukan instalasi grub menggunakan ls atau search.file
  • set variabel grub $ awalan dan $ root
  • memuat dan menjalankan modul normal

Contoh

Berikut ini hanyalah sebuah contoh. Anda perlu menyesuaikannya dengan drive lokal Anda dan pengaturan partisi.

dimana normal.mod? lihat di beberapa lokasi yang mungkin

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

Jika Anda mendapatkan "Unknown command 'search.file'"ini berarti bahwa perintah search.file tidak tersedia. Ini mungkin karena Anda berada di grub rescue>prompt dan tidak grub>cepat. Dalam hal ini Anda masih dapat melanjutkan dan menggunakan lsperintah dan pengetahuan Anda tentang tata letak partisi Anda untuk menemukan normal.mod.

menemukannya di (hd0, msdos1)

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

kenapa grub tidak menemukannya?
check $ prefix - lokasi absolut dari direktori grub
(ini diatur ketika grub diinstal oleh grub-install)

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

check $ root - perangkat default untuk jalur yang tidak menyertakan
grub perangkat yang pada awalnya menetapkan ini ke perangkat dari $ awalan

grub> echo $root
hd0,msdos2

root dan awalan menunjuk ke partisi yang salah (hd0, msdos2)
mengatur $ root dan $ awalan ke partisi tempat kami menemukan normal.mod (hd0, msdos1)

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

memuat dan menjalankan modul normal

grub> insmod normal
grub> normal

Beberapa perintah lain yang mungkin bisa membantu

Ini daftar semua perangkat dan partisi

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

ls partisi

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 filesystem (note / at end)

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/

lihat ke dalam / boot / grub
keberadaan direktori i386-pc berarti ini adalah
kehadiran instalasi BIOS dari direktori x86_64-efi akan menunjukkan instalasi EFI

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

bain
sumber
+1 Setelah mengikuti langkah-langkah ini untuk boot ke instalasi ubuntu saya, saya berlari sudo grub-install /dev/sdXuntuk menginstal grub saya. Saya pikir instalasi LVM bingung grub saya entah bagaimana.
DavidG
Saya kira jika Anda mendapatkan "Perintah 'file-cari' yang tidak dikenal seperti yang baru saja saya lakukan, sekarang saatnya untuk menyerah. Saran saya kepada orang-orang adalah jangan pernah menginstal Ubuntu tanpa DVD Pemulihan Windows. Seperti yang baru saja saya ketahui, memiliki partisi pemulihan adalah tidak cukup ketika Grub berantakan. Dan juga, jangan pernah menginstal Ubuntu pada komputer Windows orang lain, karena jika itu kacau mereka akan sangat marah.
Scooter
@ Skuter Lihat jawaban ini untuk instruksi menginstal ulang Grub dengan mem-boot CD / USB langsung.
bain
@Bain, terima kasih atas jawabannya. Dalam kasus saya lakukan instal ulang dari disk iso Ubuntu. Ubuntu menemukan bahwa grub kacau atau mungkin hanya secara otomatis menulisnya, tetapi mengubahnya menjadi tempat saya kembali bisa boot ke Windows lagi.
Skuter
Shell penyelamatan Grub tampaknya tidak mendukung perintah ini. "Perintah tidak dikenal 'search.file'"
Cerin
30

Memecahkan ini pada mesin sore ini. Tampaknya salah satu penyebab masalah ini adalah penginstal yang berpikir bahwa Anda memiliki boot aman EFI, ketika Anda tidak melakukannya dan karenanya memuat file GRUB yang salah.

Yang perlu Anda lakukan adalah menginstal GRUB 2. Untuk melakukan ini, Anda perlu mem-boot ke instance langsung, pasang partisi root Anda dan instal.

Dari instance langsung, cari partisi tempat partisi root Anda dimuat. GParted akan memberi tahu Anda hal ini, atau Anda dapat menggunakannya

sudo fdisk -l

Pergi untuk partisi di mana ubuntu diinstal.

Setelah Anda memiliki partisi, Anda perlu memasangnya. Dengan asumsi partisi root di / dev / sda5, itu akan menjadi:

sudo mount /dev/sda5 /mnt

Kemudian instal GRUB 2

sudo grub-install /dev/sda --root-directory=/mnt [gunakan salin dan tempel untuk yang ini karena ada beberapa ruang yang harus Anda lakukan dengan benar.]

Dengan asumsi ini adalah masalah Anda, maka Anda seharusnya hanya bisa reboot dan semuanya akan berfungsi dengan baik.

Solusi asli untuk ini adalah dari sini: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html

MorrisseyJ
sumber
1
Tidak bekerja untuk saya. Saya memiliki masalah yang sama dan saya masih mencari solusi.
ExpatEgghead
3
--root-direktori sekarang --boot-direktori di grub2
bain
1
Perbaikan mudah lain yang berhasil bagi saya adalah menyalin cadangan grup yang terletak di /etc/grub.d/backup ke / boot / grub. Periksa readme terlampir untuk folder dan jalur yang sesuai.
jhexp
Dalam kasus saya masalahnya adalah saya memiliki 2 hard drive dan urutan bios mencari drive yang salah terlebih dahulu. Drive itu memiliki instalasi grub lama yang rusak.
eusoubrasileiro
Jika Anda tidak tahu mana yang benar dari fdisk, SO ini dapat membantu (ini membantu saya menemukan perangkat / media / ubuntu / beberapa nama mana yang aktif) unix.stackexchange.com/questions/11311/…
Michael
2

Saya tidak menemukan informasi itu di forum, jadi saya ingin berbagi beberapa informasi meskipun pertanyaan ini sudah lama ditanyakan:

Jika Anda memiliki partisi besar (misalnya 1TB) dengan Ubuntu terpasang dan Anda tidak mengalokasikan tambahan untuk / boot /, itu bisa menjadi alasan kesalahan tersebut. Ketika GRUB dimulai, ia menggunakan driver biosdisk untuk membaca driver normal dari direktori / boot / grub /. Kadang-kadang, direktori ini dapat secara fisik terletak di hard drive di suatu tempat setelah maksimum didukung oleh sektor biosdisk. Masalahnya dapat muncul, misalnya, setelah peningkatan sistem. Juga, saya selalu menghadapi masalah itu setelah instalasi baru Ubuntu 13.10, tetapi bisa berbeda, karena tergantung pada motherboard / bios.

Anda dapat memeriksa bahwa menggunakan pemulihan grub - setelah menyetel PREFIX dan ROOT yang benar, cobalah untuk ls / boot - jika Anda tidak melihat apa-apa, tetapi dapat melihat file di sana ketika boot dari live cd / flash drive - daripada Anda memiliki masalah yang dijelaskan di atas .

Anda dapat melakukan berbagai hal untuk membuat sistem dapat di-boot, tetapi satu-satunya cara untuk menghindari masalah tersebut di masa mendatang (selama dist-upgrade) adalah dengan meletakkan / mem-boot direktori pada partisi kecil yang terpisah.

Kesedihan
sumber
1

Solusi lain mungkin tidak berfungsi jika Anda sampai ke grub-rescueprompt dan / atau konfigurasi Anda menggunakan LVM, ini seharusnya.

Boot pada disk penyelamat (tip: Saya menyimpan distribusi kecil pada partisi khusus disk USB cadangan saya).

Jika Anda menggunakan LVM, cari nama grup volume Anda dengan lvdisplayatau perintah terkait LVM lainnya. Aktifkan (jika tidak, Anda akan mendapatkan mount: special drive /dev/volumegroupname/partition does not existkesalahan saat mencoba memasang):

vgchange -a y volumegroupname

Sekarang pasang /partisi Anda yang biasa , misalnya di /mnt :

mount /dev/volumegroupname/partition /mnt

Pasang beberapa perangkat khusus juga (juga /bootjika di partisi yang terpisah):

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

Kemudian chrootke distribusi Anda yang biasa:

chroot /mnt

Terakhir, instal ulang GRUB2 - perintah dapat bervariasi tergantung pada distribusi Anda, ini berfungsi pada Slackware (jika drive Anda /dev/sda):

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

Reboot dan Anda harus selesai.

Skippy le Grand Gourou
sumber
0

! JAWABAN TERPILIH TIDAK PERNAH BEKERJA.

INI BEKERJA:

  1. Instal ulang OS Anda , buka " melakukan sesuatu yang lain ", buat tabel partisi Anda,
  2. Gunakan partisi windows Anda sebagai perangkat boot utama Anda .

Langkah langkah kedua sangat penting .

JANGAN GUNAKAN/boot .

Mungkin ada solusi lain: coba ubah perangkat booting Anda secara manual saat startup; Namun, saya tidak berpikir itu akan berhasil, dan saya belum mengujinya.

Ini adalah masalah lama yang telah bertahan di Ubuntu hingga dan termasuk 17.10.

Wolfpack'08
sumber