Grub kurtarma istemi, onarım grub


30

Geçenlerde HDD'mi yeniden bölümledim ve sistemimde GRUB'a hasar verdim. Açılışta GRUB kurtarma istemini alıyorum ve normal şekilde önyükleme yapmak için aşağıdaki adımları izlemem gerekiyor:

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

(Bu adımlar burada başka bir yazı üzerine bulundu!).

Bunu her açılışta tekrarlamaktan çok yoruldum, GRUB'u kalıcı olarak nasıl düzeltirim?


1
İki olasılık: (1) Önyükleme Onarımı (2) Süper Grub Kurtarma Diski Bkz .: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA

1
Önyükleme sorusunda listelenen adımlar benim için çalıştı. Biri linux'un bölümlerini doğru bir şekilde hatırlamalı.
TheCrazyProgrammer

1
Diğerlerinin dediği gibi grub-grub güncellemesinin ardından grub-install / dev / sda problemi çözüyor.
TheCrazyProgrammer

Bkz Karthik 'la cevap 'dosyasında bulunamadı': askubuntu.com/questions/443241/...
Samis

Yanıtlar:


11

Grub kurtarmasını düzeltmek için aşağıdaki adımları izleyin:

  • İlk olarak, işletim sistemimizi ancak grubum düzeltildikten sonra başlatmak zorundayız.

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

    Böyle bir hatayı ilk gördüğünüzde “Dosya sistemi” olup olmadığını kontrol etmeliyiz. 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 

bu bizim sürücülerimiz şimdi hangisinin ext2 olduğunu kontrol etmek zorundayız.

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

“Dosya sistemi ext2” olana kadar başka bir sürücüye gidin.

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

şimdi yolu ayarla

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Şimdi herhangi bir Ubuntu'da komutu izleyerek grub'u düzeltin

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

OS'ye giriş yaptıktan sonra grub'u güncellemelisiniz emin olun


1
OP zaten işletim sistemine nasıl başlayacağını biliyor. Bu cevap daha kısa olabilirdi.
Elder Geek,

1
Bu cevap bana yardımcı oldu. Benim sorunum orijinal soru ile tam olarak aynı değildi, bu yüzden ek bilgi yararlı oldu.
retroj,

1
+1 Bu, başarısız bir KDE Neon kurulumundaki sorunlarla giderildi.
Darren Lewis,

hata: dosya '/boot/grub/i386-pc/normal.mod' bulunamadı. Ne yapmalıyım?
BhushanDhamale

7

Koşuyorum çalışacaktı update-grubyapı için grub.conf/ grub.cfgtekrar.

Ayrıca kullanmayı deneyebilirsiniz grub-install, ancak bence bu bir işe yaramayacak.

Daha fazla okumak istiyorsanız, ilk önce hangi sürüme sahip olduğunuzu (GRUB 1 veya 2) çalıştırarak kontrol edin:

dpkg -l | grep grub

GRUB 2'niz varsa aşağıdaki öğreticiyi kullanabilirsiniz: http://www.dedoimedo.com/computers/grub-2.html

Elbette hassas bir mekanizma olan boot sürecinden bahsederken GRUB ile ilgilenirken dikkatli olun.


2
grub-install <correct-drive, i.e. /dev/sda>ve update-grub2nihayet benim için Ubuntu'da yaptı 15.04
Greg Kramida

6

Bana görünüyor update-grubaraya grub.cfg, ama aynı zamanda (yeniden) vadede gerek grub-install(veya grub-setuptemel bilgi ile MBR / boot sektörleri güncellemek için?) - bulmak için hangi bölümü üzerinde grub.cfgdosya ve görünüşe göre bu modülleri.


4

Bir GRUB kurtarma istemi aldığınızda, bu GRUB önyükleyicisinin modüllerini onları içeren bölümden bulamaması anlamına gelir /boot/grub. Bunun nedeni, sürücü MBR kaydına uyan kodun küçük olması ve bu nedenle temel amacı, bootloader kodunun geri kalanını bulmak ve yüklemek. Modüllerini yükledikten sonra GRUB menüsünü sunabilir ve önyükleme işleminin geri kalanını halledebilir. Modülleri bulamazsa, çok sınırlı bir kurtarma istemi sunar.

