Grub rescue prompt, perbaiki grub

30

Baru-baru ini saya mempartisi ulang HDD saya dan saya telah merusak GRUB di sistem saya. Saat boot saya mendapatkan prompt penyelamatan GRUB dan saya harus melalui langkah-langkah berikut untuk boot secara normal:

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

(Langkah-langkah itu ditemukan di pos lain di sini!).

Saya sangat lelah mengulangi ini di setiap boot, bagaimana cara saya memperbaiki GRUB secara permanen?

Codito ergo sum
sumber
1
Dua kemungkinan: (1) Boot-Repair (2) Disk Penyelamatan Super Grub Lihat: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA
1
Langkah-langkah yang tercantum dalam pertanyaan untuk boot berhasil bagi saya. Orang harus ingat partisi linux dengan benar.
TheCrazyProgrammer
1
Seperti yang orang lain katakan melakukan update-grub dan kemudian grub-install / dev / sda menyelesaikan masalah.
TheCrazyProgrammer
Lihat jawaban Karthik untuk "file tidak ditemukan": askubuntu.com/questions/443241/…
samis

Jawaban:

12

Untuk memperbaiki penyelamatan grub, ikuti langkah-langkah berikut:

  • Hal pertama adalah kita harus memulai OS kita baru setelah kita dapat memperbaiki grub.

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>
    

    Ketika Anda melihat kesalahan seperti itu terlebih dahulu kita harus memeriksa "Filesystem" adalah ext2 '

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 
    

ini adalah drive kami sekarang kami harus memeriksa yang mana ext2.

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

pergi untuk drive lain sampai Anda mendapatkan "Filesystem ext2".

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

sekarang setel path

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Sekarang perbaiki grub dengan mengikuti perintah di sembarang Ubuntu

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade
    

pastikan Anda harus memperbarui grub setelah masuk ke OS

Roshan Sherkure
sumber
1
OP sudah tahu cara mem-boot ke OS-nya. Jawaban ini bisa lebih ringkas.
Penatua Geek
1
Jawaban ini sangat membantu saya. Masalah saya tidak persis sama dengan pertanyaan awal, jadi informasi tambahan menjadi berguna.
retroj
1
+1 Ini diperbaiki oleh masalah pada instalasi KDE Neon yang gagal.
Darren Lewis
error: file '/boot/grub/i386-pc/normal.mod' tidak ditemukan Apa yang harus saya lakukan?
BhushanDhamale
7

Saya akan mencoba menjalankan update-grubuntuk membangun grub.conf/ grub.cfglagi.

Anda dapat mencoba juga menggunakan grub-install, tetapi saya pikir ini tidak akan membantu.

Jika Anda ingin membaca lebih lanjut, periksa dulu versi yang Anda miliki (GRUB 1 atau 2) dengan menjalankan:

dpkg -l | grep grub

Jika Anda memiliki GRUB 2, Anda dapat menggunakan tutorial berikut: http://www.dedoimedo.com/computers/grub-2.html

Tentu saja hati-hati berurusan dengan GRUB karena kita berbicara tentang proses boot, yang merupakan mekanisme sensitif.

idgar
sumber
2
grub-install <correct-drive, i.e. /dev/sda>dan update-grub2akhirnya melakukannya untuk saya di Ubuntu 15.04
Greg Kramida
6

Sepertinya saya yang update-grubmerakit grub.cfg, tetapi Anda juga perlu (kembali) menjalankan grub-install(atau grub-setup?) Untuk memperbarui MBR / sektor boot dengan info dasar - di mana partisi untuk menemukan grub.cfgfile & rupanya modul-modul ini.

mmaruska
sumber
4

Ketika Anda mendapatkan prompt penyelamatan GRUB, itu berarti bootloader GRUB tidak dapat menemukan modul-modulnya dari partisi yang memuatnya /boot/grub. Alasan untuk ini adalah bahwa kode yang cocok dengan catatan MBR drive kecil, dan jadi tujuan utamanya adalah untuk menemukan dan memuat sisa kode bootloader. Setelah memuat modul-modulnya, ia dapat menyajikan menu GRUB dan menangani sisa proses booting. Jika tidak dapat menemukan modul, ia menampilkan prompt penyelamatan yang sangat terbatas.

