manual

Linux Mint 22でWindowsにインストールされたブートローダーGrubを修正・削除する方法

EFIパーティションのフラグを変更する①
この記事は約10分で読めます。

Windowsや他のドライブなどの指定のドライブ以外にLinux Mint22のブートローダーGrubがインストールされてしまった場合の修正・削除する方法について説明します。また、UEFIのメニュー表示から削除する方法も書いています。

他のドライブにインストールされたブートローダーを修正・削除する方法

前回の記事の続きになります。この記事では指定のドライブ以外にLinux Mint22のブートローダーがインストールされてしまった場合の修正方法について、WindowsのEFIパーティションにブートローダーがインストールされてしまったを例に説明します。Windows11 24H2、Linux Mint Cinnamon 22.1(Live起動)で検証しています。

Windows11 EFIパーティションのデフォルト構成

手順を説明する前にWindowsのEFIパーティションのデフォルトの状態を確認しておきましょう。下図はWindows11 24h2になります。「EFI」フォルダーの中に「Microsoft」フォルダーがあります。この「Microsoft」フォルダーはいじってはいけないやつです。

WindowsのEFIパーティションのデフォルトの状態

Linux Mint22のブートローダー構成

Linux Mint Cinnamon 22.1のブートローダー構成も確認しておきましょう。「EFI」フォルダーの中に「BOOT」フォルダーと「ubuntu」フォルダーがあり、その中にGrubの設定ファイルとUEFI認証キーのファイルが入っています。

Linux Mint22のEFIパーティション構成

他のドライブにインストールされたブートローダーを削除する

他のドライブにインストールされてしまった場合は以下の作業を行います。

  1. UEFIにエントリーされたLinux Mintメニューを削除する(Ubuntuを流用しているので「Ubuntu」というエントリ名になります)
  2. 他のドライブにインストールされたブートローダーを移動または削除する

①はUEFI上のブートメニューの表示になります。EFIパーティションにUEFI認証キーを置くとUEFIにエントリーされます。UEFIにエントリーされたブートメニューはブートローダーを削除してもずっと残ってしまうので削除します。先に②のブートローダーの移動を行うと下図のように同じ名前が2つエントリされてしまうので、作業する順番に気を付けてください。

Linuxx-Mint22のEFIブートメニュー

②の場合はブートローダーを移動する方法と削除する方法があります。削除する場合は順番が異なります。ブートローダーGrubだけを再インストールする方法もありますが、ここでは説明しません。一応両方書いておきますので、どちらを選んでも大丈夫です。

ブートローダーを移動する場合の手順 概要

  1. ブートローダーを他の場所に退避する
  2. UEFIエントリーを削除する
  3. 退避したブートローダーをインストールしたドライブのEFIに移動する

ブートローダーを削除する場合の手順 概要

  1. ブートローダーを削除する
  2. UEFIエントリーを削除する
  3. Linux Mint22の再インストール(必要に応じてドライブのフォーマットをする)

以降の手順では間違えるとWindowsが起動しなくなる操作が含まれます。リカバリメディアを用意しバックアップを取ってから自己責任で行ってください。一読して頂き分からない場合は行わないでください!

ブートローダーを移動する場合の手順

WindowsのEFIパーティションにインストールされてしまったLinux Mint22のブートローダーを移動し、UEFIエントリーを削除する方法を説明します。

ブータブルUSBのEFIパーティションにインストールされてしまった場合、既に「Boot」フォルダーが存在している可能性があり、Linux Mintに上書き(マージ)されているかもしれません。その場合は移動できません。その構成によりますが、ブータブルUSBは起動できないかもしれないのでその場合は再作成しましょう。UEFIエントリーのみ削除して(これはないかもしれない)、Linux Mintを再インストールした方がスッキリすると思います。

①WindowsのEFIパーティションをマウントする

「ディスク」アプリでWindowsのEFIパーティションをマウントします。(下図は前回の記事のを流用しているためWindowsパーティションではありません)

ディスクアプリでデバイスをマウント①

②Linux Mintのブートローダーを退避する

一旦、Linux MintのブートローダーをデスクトップやHomeフォルダーに移動します。

BOOT」フォルダーと「ubuntu」フォルダーを任意の場所に移動します。

下図のようになっていると思います。「Microsoft」フォルダーの中にも「BOOT」フォルダーがあるので間違えないように気を付けてください。

WindowsのEFIパーティションにLinux Mintのブートローダがインストールされる構成

③UEFIエントリーを削除する(1) ターミナルを起動する

ターミナルを起動します。

Linux Mint22のターミナルアイコン

④UEFIエントリを削除する(2) UEFIエントリーの確認

「efibootmgr」コマンドでUEFIのエントリ一覧を確認することができます。UEFIで無効にしてるエントリも表示されます。

下記のコマンドを入力して、Enterを押します。

ターミナルのコピペショートカットはWindowsとは異なります。複数行ペーストしても実行できます。

  • コピー:Ctrl + Shift + c
  • ペースト:Ctrl + Shift + v
sudo efibootmgr

以下のように一覧が表示します。(画像はUbuntuから行っていますがLinux Mintでも同じです)

UEFIエントリー一覧

「Boot000X」と書かれているブロックが1つのエントリになります。末尾4桁の数字は接続する度に変わるので注意して下さい。このUEFIエントリの場合は下記のようになっています。

