2019/08/15

クローンしたUbuntuをIntel NUC上で起動した際に、OSが起動しなくなる問題の対処法

背景


Intel NUCへUbuntuをクローンして同一環境のPCを増やした際に、"no bootable devices found"のメッセージが表示され、OSが起動しなくなった。

記事の目的


Intel NUC上で、クローンしたUbuntu起動できるようにする

フォールバック起動に変更


ここでは、起動しない原因と対処法について記載する。

起動しない原因

クローンしたUbuntuが起動しない原因は下記の通りである。
  • EFI下では、OSを起動するブートローダーにはUbuntuなどのOS固有の名称が付けられる
  • マシンがブートローダーを検索できるように、ブートローダーをファームウェアのNVRAMに登録する必要がある
  • 通常のインストール時には、NVRAMへの登録も自動的に行われる
  • クローンした場合はNVRAMへの登録が行われないため、ブートローダーが見つけられず、OSを起動できない

対処方法

EFI下では、ブートローダーが見つからない場合、フォールバックとして起動するブートローダー名が設定されている。
そこで、フォールバック用のブートローダーを作成する。
  1. メディアブート等でOSを起動する
  2. 対象のOSがインストールされたメディア(SSD、HDD)の中のEFI System Partition (ESP)をマウントする
  3. EFI/BOOTディレクトリ(フォールバック用のブートローダーディレクトリ)を作成する
  4. EFI/ubuntu/*を、EFI/BOOT/*へコピーする

対処方法例(Ubuntuメディアブートの場合)

Ubuntuメディアブートを行った場合の対処方法は、下記の通りである。
$ sudo fdisk -l
Device        Start      End  Sectors  Size Type
/dev/sda1      2048  1128447  1126400  550M EFI System
/dev/sda2   1128448 79626398 78497951 37.4G Linux filesystem
/dev/sda3  79628288 85917854  6289567    3G Linux swap
$ sudo mount /dev/sda1 /mnt #「Type」が「EFI System」のものをマウントする
$ cd /mnt
$ sudo mkdir EFI/BOOT #フォールバック用のブートローダーディレクトリ
$ sudo cp EFI/ubuntu/* EFI/BOOT/

まとめ


  • EFI下のPCでクローンしたUbuntuを使用する場合、OSが起動しなくなる問題の原因と対策について記載した

参考文献



変更履歴


  1. 2019/08/15: 新規作成

0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...