Ubuntu の UEFI デュアルブートの復旧

Ubuntu で ThinkPad X1 Extreme の Firmware のアップデートをインストールしたら、デュアルブートの Ubuntu が起動しなくなりました。これを復旧したときの記録です。

USB メモリから Ubuntu を起動

  1. Windows で Ubuntu 18.04 の Live-DVD の ISO イメージをマウントします。
  2. 内容をフォーマットした USB メモリにコピーします。
  3. マシンを再起動します。
  4. Lenovo のロゴが出たら Enter キーを押します。
  5. F12 を押して USB から起動します。

GRUB を再インストール

  1. lsblk でデバイスの一覧を取得します。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

    ...

    nvme1n1 259:0 0 953.9G 0 disk
    ├─nvme1n1p1 259:2 0 260M 0 part
    ├─nvme1n1p2 259:3 0 16M 0 part
    ├─nvme1n1p3 259:4 0 952.6G 0 part
    └─nvme1n1p4 259:5 0 1000M 0 part
    nvme0n1 259:1 0 953.9G 0 disk
    ├─nvme0n1p1 259:6 0 258M 0 part
    └─nvme0n1p2 259:7 0 953.6G 0 part
  2. Windows のディスクには 1000MB のリカバリ領域がありますので、それがない nvme0n1 の方をマウントします。また、/dev などもマウントします。そうしないと grub-install が失敗します。
    1
    2
    3
    4
    sudo su
    mount /dev/nvme0n1p2 /mnt
    mount /dev/nvme0n1p1 /mnt/boot/efi/
    for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done
  3. mnt に chroot します
    1
    chroot /mnt
  4. GRUB をインストールします。
    1
    2
    3
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
    Installing for x86_64-efi platform.
    Installation finished. No error reported.
  5. 再起動します。

参考