新年明けましておめでとうございます。
今日は、今年最初の出勤。実は、仕事始めは5日からなのだが、その後3連休のためどうせなら正月休みと続けるために有給休暇を取った。帰省をしていたため、4日のようなUターンラッシュも避けたかったし、甥っ子の成人の祝いもしてやりたかったこともある。
さて、年末の話だが、Windows10とUbuntuを入れているマシンにトラブルが起こってしまった。Windows10は7からアップグレードしたもので、多分たいていの人と同じように、無料でアップグレードできる期間に、知り合いが使ってなかなか良いとのことだったのでやってみたのだ。
この後、OpenFOAMというソフトを使っていたために、Ubuntuを再インストールしなければならなくなったが、特に問題なく運用できていた。Windowsは主に、会社関係の書類を作成して提出する作業に使っている。この日も、エクセルで下期の目標設定などを確認したり、提出書類を作ったりしていた。いつものように、アップデートの表示が出たので特にきにすることもなく、更新を始めた。今回は、結構時間がかかるようで、再起動を数回行うというようなメッセージが出る。
そして再起動したのはいいが、いつものgrubのブートメニューが出ると思いきや、コンソール上に
grub rescue>
と表示されて、どうにもならなくなってしまった。
この表示は初めてなので、最初はescキーを押したりexitだとかquitだとかCtrl+Cとかやってみたが、何もできない。Ctrl+Alt+Deleteとすると再起動するが、また同じ画面になるのみ。
これは困ったと思い、ネットで調べてみる。Windowsはデスクトップだがこういう時iPadとかノートPCとかあるとやはり便利である。"grub rescue"で調べてみると、結構同じ状況で困った人がいるようだ。
ちょうど、ほとんど同じような状況になったこのサイトを参考にして作業した。
デュアルブート環境でWindows10にアップグレードしたらOSが起動しなくなった
lsコマンドでどのパーティションにgrubのbootファイルがあるか特定し、そのパスを再設定すると行った流れだろうか。大抵は/boot/grub/というディレクトリが見つかり、そのパーティションにパスを再設定すれば良いようだ。
しかし、今回のぼくの場合は、ext2のパーティションが見つかったものの、そちらはデータ用のディスクでbootファイルがない。どうも上のサイトの方と同じようで/boot/grubの設定してあったパーティションが消えてしまったようだ。
仕方がないので、Ubuntuをインストールした雑誌のディスクを使って、インストールせずにCDからUbuntuを起動する。サイトにあるように
$ sudo parted -l
とか
sudo fsck /dev/sda3
とかやって見る。
どうも、拡張パーティションにLinuxのシステムファイルを割り当てておいたのにそれが全部消えて無くなっている。
この後は、同じように
sudo apt-get install testdisk
sudo testdisk
と行なって、とにかくディスクのデータを復旧させた。
ところがプライマリーとかswapの論理パーティションの組み合わせがbadになって結局もとのようには戻らず、論理パーティションだったswapがプライマリーになってしまったが、とにかくLinuxのシステムだけは再現した。
改めて
grub rescue>
から/grub/boot/の位置にパスを再設定し、とりあえず起動することには成功した。また、grubも再インストールしたので、Ubuntuは起動させられるが、Windows10の方は当たり前だが更新に失敗したとのメッセージ。しかし、OSの更新で勝手に他のパーティションを壊してしまうのはちょっと問題だ。今後はどう使っていくのか考えねばならない。
grubではなくwindowsのboot loaderだったかを使うことになるのだろうか。
少し時間をとって検討しよう。