12,964
回編集
(→GRUB2) |
|||
122行目: | 122行目: | ||
この時、以下に示す手順を行うことにより、GRUB2のブートメニューのエントリを復旧することができる。<br> | この時、以下に示す手順を行うことにより、GRUB2のブートメニューのエントリを復旧することができる。<br> | ||
<br> | <br> | ||
===== 方法 1 : chrootの使用 ===== | |||
各LinuxディストリビューションのライブUSBを準備する。<br> | |||
ライブUSBからLinuxを起動する。<br> | |||
<br> | <br> | ||
ターミナルを開いて、既存のLinuxのインストール先パーティションをマウントする。<br> | |||
※Xは、既存のLinuxがインストールされているストレージ番号を指定する。 | |||
※Yは、既存のLinuxがインストールされているGRUB2ブートローダのパーティション番号を指定する。 | |||
sudo mount /dev/sdXY /mnt | |||
<br> | |||
必要なディレクトリをバインドマウントする。<br> | |||
<syntaxhighlight lang="sh"> | |||
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done | |||
</syntaxhighlight> | |||
<br> | |||
chroot環境に入る。<br> | |||
sudo chroot /mnt | |||
<br> | |||
GRUB2を再インストールする。<br> | |||
※Xは、既存のLinuxがインストールされているストレージ番号を指定する。 | |||
grub-install /dev/sdX | |||
# または | |||
grub2-install /dev/sdX | |||
<br> | |||
GRUB2を更新する。<br> | |||
update-grub | |||
<br> | |||
chroot環境を終了する。<br> | |||
exit | |||
<br> | |||
マウントを解除する。<br> | |||
sudo umount /mnt/sys /mnt/proc /mnt/run /mnt/dev /mnt | |||
<br> | |||
PCを再起動して、GRUB2のブートメニューが表示されるかどうかを確認する。<br> | |||
<br> | |||
===== 方法 2 : efibootmgrの使用 ===== | |||
各LinuxディストリビューションのライブUSBを準備する。<br> | |||
ライブUSBからLinuxを起動する。<br> | |||
<br> | |||
現在のブートエントリを確認して、現在の/boot/EFIディレクトリに何が登録されているかを確認する。<br> | |||
例えば、"sles"は存在しているが、"sles-secureboot"は他のOSにより削除されている等。<br> | |||
sudo efibootmgr -v | |||
<br> | |||
/boot/efi/EFIパーティション (Linux EFIパーティション) を確認する。<br> | |||
これは、<u>Type: EFI System</u>と表示されている場合が多い。<br> | |||
例えば、NVMe SSDを使用している場合は、/dev/nvme1n1p6 (NVMe SSDの6番目のパーティション) 等と表示される。<br> | |||
sudo fdisk -l | |||
<br> | |||
UEFIブートエントリを復元する。<br> | |||
ストレージ (-dオプション) および パーティション (-pオプション) を付加する。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>32bit OSの場合は、ブートローダファイルは<u>GRUB.EFI</u>という<u>X64</u>が除外されたファイル名となる。</u><br> | |||
sudo efibootmgr -c -w \ | |||
-L "<ブートディレクトリ名>" \ | |||
-d <パーティション名> | |||
-l "<ブートローダファイル>" | |||
# セキュアブートが有効の場合 | |||
sudo efibootmgr -c -w \ | |||
-L "sles-secureboot" \ | |||
-d /dev/nvme1n1 -p 6 \ | |||
-l "/EFI/SLES/SHIM.EFI" | |||
# セキュアブートが無効の場合 | |||
sudo efibootmgr -c -w \ | |||
-L "<>" \ | |||
-d <パーティション名> \ | |||
-l "<64bitの場合 : /EFI/SLES/GRUBX64.EFI, 32bitの場合 : /EFI/SLES/GRUB.EFI>" | |||
<br> | |||
システムの再起動後に、現在のブートエントリを確認する。<br> | |||
sudo efibootmgr -v | |||
<br> | |||
これにより、UEFIファームウェアはLinuxシステムを見つけることができる。<br> | |||
<br> | |||
==== Winodwsのブートエントリ ==== | ==== Winodwsのブートエントリ ==== | ||
デュアルブートをしている場合、Linuxのインストール・アップデートにより、Winodwsのブートメニューが表示されない場合がある。<br> | デュアルブートをしている場合、Linuxのインストール・アップデートにより、Winodwsのブートメニューが表示されない場合がある。<br> |