Linux で Grub ブートローダーを復元する方法

Linux で Grub ブートローダーを復元する方法

GNU Grand Unified Bootloader (GRUB) は、マザーボードの BIOS をオペレーティング システムのカーネルにリンクする強力で柔軟なユーティリティです。マザーボードのメモリに小さなプログラムをロードすることで機能し、それを使用してより大きなマルチブート バイナリをブートストラップします。

ただし、GNU GRUB がオペレーティング システムのカーネルのロードに失敗する場合があります。たとえば、Linux と Windows のデュアル ブート セットアップでは、多くの場合、後者が GNU ブートローダーを一掃します。このチュートリアルでは、いくつかの最も一般的な Linux ディストリビューションを使用して GRUB を再インストールすることにより、システムを回復する方法を示します。

Ubuntu および Debian での GRUB の復元

Ubuntu と Debian に GNU GRUB を再インストールする最も簡単な方法の 1 つは、いずれかのディストリビューションのライブ コピーを起動することです。これにより、システムのルート パーティションをマウントし、ライブ ディストリビューションの GRUB バイナリを使用してシステムのブートローダーを再作成できます。

Ubuntu Live のウェルカム画面を表示しているウィンドウ。
  • ライブ ディストリビューション環境でターミナルを開きます。
Ubuntu Live 環境のスクリーンショット。
  • システムのルート パーティションのデバイス名を見つけます。これを行うには、次のコマンドを実行します。

sudo fdisk -l | grep "Linux filesystem$"

マシンの現在のルート ファイルシステムを表示するウィンドウ。
  • システムのルート パーティションをライブ ディストリビューションの「/mnt」ディレクトリにマウントします。

sudo mount /dev/sda1 /mnt

ライブ セッション内でルート パーティションがマウントされていることを示すウィンドウ。
  • GRUB バイナリを再インストールします。

sudo grub-install --force --boot-directory=/mnt/ /dev/sda1

Ubuntu の GRUB 再インストール プロセスを示すウィンドウ。
  • PC をシャットダウンします。USB ドライブを取り外し、再度起動します。Linux OS が起動するはずです。
  • システムの GRUB 構成ファイルを更新して、マシンの現在の状態を反映させます。

sudo update-grub

Ubuntu の GRUB 更新プロセスを示すウィンドウ。

Arch Linux で GRUB を復元する

Ubuntu と Debian 以外に、 Arch Linuxのライブ コピーを使用してブートローダーを復元することもできます。これの利点の 1 つは、ライブの Arch Linux はグラフィック表示に依存しないため、ヘッドレス マシンでも SSH 経由で GRUB を簡単に復元できることです。

ライブの Arch Linux 環境を示すスクリーンショット。
  • lsblkを使用して、システムのルート パーティションを特定します。

lsblk

現在のセッションで使用可能なすべてのパーティションを示すスクリーンショット。
  • ルート ディレクトリをライブ環境にマウントします。

mount /dev/sda1 /mnt

  • Live システムのプロセスをシステムのルート ディレクトリにバインドします。

mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /run /mnt/run
mount --bind /dev /mnt/dev

特殊ファイルをマウントするプロセスを示すスクリーンショット。
  • 現在のセッションのルートをシステムに変更します。

chroot /mnt /bin/sh -i

  • 次のコマンドを実行して、システムのブートローダー バイナリを再インストールします。

/sbin/grub-install --target=i386-pc /dev/sda

Arch Linux での GRUB の再インストール プロセスを示すウィンドウ。
  • システムの GRUB 構成ファイルをリロードします。

/sbin/grub-mkconfig > /boot/grub/grub.cfg

  • Ctrl+を押して、Dシステムのルートからログアウトします。
システムの GRUB 構成を再作成する grub-mkconfig プログラムを示すスクリーンショット。
  • システムを再起動して、新しいブートローダーをテストします。

reboot

Arch Linux の再起動コマンドを示すスクリーンショット。

Fedora での GRUB の復元

Ubuntu や Debian と同様に、Fedora での Grub の復元も同様に簡単です。

デフォルトの Fedora ライブ セッションのスクリーンショット。
  • マシンのルート パーティションを見つけます。

sudo fdisk -l | grep "Linux filesystem$"

ライブ セッションの Linux ファイル システム パーティションを示すウィンドウ。
  • システムのルート パーティションをマウントし、それとライブ セッションの間にバインド マウントを作成します。

sudo mount /dev/sda3 /mnt
sudo mount --bind /sys /mnt/root/sys
sudo mount --bind /proc /mnt/root/proc
sudo mount --bind /run /mnt/root/run
sudo mount --bind /dev /mnt/root/dev

  • ルート ファイルシステムを「/mnt」ディレクトリに移動します。

sudo chroot /mnt/root bashmount /dev/sd3 /mount /dev/sda2 /boot

Fedora の chroot と追加のマウントを示すウィンドウ。
  • システム内の既存のブートローダー構成ファイルをすべて削除します。

rm -f /etc/grub.d/*rm -f /etc/sysconfig/grub

デフォルトの GRUB ファイルの削除プロセスを示すウィンドウ。
  • システムの新しい GRUB 構成ファイルを作成します。

grub2-mkconfig -o /boot/grub2/grub.cfg

  • GRUB をマシンのブート パーティションにインストールします。

grub2-install --target=i386-pc /dev/sda

Fedora の GRUB 再インストール プロセスを示すウィンドウ。

参考までに: Systemd-boot は、Linux 用の次世代ブートローダー バイナリです。それが特別な理由と、systemd-boot が由緒ある GRUB に対してどのようにスタックするかを学びます。

よくある質問

システムが LVM を使用している場合、GRUB を復元することはできますか?

はい。システムが LVM を使用している場合でも、GRUB を復元できます。これを行うには、 を実行して、ls /dev/mapper/*--vg-rootマシンのルート パーティションの絶対ファイル パスを特定します。従来の「/dev/sda1」ではなく、この絶対パスを使用してください。

GRUB を復元すると、ディスク内の他のオペレーティング システムが消去されますか?

いいえ。ブートローダーは、設計上、オペレーティング システムのカーネルの最初の数バイトを見つける場所しか認識していません。ブートローダーを交換しても、ディスク上の既存のオペレーティング システムには影響しません。

GRUB を UEFI システムに再インストールすることはできますか?

はい。これを行うには、UEFI システムの「/boot/efi」パーティションが正しくマウントされていることを確認する必要があります。--boot-directoryまた、フラグの値をgrub-install「/boot/efi」に変更する必要があります。

-oFedora の場合、フラグを「/boot/efi/EFI/fedora/grub.cfg」grub2-mkconfigに変更する必要もあります

画像クレジット: Unsplash . Ramces Redによるすべての変更とスクリーンショット。

  • フェイスブック
  • つぶやき

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です