web-dev-qa-db-ja.com

'grub rescue>'クラッシュからの回復

元はAskUbuntu.comに投稿されました...

AskUbuntuは終了のポリシーを採用しています EOL(サポート終了)バージョンに関する質問。それらを削除するためのボーカル条件も存在します。この人気のある質問(これまでのビュー数342335)が失われるのを防ぐために、改訂版をここに配置しています。 --- docsalvager

「クラシック」システム...

  • Ubuntu 10.04(Lucid Lynx)ベースのPuppy Linux 5.2.8(Lucid)
  • GRUB 2 ブートローダー

GRUB 2 はいくつかの*.modファイル(カーネルモジュール)/boot/grub。これらのファイルを削除すると(サウンドファイルが誤って配置されたと考えて)、再起動とプロンプトgrub rescue>

この状況で回復する方法は?

27
DocSalvager

grubレスキュークラッシュからの回復...

  • _grub rescue>_は、cdcp、または実際にはlsコマンドの一種であるfindの独自のバリエーションを除いて、他のファイルシステムコマンドをサポートしていません。
  • したがって、最初に、vmlinuzおよびその他のブートイメージファイルを含む_/boot_ディレクトリを含むパーティションを見つける必要がありました...

    _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は、このシステムの4つのパーティションを返します。
    • ls (hd0,4)/bootは、パーティション_/boot_で_(hd0,4)_ディレクトリを見つけられません。
    • ls (hd0,3)/bootは、パーティション_/boot_で_(hd0,3)_ディレクトリを見つけられません。
    • ls (hd0,2)/bootは、パーティション_/boot_で_(hd0,2)_ディレクトリを検索し、vmlinuzおよび必要なその他のブートイメージファイルを含みます。
  • _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  
    _
    • rootを設定して、パーティション_/boot_の_(hd0,2)_ディレクトリを使用します。
    • Grubモジュールlinuxをロードします。
    • カーネルイメージ_vmlinuz-2.6.32-33-generic_を使用するようにそのモジュールを設定します。
    • Initrd(ini​​t RAM disk)を設定して、イメージ_initrd.img-2.6.32-33-generic_を使用します。
    • Linuxを起動します。
  • これは、すべての基本的なファイルシステムコマンド(といくつかの)がある BusyBox コマンドラインプロンプトで起動します。

  • 次に、_*.mod_ファイルを_/boot/grub_ディレクトリに戻します...

    _busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    _
  • 再起動に成功しました!

も参照してください...

29
DocSalvager

この答えは、DocSalvagerの答えが機能しない他の人のためのものです。

  1. DocSalvagerでのlsの使用法に従って、正しいハードドライブパーティションを見つけました。私の場合は(hd0,msdos5)
  2. 次に、次のコマンドを実行して、通常のGRUBブートローダー画面に戻ります。

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Ubuntuで起動した後、ターミナルから次のコマンドを使用してgrubブートローダーを修復しました。

    Sudo grub-install /dev/sda 
    

このプロセスの視覚的なウォークスルーについては、 this source を参照してください。

43
Gibado