「設定 - ブートローダ」の版間の差分

ナビゲーションに移動 検索に移動
122行目: 122行目:
この時、以下に示す手順を行うことにより、GRUB2のブートメニューのエントリを復旧することができる。<br>
この時、以下に示す手順を行うことにより、GRUB2のブートメニューのエントリを復旧することができる。<br>
<br>
<br>
# 各LinuxディストリビューションのライブUSBを準備する。
===== 方法 1 : chrootの使用 =====
# ライブUSBからLinuxを起動する。<br>
各LinuxディストリビューションのライブUSBを準備する。<br>
# ターミナルを開いて、既存のLinuxのインストール先パーティションをマウントする。
ライブUSBからLinuxを起動する。<br>
#: ※Xは、既存のLinuxがインストールされているストレージ番号を指定する。
#: ※Yは、既存のLinuxがインストールされているGRUB2ブートローダのパーティション番号を指定する。
#: <pre>sudo mount /dev/sdXY /mnt</pre>
# 必要なディレクトリをバインドマウントする。
#: <syntaxhighlight lang="sh">for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done</syntaxhighlight>
# chroot環境に入る。
#: <pre>sudo chroot /mnt</pre>
# GRUB2を再インストールする。
#: ※Xは、既存のLinuxがインストールされているストレージ番号を指定する。
#: <pre>grub-install /dev/sdX</pre>
# GRUB2の設定ファイルを更新する。
#: <pre>update-grub</pre>
# chroot環境を終了する。
#: <pre>exit</pre>
# マウントを解除する。
#: <pre>sudo umount /mnt/sys /mnt/proc /mnt/run /mnt/dev /mnt</pre>
# PCを再起動して、GRUB2のブートメニューが表示されるかどうかを確認する。
<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>

案内メニュー