Jadi, apa yang Anda lihat benar-benar normal jika Anda melakukan partisi ulang, sehingga melanggar referensi bootloader ke partisi yang berisi modul-modul boot.

Karena Anda dapat mem-boot secara manual, perbaikan paling sederhana adalah dengan mem-boot secara manual dan menginstal ulang bootloader di MBR sehingga memiliki referensi yang benar untuk partisi Anda. Cara untuk melakukannya adalah:

sudo grub-install /dev/sda

Ini mengasumsikan Anda boot dari /dev/sda(kebanyakan kasus, tetapi jika tidak, ganti dengan drive yang benar).

Solusi ini jauh lebih sederhana daripada menggunakan boot-repair, tetapi jika Anda tidak yakin ini mungkin lebih cocok.

bcbc
sumber
1
+1 untuk menjelaskan apa yang terjadi dalam istilah yang mudah dipahami.
monotasker
2

Cara paling sederhana adalah:

sudo apt-get purge grub-pc grub-pc-bin

Kemudian:

sudo apt-get install grub-pc grub-pc-bin
hyao
sumber
2
Ini adalah pendekatan palu godam yang kemungkinan akan berhasil, tetapi lebih mudah hanya menginstal ulang bootloader untuk memperbarui referensi ke partisi (yang telah rusak karena melakukan partisi ulang).
bcbc
1

Memecahkan kasus utama kegagalan penyelamatan grub: masalah: 1. i386-pc tidak ditemukan **** mode normal tidak bekerja cp tidak bekerja search.file tidak bekerja . Semua dapat diselesaikan dengan perintah berikut, Bekerja dengan Ubuntu 18.04 juga. Langkah 1: Temukan direktori root yang berisi direktori.

ls

Misalnya, jika folder root ada di (hd0, gpt4), maka ketikkan

ini adalah tampilannya

ls (hd0, 4)/

Anda akan melihat beberapa file atau folder:

file root saya ada di (hd0, gpt4)

Sekarang jika Anda beruntung maka lakukan hal berikut:

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

Jika Anda beruntung maka itu akan menyelesaikan masalah Anda. Kadang-kadang orang memiliki masalah seperti tidak dapat menemukan folder 1386-pc. Dalam hal ini Anda harus melihat di mana folder grub Anda. Jika Anda memiliki masalah seperti:

boot / grub / i386-pc / normal.mod tidak ditemukan

Dalam hal ini, Anda perlu menemukan folder grub2. Jika Anda memiliki grub2 dan di dalam folder itu Anda bisa memiliki folder i386-pc Anda. Maka Anda perlu mengetik

prefix=(hd0, 4)/grub2/

ini akan bekerja. Jika Anda tidak memiliki grub2 dan tidak dapat menemukan folder i386-pc maka lakukan hal berikut:

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

setelah menjalankan perintah ini, mode penyelamatan grub Anda akan masuk ke menu grub . Sekarang Anda dapat menjalankan perintah linux.

perintah linux

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

Ini akan membawa Anda ke mode pemulihan. Dari sana Anda dapat memilih dari beberapa opsi pemulihan yang tersedia. Jika tidak membantu maka Anda perlu mengunduh os ubuntu, misalnya ubuntu 18.04. Anda dapat mengunduh dari tautan berikut: tautan ubuntu

Buat drive yang dapat di-boot dan buka komputer Anda dengan live disk itu. Itu tidak akan membahayakan dokumen Anda. Lihat video tentang cara melakukannya. Sekarang Anda harus menemukan folder i386-pc Anda. Itu akan masuk

rootContainingDirectory-usr-lib-grub

Sekarang salin i386-pc ke boot / grub / folder. Anda mungkin memiliki masalah izin untuk mengatasinya ketik perintah berikut:

sudo nautilus

Sekarang klik kanan pada direktori itu dan ubah pemilik menjadi pengguna sesi langsung ubuntu

ikuti video: perubahan izin

Sekarang setelah Anda menempelkannya di folder boot / grub restart dan lepaskan drive usb. Kali ini menggunakan set perintah 1, itu akan berhasil. Jika perintah cp berfungsi maka Anda dapat melakukan ini dari menu grub juga.

Sanat
sumber