最近、HDDのパーティションを変更しましたが、システムのGRUBが破損しています。ブート時にGRUBレスキュープロンプトが表示され、通常のブートを行うには次の手順を実行する必要があります。
set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal
(これらのステップは、こちらの別の投稿で見つかりました!)。
ブートごとにこれを繰り返すことにうんざりしています。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を更新する必要があることを確認してください
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は慎重に扱う必要があります。これは、敏感なメカニズムであるブートプロセスについて説明しているためです。
update-grub
はgrub.cfg
をアセンブルするようですが、MBR /ブートセクターを更新するには、grub-install
(またはgrub-setup
?)を(再)実行する必要もあります。基本情報-grub.cfg
ファイルと明らかにこれらのモジュールを見つけるパーティション。
GRUBレスキュープロンプトが表示された場合、GRUBブートローダーは、/boot/grub
に含まれているパーティションからモジュールを見つけることができません。この理由は、ドライブに収まるコード MBR レコードが小さいため、その主な目的はブートローダーコードの残りを見つけてロードすることです。モジュールをロードすると、GRUBメニューを表示し、残りのブートプロセスを処理できます。モジュールが見つからない場合、非常に限定的なレスキュープロンプトが表示されます。
したがって、パーティションを再分割した場合、表示されている内容はまったく正常です。これにより、ブートローダがブートモジュールを含むパーティションへの参照を破壊します。
手動で起動できるため、最も簡単な修正方法は、MBRにブートローダーを手動で起動して再インストールし、パーティションへの正しい参照を取得することです。その方法は次のとおりです。
Sudo grub-install /dev/sda
これは、/dev/sda
から起動することを前提としています(ほとんどの場合、ただしそうでない場合は、正しいドライブに交換してください)。
このソリューションはboot-repair
を使用するよりもはるかに簡単ですが、確信が持てない場合はこれが適している可能性があります。
最も簡単な方法は次のとおりです。
Sudo apt-get purge grub-pc grub-pc-bin
次に:
Sudo apt-get install grub-pc grub-pc-bin
GRUBレスキュー失敗の究極のケースを解決してください:問題:1。i386-pc not found **** normal mode not workingcp not workingsearch.fileが機能しない。すべては、Ubuntu 18.04でも動作する次のコマンドで解決できます。ステップ1:ディレクトリを含むルートフォルダを見つけます。
ls
たとえば、ルートフォルダーが(hd0、gpt4)にある場合、次のように入力します。
ls (hd0, 4)/
いくつかのファイルまたはフォルダーが表示されます。
運がよければ、次の手順を実行します。
set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal
運が良ければ、それはあなたの問題を解決します。 1386-pcフォルダが見つからないなどの問題が発生する場合があります。その場合、grubフォルダーの場所を確認する必要があります。次のような問題がある場合:
この場合、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コマンドを実行できます。
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メニューからも実行できます。