Ubuntu 12.04 LTS (wubi利用)から 14.04 LTS へのアップグレード後に正常起動できなくなる問題

Ubuntu 12.04 LTS(wubiでインストール)をアップグレードしたときにハマったので参考までにお知らせ.日本語のちゃんとした情報が無さそう?だったのでメモ.ほとんどの人には役に立たない内容.次のフォーラムのやりとりを参照のこと.

Ubuntu 14.04 won’t load after upgrade
http://ubuntuforums.org/showthread.php?t=2217829


背景

  • Ubuntu 12.04 LTS 32bit (wubi) から 14.04 LTS へのアップグレードにて問題発生
  • 昨年準備した環境を久々に起動して(何も考えずに)アップグレード実施したところ,再起動後エラーのため正常起動できずハマる.確かこんなエラーメッセージだったはず.
  • mount: mounting ... failed: Invalid argument
    mount: mounting /dev on /root/dev failed ...
    mount: mounting /sys on /root/sys failed ...
    mount: mounting /proc on /root/proc failed: ...
    Target filesystem doesn't have requested /sbin/init
    No init found. Try passing init= bootarg.
    
    (initramfs)

対応-とりあえず正常起動させる

  • GRUB画面でブート前に e を押す.e は edit the commands
  • emacs-likeなエディタが起動するので,次の箇所を修正する.ro から rw でマウントするように.
  • linux	/boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk ro   quiet splash $vt_handoff
    
    to:
    linux	/boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk rw   quiet splash $vt_handoff
  • 修正できたら F10 を押してブート

対応-次回以降の起動への対応

  • 上の修正はtemporaryなものなので,permanent fixするには次のファイルの修正が必要
  • sudo vi /etc/grub.d/10_lupin
  • ファイル中の次の箇所を修正.自分の環境では150行目が該当.
  • linux    $${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} ro ${args}
    
    to:
    linux    ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} rw ${args}
  • 設定ファイル修正後,修正内容を反映させる.
  • sudo update-grub
sudo vi /etc/grub.d/10_lupin

sudo vi /etc/grub.d/10_lupin


これでもうまくいかない場合

残念.頑張って解決してください.

参考サイト

おすすめ