'Grub kurtarma>' kazasından kurtarma [kapalı]


25

Originally AskUbuntu.com yayınlanan ...

AskUbuntu, EOL (Yaşam Sonu) sürümleriyle ilgili soruları kapatma politikasını benimsemiştir . Bunları da çıkarmak için bir ses şarta var. Bu popüler sorunun olası kaybını önlemek için (bugüne kadar 342335 kez izlendi), burada düzeltilmiş bir versiyonunu yerleştiriyorum. --- docsalvager

"Klasik" sistem ...

  • Puppy Linux 5.2.8 (Lucid) Ubuntu 10.04 (Lucid Lynx) 'e dayalı
  • GRUB 2 önyükleyici

GRUB 2 , içine birkaç *.moddosya (çekirdek modülü) yerleştirir /boot/grub. Bu dosyaların silinmesi (yanlış yerleştirilmiş ses dosyaları olduğunu düşünerek), yeniden başlatma ve istemde başarısızlıkla sonuçlandı grub rescue>.

Bu durumda nasıl kurtarılır?


1
Aptal bir soru gibi görünüyor .. Açıkçası ya silinmiş dosyaları yedekten geri yükleyin ya da grub yeniden yükleyin (ve zaten bunun nasıl yapılacağı hakkında birçok soru var)
psusi

Mutlak geçmiş görüntüleme istatistikleri, dünün gazetesininkilerle alakalı.
Anthon

Geçmişten gelen gazeteler sayısız suçu çözdü ve dünyayı daha iyi bir yer haline getiren çok sayıda problem çözmeden sorumluydu.
DocSalvager

Bana DVD'den kurtarma moduna geçmek ve oradan gruba yeniden yüklemek muhtemelen ideal olurdu. Bahsedilen veri kaybının paketteki dosyalar ile sınırlandırılması gerektiğinden çoğu insan için muhtemelen çok daha kolay.
Bratchley

Belirli dosyaları initrd'den çıkarmanın akıllıca olmadığını sanmıyorum. İnsanları şaşkına çevirmenin yardım edebileceğini düşünüyorum. Kurtarma / kurtarma moduna geçmek, daha yaygın bir işlemdir.
Bratchley

Yanıtlar:


43

Bu cevap, DocSalvager'ın cevabının işe yaramadığı başkaları içindir.

  1. DocSalvager'ın lsdoğru sabit sürücü bölümünü bulmak için kullanımını takip ettim . Benim durumumda öyleydi (hd0,msdos5).
  2. Sonra normal grub boot yükleyici ekranına geri dönmek için aşağıdaki komutları yürüttüm.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Ubuntu'ya başlattıktan sonra grubun önyükleyicisini terminaldeki aşağıdaki komutlarla tamir ettim.

    sudo grub-install /dev/sda 
    

Lütfen bu kaynağa bu sürecin görsel bir şekilde atılması için bakınız.


6
Bu kapanmadan önce gönderilenlere sevindim
smac89 14:15

2
Mükemmel - tam başlatmam gereken yardım! Daha sudo update-grubönce de koştum grub-install, çünkü bölüm düzenim değişmişti.
mwfearnley

insmod normalKomut ne kadar sürer? Enter tuşuna bastıktan sonra ubuntu kilitleniyor. Kuşkusuz, Oracle VirtualBox'ta VM olarak 'çalışıyor'.
00'de

1
Güncelleme: Sonunda geri geldi, error: failure reading sector 0x8019a4 from 'hd0'bu yüzden oldukça terminal sanırım!
00'de

efsanevi cevap!
zack

28

Bir grub kurtarma kazasından kurtulmak ...

  • grub rescue>desteklemiyorsa cd, cpya kendi varyasyon dışında başka dosya sistemi komutları lsgerçekten bir tür findkomuta.
  • İlk önce, bölümü ve diğer önyükleme görüntü dosyalarını /bootiçeren dizini bulmak zorunda kaldım vmlinuz...

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
    • ls bağımsız değişken olmadan bu sistemdeki dört bölümü döndürür.
    • ls (hd0,4)/boot/bootbölümünde bir dizin bulamaz (hd0,4).
    • ls (hd0,3)/boot/bootbölümünde bir dizin bulamaz (hd0,3).
    • ls (hd0,2)/boot/bootbölümdeki bir dizini bulur (hd0,2)ve vmlinuzistediğimiz bir ve diğer önyükleme görüntüsü dosyalarını içerir .
  • İstemden manuel olarak önyüklemek için grub rescue>...

    grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic  
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
    • Bölümdeki dizini rootkullanmak için ayarlayın ./boot(hd0,2)
    • Grub modülü yükleyin linux.
    • Çekirdek görüntüsünü kullanmak için bu modülü ayarlayın vmlinuz-2.6.32-33-generic.
    • Görüntüyü kullanmak için initrd (init RAM disk) olarak ayarlayın initrd.img-2.6.32-33-generic.
    • Linux'u başlatın.
  • Bu , tüm temel dosya sistemi komutlarını ( ve sonra bazılarını! ) İçeren bir BusyBox komut satırı istemine önyükleme yapar .

  • Sonra *.moddosyaları tekrar /boot/grubdizine taşıyabilir ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Başarılı Yeniden Başlatma!

Ayrıca bakınız ...



1
Vmlinuz, ... aradığınız önyükleme görüntüleri üst düzey kök dosya sisteminde olabilir, bu nedenle sadece eğik çizgi kullanmayı deneyin. Bu da üst düzey dizinleri gösterecektir. Önyükleme görüntüleri üst düzey kökte değilse, onları bulana kadar dizinlerden en umut verici olanı denemeye başlayabilirsiniz. Örneğin: ls (hd0,1)/, ls (hd0,2)/, ls (hd0,2)/initramfs/, vb ..
DocSalvager

Benim durumumda, çalıştırdıktan sonra ls (hd0,7)/bootgösterir attempt to read or write outside of disk 'hd0'.
papatya

Hd0 sürücüsünde 7'den az bölüm var. Ayrıca sürücüde herhangi bir bölümün parçası olmayan ayrılmamış bir alan olabilir.
DocSalvager

1
İnsmod linux'u çalıştırmadan önce / boot / grub önekini ayarlamak zorunda kaldım!
Emil
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.