USBメモリ起動のUbuntu18.04 について、EFIパーティションを修復するときの手順

Windows10マシンを使ってUSBメモリ起動LinuxをインストールしたらWindows10のブートローダがGRUBで上書きされた」からの続きです。

Windows10のブートパーティションを戻したら、USBメモリ起動のUbuntu18.04について、起動しなくなってしまいました。USBメモリ起動のUbuntu18.04のEFIシステムパーティションについて修復が必要になったということになります。

ということで備忘録的に手順を書いておきます。USBメモリ起動のUbuntu18.04インストーラーをUEFIで起動して修復作業をします。CSMで起動するとEFIシステムパーティションを操作できないらしいので。

インストーラーが起動したら、USBメモリ起動のUbuntu18.04をインストールしたUSBメモリをPCへ挿します。/dev/sdcと認識されたとします。ESP(EFIシステムパーティション)は/dev/sdc1、Linuxのルートパーティションは/dev/sdc2だとします。

今回は実施してませんが、もし、EFIパーティションが壊れていたら、作り直しをします。Ubuntu18.04のインストーラーだとディスクユーティリティがあるので、それを使うのが簡単なはずです。ファイルシステムはFAT32、フラグはbootを指定します。GParted (パーティショニングツール)を使っても良いでしょう。

次に、USBメモリ起動のUbuntu18.04の環境にchrootします。ブートローダーを再構築するためです。

$ sudo -s
# mkdir /chroot
# mount /dev/sdc2 /chroot
# for t in dev dev/pts proc sys run; do mount --bind /${t} /chroot/${t}; done
# chroot /chroot

chrootしたら作成済みのEFIシステムパーティションをマウントします。

# mount /dev/sdc1 /boot/efi

最初にfstabを更新しておきます。/etc/fstabに記述してある/boot/efiにマウントされるパーティションのUUIDについて確認するとわかりますが、/dev/sda1のようにWindows10マシンのディスクを参照しているはずです。これを、/dev/sdc1を参照するように書き換えます。blkidコマンドでUUIDは調べることができます。

# blkid /dev/sdc1

次に、/etc/fstabを編集します。他のマウントしているデバイスについても確認して変更が必要だったらしておきましょう。

# vi /etc/fstab

準備ができたら、EFIシステムパーティションにブートプログラムであるgrubをインストールします。

# grub-install --efi-directory=/boot/efi
# update-grub

このコマンドを実行することで、/boot/efi/EFI/ubuntu/shimx64.efiといったファイルができます。

あとは、インストーラーを終了して、PCの電源を切ります。それから、USBメモリ起動のUbuntu18.04を使ってPCを起動すると、Ubuntu18.04が使えるようになります。

同じタグの記事: EFI
同じタグの記事: GRUB
同じタグの記事: Ubuntu18.04
同じタグの記事: UEFI
同じタグの記事: USBメモリ
同じカテゴリの記事: Linux