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の起動エラーを修正する方法を学びました。 読んでいただきありがとうございます。以下のコメントセクションに提案を残してください。