パーティションテーブルとか色々吹っ飛ばした話
ご不沙汰しております、κeenです。先日(と言ってもしばらく前)、安いHDDを買ってきてFreeBSDでも入れて遊ぼうかとしていました。
そうするとインストールは正常に終わるのにリブートするとブートローダが見付からないとか怒られます。おかしいな〜と思って元のHDDに付け替えてインストールメディアをごちゃごちゃしてまたHDDを付け替えてインストールしてを10回くらい繰り返したでしょうか。
はい、挿さってるHDD勘違いして元のHDDにFreeBSD焼いちゃいました。パーティションテーブルとかHDDの先頭にあったWindowsのパーティションとか全滅です。しかもまだFreeBSD起動しない。どうするよこれ。
USBに焼いてたArchがあったのでどうにかUbuntuを落してきてOS自体は復旧出来ました。因みにFreeBSDが起動しなかった理由はハードウェアがBSDだとかGPTだとかのパーティションテーブルに対応してなかったのが原因っぽいです。尚、LinuxもBSDのパーティションテーブルを理解しないので一旦ddとかで強制的にパーティションテーブルを上書きしないと正常にインストール出来ませんでした。
で、ですよ。問題は飛んだデータです。Windowsの方はどうでも良くてUbuntuの方もほとんどの重要なソースコードはgithubやgitbreakで管理してたので問題無くて、重要でないソースコードは仕方無いとして、LTの資料はまあ、SlideShareにあるし良いとして、KVMイメージはそんなに育ててなかったのでまた作り直すことにして、その他のデータはDropBoxに逃がしてて、残り、cl21-datacollections
とこのブログのソースはgitで管理してなかったので消えてしまいました。
cl21-datacollections
は書き直すより他ないので図書館でアルゴリズムイントロダクションを借りてきました。まあ、そのうち出現すると思います。Lisp Meet UpでTOYOZUMIさんにそそのかされたCSB+木も実装してみるつもりです。
ブログの方はソースが無いと流石につらいので掘り起こしたデータの受け皿に新たに500GのHDDと外付け用のカバーを買ってきて
test-disk
やphotorec
といったパーティション、データ復旧ツールで復旧を試みました。
パーティション再認識ツールのtest-disk
は全然駄目で、わずかに/
を認識するだけでその下のファイル情報は全く読み出せませんでした。
しゃあないのでデータ復旧ツールのphotorec
を一晩回してみると…800万くらいのファイルが掘り起こされました。因みにファイル名は機械的につけられたものです。
ザーっと眺めてみるとほとんどブラウザキャッシュの残骸ですね。因みに拡張子はすっげー適当につけられてるのでせいぜいバイナリかテキストかを見分けられる程度でした。
流石に人力で捜すのは無理なのでOctopress用のマークダウンを拾ってくるスクリプト書いてまた一晩回してみたものの、集まったのは何故かRubiniusのブログばかりでこのブログのデータはゼロ。どうしようもなく、githubに上がってるHTMLから復旧することにしました。
Nokogiri使ってHTMLのタグをちまちまMarkdownに直すスクリプト書いてる途中で「これ、他にもやってる人いるんじゃね?」という思いが。
調べてみると、ありました。Reverse Markdownというそうです。ここまでくればあとはNokogiri使ってメタデータとメインの部分抜き出してくるだけなので楽勝ですね。まあ、 {%
や#
をスケープするなどの作業もあるのですが。#をエスケープしなきゃいけないのはreverse_markdownのバグっぽそうですね。
画像はディレクトリごとコピーし、Sassはcleanpressを再度インストール、その他自分で手を加えた部分はこのブログに残してあったのでそこを参照しました。
ブログ更新出来なかった間になにしてたかは別記事にしますね