「BootCurrent」は今起動しているOSになります。「0006」のUbuntuのブータブルUSBになります。Live起動で操作しているのでこのようになっています。

  1. Boot0000:Windows11
  2. Boot0001:IPv4ネットワーク接続
  3. Boot0002:IPv6ネットワーク接続
  4. Boot0003:なし
  5. Boot0004:なし
  6. Boot0005:Ubuntu(Linux Mint22のエントリ)
  7. Boot0006:UbuntuのブータブルUSB
  8. Boot0007:UbuntuのブータブルUSB

「Boot000X」の番号で削除するので、図のように範囲選択しておくと分かり易くなります。

⑤UEFIエントリを削除する(3) UEFIエントリの削除

「Ubuntu(Linux Mint22のエントリ)」を削除します。

下記コマンドを入力し、上記で調べた番号を入力しEnterを押します。

赤字は上記で調べた番号になります。ここでは「Boot0005」がLinux Mint22のエントリなので「0005」になります。

Enterを押したら削除されるので合っていることを確認して下さい

sudo efibootmgr -b 0005 -B

⑥UEFIエントリを削除する(4) UEFIエントリが削除されたか確認

「Ubuntu(Linux Mint22のエントリ)」が削除された事を確認します。

sudo efibootmgr

Boot0005」が一覧から削除されています。これで削除されました。

UEFIエントリー一覧(エントリー削除後)

⑦インストールしたドライブにブートローダーを置く(1)EFIパーティションをマウント

「ディスク」アプリからインストールしたドライブのEFIパーティションをマウントします。

⑧インストールしたドライブにブートローダーを置く(2)EFIフォルダーの作成

右クリックメニューで「EFI」フォルダーを作成します。

⑨インストールしたドライブにブートローダーを置く(3)EFIフォルダーにブートローダーを移動する

作成した「EFI」フォルダーの中に手順②で退避していた、「BOOT」フォルダーと「ubuntu」フォルダーを移動します。下図の構成になればOKです。

Linux Mint22のEFIパーティション構成

⑩EFIパーティションをアンマウントする

WindowsとLinux MintをインストールしたドライブのEFIパーティションをアンマウントします。(デスクトップのパーティションアイコンの右クリックメニューからでも行えます)

ディスクアプリでデバイスをマウント④

再起動して「Ubuntu(Linux Mint22のエントリ)」で起動できるか確認します。また、Windowsも起動できるか確認します。

起動できない場合ドライブを間違えていないか、また、フォルダーやファイルが正しい構成で置かれているかを確認して下さい。

ブートローダーを削除する場合の手順

WindowsのEFIパーティションにインストールされてしまったLinux Mint22のブートローダーとUEFIエントリーを削除する方法を説明します。こちらの手順で行った場合はLinux Mintの再インストールが必要です。ここではコマンドで操作する方法で説明します。(ブートローダーの削除は手動で行っても大丈夫です)

①ブートローダーを削除する(1)デバイスの接続名を確認する

①ターミナルを起動します。
②「fdisk」コマンドで接続しているデバイス(ドライブ)の一覧を確認できます。

sudo fdisk -l

「Microsoft」や「Windows」と書かれているブロックを探します。タイプに「EFIシステム」と書かれてる行の「デバイス」がデバイス名になります。下図の場合だと「nvme0n1p1」です。

接続しているドライブ名を確認する①

②ブートローダーを削除する(2)WindowsのEFIパーティションをマウントする

下記のコマンドを実行し、WindowsのEFIパーティションをマウントします。コマンドでマウントする場合はフォルダーを作り、そのフォルダーにデバイスを紐づけます。下記の場合だと1行目で「efi」フォルダーを作成し、2行目で「efi」フォルダーに「nvme0n1p1」デバイスを紐づけています。

赤字の部分を上記で調べたデバイス名に変更してください。

sudo mkdir /mnt/efi
sudo mount /dev/nvme0n1p1 /mnt/efi

③ブートローダーを削除する(3)ブートローダーを削除する

WindowsのEFIパーティションにLinux Mintのブートローダーがインストールされると下図のようになっていると思います。心配な場合はGUIで手動で確認してみてください。

WindowsのEFIパーティションにLinux Mintのブートローダがインストールされる構成

EFIパーティションにあるファイルを確認します。

cd /mnt/efi/EFI/
ls

BOOT」フォルダーと「ubuntu」フォルダーを削除します。

Enterを押すと削除されます。パスが上記と一致しているか確認して下さい。

sudo rm -r /mnt/efi/EFI/ubuntu
sudo rm -r /mnt/efi/EFI/BOOT

確認の為、再度EFIパーティションにあるファイルを確認します。「Microsoft」フォルダーのみになってるはずです。(謎のシステムフォルダーがあるかもしれませんが消さないでください)

ls

一応Homeフォルダーに移動しておきます。

cd ~

④UEFIエントリを削除する(1)UEFIエントリーの確認

UEFIエントリー一覧を表示し、エントリ番号を確認します。

sudo efibootmgr

⑤UEFIエントリを削除する(2)UEFIエントリーの削除

「Ubuntu(Linux Mint22のエントリ)」のUEFIエントリを削除します。赤字の部分を変更してください。

sudo efibootmgr -b 0005 -B

⑥UEFIエントリを削除する(3)UEFIエントリーが削除されたか確認する

「Ubuntu(Linux Mint22のエントリ)」が削除された事を確認します。

sudo efibootmgr

⑦EFIパーティションをアンマウントする

マウントしたデバイスはアンマウントします。そして、作成したフォルダーも削除します。

sudo umount /mnt/efi
sudo rmdir /mnt/efi

これで綺麗になったので、EFIパーティションのフラグを一時的に変更してLinux Mintを再インストールします。必要に応じてインストールするドライブのフォーマットを行ってください。


Comment

タイトルとURLをコピーしました