Yani, eğer yeniden bölümlendirirseniz, bu durumda bootloader'ın boot modüllerini içeren bölüme referansı kırmak tamamen normaldir.

El ile önyükleme yapabildiğiniz için en basit düzeltme, MBR'deki önyükleyiciyi el ile önyüklemek ve yeniden yüklemek, böylece bölümünüze doğru referansı vermektir. Bunu yapmanın yolu şudur:

sudo grub-install /dev/sda

Bu, önyükleme yaptığınızı varsayar /dev/sda(çoğu durumda, ancak değilse, doğru sürücüyle değiştirin).

Bu çözüm kullanmaktan çok daha kolaydır boot-repair, ancak emin değilseniz bu daha uygun olabilir.


1
Anlaması kolay terimlerle neler olduğunu açıklamak için +1.
monotasker

2

En basit yol şudur:

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

Sonra:

sudo apt-get install grub-pc grub-pc-bin

2
Bu, muhtemelen işe yarayacak olan bir balyoz yaklaşımıdır, ancak yalnızca bölümü yükleyen referansı güncellemek için yeniden yükleyiciyi yeniden yüklemek daha kolaydır (repartioning ile kırılmıştır).
bcbc

1

Grub kurtarma başarısızlığı nihai vakasını çözün: sorunlar: 1. i386-pc bulunamadı **** normal mod çalışmıyor cp çalışmıyor . Hepsi aşağıdaki komutlarla çözülebilir, Ubuntu 18.04 ile de çalışır. Adım 1: Dizini içeren kök klasörü bulun.

ls

Örneğin, kök klasör (hd0, gpt4) ise, yazın

bu nasıl görünüyor

ls (hd0, 4)/

Bazı dosya veya klasörleri göreceksiniz:

kök dosyam (hd0, gpt4) içinde

Şimdi eğer şanslıysanız aşağıdakileri yapın:

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

Şanslıysanız sorununuzu çözecektir. Bazen insanlar 1386-pc klasörünü bulamıyor gibi sorunları var. Bu durumda grub klasörünüzün nerede olduğuna bakmalısınız. Gibi bir sorun varsa:

boot / grub / i386-pc / normal.mod bulunamadı

Bu durumda, grub2 klasörünü bulmanız gerekir. Grub2'niz varsa ve o klasörün içinde i386-pc klasörünüzü kullanabilirsiniz. Sonra yazmanız gerekir

prefix=(hd0, 4)/grub2/

Çalışacak. Grub2'niz yoksa ve i386-pc klasörünü bulamadıysanız, aşağıdakileri yapın:

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

Bu komutu uyguladıktan sonra grub kurtarma modunuz grub menüsüne gider . Şimdi linux komutunu çalıştırabilirsiniz.

linux komutu

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

Sizi kurtarma moduna getirecektir. Oradan mevcut çeşitli kurtarma seçeneklerinden birini seçebilirsiniz. Eğer işe yaramazsa, bir ubuntu os indirmeniz gerekir, örneğin ubuntu 18.04. Aşağıdaki linkten indirebilirsiniz: ubuntu link

Önyüklenebilir bir sürücü yapın ve bilgisayarınızı bu canlı diskle açın. Belgelerinizin hiçbirine zarar vermez. Bunun nasıl yapılacağına ilişkin bir video izleyin. Şimdi i386-pc klasörünüzü bulmanız gerekiyor. İçinde olacak

rootContainingDirectory-usr-lib-grub

Şimdi i386-pc'yi boot / grub / klasörüne kopyalayın. Aşağıdaki komutu aşmak için izin probleminiz olabilir:

sudo nautilus

Şimdi bu dizine sağ tıklayın ve sahibini canlı oturum kullanıcısı ubuntu olarak değiştirin

videoyu izleyin: izin değişikliği

Şimdi boot / grub klasörüne yapıştırdıktan sonra yeniden başlatın ve usb sürücüyü çıkarın. Bu sefer ilk komut setini kullan, işe yarayacak. Eğer cp komutu çalışıyorsa, bunu grub menüsünden de yapabilirsiniz.

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.