web-dev-qa-db-ja.com

GRUBレスキュープロンプト、修理GRUB

最近、HDDのパーティションを変更しましたが、システムのGRUBが破損しています。ブート時にGRUBレスキュープロンプトが表示され、通常のブートを行うには次の手順を実行する必要があります。

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

(これらのステップは、こちらの別の投稿で見つかりました!)。

ブートごとにこれを繰り返すことにうんざりしています。GRUBを永続的に修正するにはどうすればよいですか?

30
user85877

GRUBレスキューを修正するには、次の手順を実行します。

  • まず最初に、grubを修正してからOSを起動する必要があります。

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

    このようなエラーが最初に表示されたら、「Filesystem」が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 
    

これが私たちのドライブです。どちらがext2かを確認する必要があります。

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

「Filesystem is 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

今パスを設定します

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Ubuntuで次のコマンドを実行してgrubを修正します。

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

oSへのログイン後にgrubを更新する必要があることを確認してください

11
Roshan Sherkure

update-grub/grub.confを再度ビルドするために、grub.cfgを実行してみます。

grub-installを使用して試すこともできますが、これは役に立たないと思います。

さらに読みたい場合は、まず実行しているバージョン(GRUB 1または2)を確認してください。

dpkg -l | grep grub

GRUB 2がある場合は、次のチュートリアルを使用できます。 http://www.dedoimedo.com/computers/grub-2.html

もちろん、GRUBは慎重に扱う必要があります。これは、敏感なメカニズムであるブートプロセスについて説明しているためです。

7
idgar

update-grubgrub.cfgをアセンブルするようですが、MBR /ブートセクターを更新するには、grub-install(またはgrub-setup?)を(再)実行する必要もあります。基本情報-grub.cfgファイルと明らかにこれらのモジュールを見つけるパーティション。

6
mmaruska

GRUBレスキュープロンプトが表示された場合、GRUBブートローダーは、/boot/grubに含まれているパーティションからモジュールを見つけることができません。この理由は、ドライブに収まるコード MBR レコードが小さいため、その主な目的はブートローダーコードの残りを見つけてロードすることです。モジュールをロードすると、GRUBメニューを表示し、残りのブートプロセスを処理できます。モジュールが見つからない場合、非常に限定的なレスキュープロンプトが表示されます。

したがって、パーティションを再分割した場合、表示されている内容はまったく正常です。これにより、ブートローダがブートモジュールを含むパーティションへの参照を破壊します。

手動で起動できるため、最も簡単な修正方法は、MBRにブートローダーを手動で起動して再インストールし、パーティションへの正しい参照を取得することです。その方法は次のとおりです。

Sudo grub-install /dev/sda

これは、/dev/sdaから起動することを前提としています(ほとんどの場合、ただしそうでない場合は、正しいドライブに交換してください)。

このソリューションはboot-repairを使用するよりもはるかに簡単ですが、確信が持てない場合はこれが適している可能性があります。

4
bcbc

最も簡単な方法は次のとおりです。

Sudo apt-get purge grub-pc grub-pc-bin

次に:

Sudo apt-get install grub-pc grub-pc-bin
2
hyao

GRUBレスキュー失敗の究極のケースを解決してください:問題:1。i386-pc not found **** normal mode not workingcp not workingsearch.fileが機能しない。すべては、Ubuntu 18.04でも動作する次のコマンドで解決できます。ステップ1:ディレクトリを含むルートフォルダを見つけます。

ls

たとえば、ルートフォルダーが(hd0、gpt4)にある場合、次のように入力します。

this is how it looks

ls (hd0, 4)/

いくつかのファイルまたはフォルダーが表示されます。

my root file is in (hd0, gpt4)

運がよければ、次の手順を実行します。

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

運が良ければ、それはあなたの問題を解決します。 1386-pcフォルダが見つからないなどの問題が発生する場合があります。その場合、grubフォルダーの場所を確認する必要があります。次のような問題がある場合:

boot/grub/i386-pc/normal.mod not found

この場合、grub2フォルダーを見つける必要があります。 grub2があり、そのフォルダー内にi386-pcフォルダーがある場合があります。次に、入力する必要があります

prefix=(hd0, 4)/grub2/

それが動作します。 grub2がなく、i386-pcフォルダーが見つからなかった場合は、次を実行します。

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

このコマンドを実行すると、grubレスキューモードはgrubメニューに移動します。これで、linuxコマンドを実行できます。

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

リカバリモードになります。そこから、いくつかの利用可能な回復オプションから選択できます。解決しない場合は、ubuntu 18.04など、ubuntu osをダウンロードする必要があります。次のリンクからダウンロードできます。 buntu link

起動可能なドライブを作成し、そのライブディスクでコンピューターを開きます。それはあなたの文書を傷つけません。その方法に関するビデオを参照してください。ここで、i386-pcフォルダーを見つける必要があります。になります

rootContainingDirectory-usr-lib-grub

I386-pcをboot/grub /フォルダーにコピーします。次のコマンドを入力して、そのタイプを克服する許可の問題がある可能性があります。

Sudo nautilus

そのディレクトリを右クリックして、所有者をubuntuライブセッションユーザーに変更します

ビデオに従ってください: 許可の変更

Boot/grubフォルダに貼り付けた後、再起動してusbドライブを削除します。今回は、コマンドの1番目のセットを使用します。 cpコマンドが機能している場合は、grubメニューからも実行できます。

1
Sanat