$ 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 が起動しない
作成日 | : | 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]。
Ubuntu 14.04の環境に移行したら次のコマンドを発行してgrubを上書きします。 ここで重要なのは--forceオプションを追加し、PBRに書き込めるようにすることです。
# 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の環境に戻り、ブートイメージを作成します。
# exit $ sudo dd if=/dev/sdN3 of=ubuntu.img bs=512 count=1
このブートイメージを適切な場所(Langurの場合はWindowsのc:\直下)に上書きすることで復旧しました。
参考文献
- H. Benihara, WindowsのブートマネージャーでWindowsとLinuxのデュアルブート, Hobby Gardens, 2015
- Gentoo Foundation, Inc., Gentoo Linux amd64 ハンドブック: Gentoo をインストールする, Gentoo Linux amd64 ハンドブック, 2001-2016