読者です 読者をやめる 読者になる 読者になる

Re:Readme

PCトラブルや環境構築、家電量販店とかで買ったもののメモ。ご利用は自己責任で。

Ubuntu 14.04からのダウングレードに手こずった話

新しいもの好きではあるが、OSに関しては簡単に乗り換えない方が良いかもしれない。
今まで使っていたUbuntu 12.04 LTSから、14.04 LTSに移行しようと、新しく手に入ったDell Precision T5610という自分の小遣いで買うにはお高いワークステーションに、Windows 7とのデュアルブート環境を構築した。

LiveCDに従いインストールしたものの、使用していたソフトが合わなくなったりと問題が発生し、ダウングレードを決行。そしたらgrubを壊してしまい、起動できなくなってしまった。今回はそんなお話。


Ubuntuのアンインストールにあたり、まずブートローダの修復を行うべく、付属のインストールメディアからコンソールを起動し、bootrecコマンドを実行する予定だった(http://www.1004.ubuntu-d.com/_uninstall/rebuild_bl_7.html)。しかし、コマンドを実行するもエラーを吐かれた(内容は忘れてしまった...)。

ググってもこれという情報は見つからず、続いてインストールメディアを用いて工場出荷時の状態に戻すことに。しかしこれもまた頓挫。

f:id:hal_drumas:20170219233819j:plain

上の画像のようなウィンドウが出てきてしまい、インストールが進まない。付属のドライバディスクを挿入するも無反応。
ググると、DVDを再度焼き直すと上手く行ったとの報告があるが、メーカー製の付属DVDなので簡単に焼き直せず...。

続いて、「12.04のLiveCD入れて上書きインストールしちゃえばいいんじゃないか…?」とか考え、LiveCDを入れると、「Ubuntu 14.04 LTSを消し、インストール」みたいな項目があったので、「これだ!」と思って即ポチる。
進捗ゲージがMAXになり、ディスクを取り除いて一段落。

f:id:hal_drumas:20170219233913j:plain

……とはいかなかった。なんか黒い画面が出て、起動が止まってしまった。
grub rescueなるものが起動していたみたい。どうもgrubが壊れており、起動が出来なくなったために呼び出されていたらしい。
再びググると、手動で起動した後にgrubを修復するということをこれからやらなくてはいけないらしい(http://www.refidea.com/notes/grub-rescueでハマったのでメモ/)。

まずはlsコマンドを実行、するとパーティションの一覧が表示される。
今回は、

$ ls (hd1,msdos6)/

を実行して、bootディレクトリの存在を確認できたが、パソコンによって異なるので地道に調べる。またキーボードのドライバが無いのでUS配列で入力しなきゃいけないし、Tabキーによる補完が使えないのが地味にくる。後にターミナルを使っていて、タブ補完のありがたみが五臓六腑に染みわたったのは言うまでもない。

で、

$ set prefix=(hd1,msdos6)/boot/grub
$ insmod (hd1,msdos6)/boot/grub/normal.mod
$ normal

の実行でgrubが立ち上がるらしい。normalコマンドの設定を上2行でやって、それで実行という流れらしいが、insmodコマンドの実行で、

$ error: invalid arch-dependant ELF magic

と出力された。心が折れそう。

最後に、LiveCDからUbuntuを起動して、そこからターミナルでgrub-installを実行しようと試みた(http://www.nanashinonozomi.com/tips/old/how-to-reinstall-grub-using-livecd-of-ubuntu.html)。結論から言うと、これが当たりで、以降は無事に起動ができるようになった。
LiveCDから、インストールせずにUbuntuを起動するというボタンを選択し、起動。続いてbootディレクトリのあるドライブを確認し、これをマウント。/media/<ドライブ名>のようにマウントされた。
ターミナルを起動して、

$ sudo grub-install --root-directory=/media/<ドライブ名> /dev/sda

を実行(引用先にもあるが、ルートディレクトリやデバイスの名称は環境によって異なる点に注意)。

その後ディスクを抜いて再起動すると、無事にgrubの読み込みに成功した。