ブートの問題を修正するためのGrubレスキューコマンド

GRUBは Gランド Unified Bootloader。 これは、コンピュータの起動時に実行される最初のソフトウェアプログラムです。 ブートローダーは、オペレーティングシステムカーネルのロードと起動を担当します。 GRUBは、Linuxカーネルベースのオペレーティングシステムのデフォルトのブートローダーです。

場合によっては、LinuxとWindowsの両方を同じマシン(ラップトップまたはPC)で実行する必要があり、GRUBでいくつかの問題が発生する可能性があります。 にとって example、Linuxのインストール後にWindowsをインストールすると、WindowsはMBR(マスターブートレコード)で独自のブートローダーを開始します。 そのため、GRUBは使用できなくなり、LinuxOSを起動できなくなります。

このチュートリアルでは、GRUBを起動できなくするいくつかのシナリオと、LinuxOSを起動から救うためにGRUBコマンドを使用する方法について説明します。

grubレスキューコマンドはいつ使用されますか?

現在、ほとんどのLinuxシステムはGRUB2(grubバージョン2)を使用しています。 GRUB2は、GRUBブートローダーの代替品です。

GRUBがgrubフォルダーを見つけられない場合、または内部のコンテンツが破損している場合、GRUBプロンプトは次のようになります。

error: no such partition.
grub rescue > _

また

error: unknown filesystem.
grub rescue > _

また

grub > _

このエラーにより、オペレーティングシステムを起動できなくなります。 次のセクションでは、この問題を解決する方法について説明します。

General Node: Getting into grub mode is general a very common issue when you do a dual boot. Most of the time the fix is to boot using Live USB and chroot into your installed system, then use os-prober and grub install

Grubレスキューコマンド

GRUBに失敗した各モードは、grubターミナルまたはライブCDインストーラーで修正できます。

grubコマンドプロンプトで「ls」と入力して、ディスクドライブと使用可能なパーティションを確認します。

grub > ls
(hd0) (hd0,msdos2) (hd0,msdos1)
grub > _

どこ:

hd0:ハードディスク

msdos:パーティションタイプ

通常、OSはハードディスクの最初のパーティションから起動されます。 この場合、起動可能なパーティションが「msdos1」であることを確認するには、次のコマンドを実行してみましょう。

grub > ls (hd0,msdos1)/

次に、以下を実行してgrub2ディレクトリを調べてみましょう。

grub > ls (hd0,msdos1)/grub2

出力:

device.map  fonts  grub.cfg  grub.cfg.1590068449.rpmsave  grubenv  i386-pc  locale

ご覧のとおり、Linuxのgrubには独自の構成ファイル ‘grub.cfg’があります。

このファイルが表示されない場合は、次のコマンドを実行して作成できます。

grub2-mkconfig

システムを起動するには、次のように入力します。

grub > set root=(hd0,msdos1)

出力:

linux (hd0,msdos1)/vmlinuz-3.10.0-1127.13.1.el7.x86_64 root=/dev/sda1

‘set root’を実行すると、起動可能なパーティションが定義されます。 デフォルトのカーネルはlinuxv3.10です。

次に、grub2ディレクトリへのパスを定義する必要があります。

grub > set prefix=(hd0,msdos1)/grub2
grub > insmod normal

それで:

initrd (hd0,msdos1)/initramfs-3.10.0-1127.13.1.el7.x86_64.img

ここでも、パーティションをブートパーティションに変更する必要があります。

システムを起動できない場合(ファイルシステムの不良またはGRUB構成ファイルの欠落が原因である可能性があります)、他のメディアから起動する必要があります。 可能であれば、起動可能なレスキューCDまたはディストリビューションのLiveCDを使用できます。

システムを起動した後、欠落している場合や構成が間違っている場合は、GRUB構成ファイルを作成する必要がある場合があります。 これらの構成ファイルを作成するには、次のコマンドを実行します。

$ update-grub

このコマンドにはスーパーユーザー権限が必要です。 したがって、rootとしてこのコマンド(およびこの記事の次のコマンド)を実行します。

次のステップは、MBRにGRUBをインストールすることです。 これにより、Linux上にWindowsをインストールした後、WindowsがMBRにブートローダーをインストールするというWindowsによって引き起こされる問題が修正されます。 ここでは、LiveCDまたはレスキューCDから起動したと仮定します。

ここで、MBRへのGRUBのインストールの詳細に進む前に、Linuxのルートパーティションをマウントする必要があります。

$ sudo mount /dev/sda1 /mnt

ここでは、ルートパーティションは「/ dev / sda1」であると想定されています。 このパーティションは/ mntディレクトリにマウントされます。 独自のマウントポイントを選択でき、ルートファイルシステムパーティションは異なる場合があります。

これで、GRUBをインストールする準備が整いました。 次のコマンドを実行します。

$ sudo grub-install --root-directory=/mnt/ /dev/sda

これにより、マスターブートレコードにGRUBがインストールされます。 あるパーティションにインストールする場合は、上記のコマンドの最後の引数を適切なパーティションに置き換えてください。

ブート修復によるGrubレスキュー

UbuntuとほとんどのLinuxディストリビューションのgrubを救済する別の方法は、ブート修復ツールを使用することです。 これは、数回クリックするだけでGrub2ブートローダーを修復できるグラフィカルユーティリティです。

ライブUSB / DVDインストーラーを準備し、ライブLinux環境で起動する必要があります。 次に、ライブOSをインターネットに接続し、次のコマンドを実行してboot-repairをインストールします。

$ sudo add-apt-repository -y ppa:yannubuntu/boot-repair
$ sudo apt-get update
$ sudo apt-get install -y boot-repair && boot-repair

ブート修復ツールが起動し、[修復を推奨]ボタンを選択し、次の手順に従ってブートローダーを修復できます。

結論

このチュートリアルでは、grubrescueコマンドを使用してOSの起動エラーを修正する方法を学びました。 読んでいただきありがとうございます。以下のコメントセクションに提案を残してください。