「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が使えるようになります。