Ubuntu 14.04 が起動しない

作成日:2017/05/24
最終更新日:2020/07/05

Ubuntu 14.04 が起動しない

作成日:2017/05/24
最終更新日:2020/07/05

概要

記事にしていませんでしたが、LangurはWindows7以降のWindowsとUbuntuをマルチブートにするとき、Windowsブートマネージャを使用して環境構築しています[1]。 しばらく、端末を再起動していなかったのでどちらのOSのアップデートがトリガか判りませんが、Ubuntuが起動しなくなりました。 結果として、OSの再インストールをせずに復旧できたので記録します。

詳細

前提条件

今回、障害が発生した環境は500GBのHDDが次のように使用していました。

  • /dev/sdN1
    • システムで予約済 ... 約100MB
  • /dev/sdN2
    • Windows 10 ... 約200GB
  • /dev/sdN3
    • Ubuntu 14.04 LTS ... 残り

Nは任意の数字になります。

障害内容

PCに電源を入れると、Windowsブートマネージャが起動します。 ここで、Windowsを起動するかUbuntuを起動するか選択します。 正常に起動する場合は、Ubuntuを選択すると、再起動がかかりgrubが起動します。

今回、Ubuntuを選択してもWindowsブートマネージャが繰り返し起動する事象に遭遇しました。

対策

前述の症状から、/dev/sdN3のPBRにインストールしていたgrubが壊れたか、Windowsに格納している Ubuntuを起動するためのブートイメージが壊れたと思われます。

たまたま、手元にあったUbuntu 16.04.2のインストールメディアを使用して復旧します。 具体的にはLive CDから起動して、端末を起動します。

必要なファイルシステムをマウントする

このときは、まだUbuntu 16.04.2の環境ですので以下の細工をしてUbuntu 14.04の環境に移行します[2]

コマンド1. Ubuntu 14.04環境に移動
$ sudo mount /dev/sdN3 /mnt
$ sudo mount -t proc /proc /mnt/proc
$ sudo mount --rbind /sys /mnt/sys
$ sudo mount --make-rslave /mnt/sys
$ sudo mount --rbind /dev /mnt/dev
$ sudo mount --make-rslave /mnt/dev 
$ sudo mount -t tmpfs -o nosuid,nodev,noexec shm /mnt/dev/shm
$ sudo chmod 1777 /dev/shm
$ sudo chroot /mnt

Ubuntu 14.04の環境に移行したら次のコマンドを発行してgrubを上書きします。 ここで重要なのは--forceオプションを追加し、PBRに書き込めるようにすることです。

コマンド2. Grubの上書き
# grub-install --force /dev/sdN3
Installing for i386-pc platform.
grub-install: warning: File system 'ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be 
installed in this setup by using blocklists.  However, blocklists are 
UNRELIABLE and their use is discouraged..
Installation finished. No error reported
#

Ubuntu 16.04.2の環境に戻り、ブートイメージを作成します。

コマンド3. Ubuntu 16.04.2へ戻りブートイメージを作成する
# exit
$ sudo dd if=/dev/sdN3 of=ubuntu.img bs=512 count=1

このブートイメージを適切な場所(Langurの場合はWindowsのc:\直下)に上書きすることで復旧しました。

参考文献

  1. H. Benihara, WindowsのブートマネージャーでWindowsとLinuxのデュアルブート, Hobby Gardens, 2015
  2. Gentoo Foundation, Inc., Gentoo Linux amd64 ハンドブック: Gentoo をインストールする, Gentoo Linux amd64 ハンドブック, 2001-2016