Windows10+Ubuntu16.04LTSのデュアルブート環境でGRUBが起動しなくなった

“Windows10とUbuntu16.04のデュアルブート環境構築”の手順通りにデュアルブート環境を構築し、日々運用していたのですが、Windows Updateを実行したタイミングでブートローダであるGRUBが起動しなくなってしまいました。

解決方法としては、UEFI環境で動作している場合、FATでフォーマットされているEFIシステムパーティションへのGRUBの再インストールが一般的なようです。

手元にUbuntuのisoイメージをLive CD化したデータの入ったUSBメモリが残っていたので、これを利用してGRUBの再インストールを行うことが出来ました。

以下が大まかな復旧手順になります。

  1. UbuntuのisoイメージをLive CD化したデータの入ったUSBメモリを用意
  2. BIOSを起動し、USBメモリから起動するようにブートシーケンスを変更
  3. Live CDで起動するGRUBを利用して、既存のUbuntuのrootfsをブート
  4. GRUBの再インストール

1. UbuntuのisoイメージをLive CD化したデータの入ったUSBメモリを用意

“Windows10とUbuntu16.04のデュアルブート環境構築”“1. USBメモリの用意”を参考にして用意してください。

2. BIOSを起動し、USBメモリから起動するようにブートシーケンスを変更

項目1で作成したUSBメモリを接続した状態でBIOSを起動し、ブートシーケンスの設定をUSBメモリから起動するように変更してください。

3. Live CDで起動するGRUBを利用して、既存のUbuntuのrootfsをブート

項目2でブートシーケンスを適切に設定していればPCの起動時にGRUBが起動します。ここで“c”を押下することで、GRUBのコンソールを開く事が出来ます。このコンソールからディスクにインストール済みのUbuntuを起動します。

  1. grub> ls
  2. grub> set root=<対象のパーティション名>
  3. grub> linux <カーネルの実行バイナリのパス> root=<対象のパーティションを指すデバイスファイルのパス>
  4. grub> initrd <初期RAMディスクのパス>
  5. grub> boot

1行目のlsコマンドでパーティションの一覧を表示することが出来ます。ここで表示されるパーティション名の内、既存のUbuntuのrootfsを表すものを2行目で指定します。3行目と4行目では、既存のUbuntuのrootfs下に存在するそれぞれのファイルのパスを指定します。5行目のbootコマンドを実行すると、既存のUbuntuがブートします。

私の場合は以下のようになりました。

  1. grub> ls
  2. grub> set root=(hd1,gpt6)
  3. grub> linux /boot/vmlinuz-4.15.0-45-generic root=/dev/nvme0n1p6
  4. grub> initrd /boot/initrd.img-4.15.0-45-generic
  5. grub> boot

既存のUbuntuのrootfs下に存在するファイルに関しては、GRUBコンソール上でもtabによる補完が動作するので、問題なく見つけられるかと思います(例えば、“<対象のパーティション名>/boot/”まで入力してtabを押下することで/boot/以下のファイルが表示されます)。

4. GRUBの再インストール

FATでフォーマットされているEFIシステムパーティションへのGRUBの再インストールを行います。

  1. $sudo update-grub
  2. $sudo grub-install /dev/sda
  3. $sudo grub-install --recheck /dev/sda

以上でPCの起動時にGRUBが正常に起動するようになりました。

Windows10+Ubuntu16.04LTSのデュアルブート環境でGRUBが起動しなくなった」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です