クリックしてオバロペチカのITポエムの記事一覧へ移動

オバロペチカのITポエム

とりあえずLinuxについて書こうと思ってるよくわからないITポエム

【データ全損失か】grub-bios-setupを実行したらパーティションテーブルが消えた件

Linuxを使っていたらハードディスクのパーティションテーブルが消失したので、このブログは停止しました。

データの復旧が終わったら復帰するかもしれませんが、終わりそうもありません。

以下はその経緯を記した記録です。

 

4月某日、grub-installから呼ばれるgrub-bios-setupを実行したらパーティションテーブルが消失してハードディスクのデータ全損失の危機に陥りました。

なぜこのコマンドを実行したかというと、起動時にGRUBレスキューモードに遭遇して使い方がわからず悔しい思いをしたので、使い方を学習し、意図的にGRUBレスキューモードを作り出して試したかったのです。

誤った入力データをgrub-installでインストールすればGRUBレスキューモードになると思い、grub-installから呼ばれるgrub-bios-setupを実行しました。

grub-bios-setupの実行に必要な入力ファイルはddで中身のないデータを作成しました。

まさかgrub-bios-setupがパーティションテーブルを破壊するとは少しも疑いませんでした。

 

GRUBレスキューモードを作り出したいと思った時点でこうなることは必然でした。

あらゆる方法を試してできる方法を探そうとし、止めるものが何もありませんでした。

 

約5年ぶりにLinuxを使い始め、たった約1ヶ月でハードディスクのデータ全損失の危機に陥るのは一体何なんでしょう?

Linuxには利用者が誤った使い方をしても安全性を担保する仕組みがないんです。

データを破壊するものをウィルスと呼ぶのであれば、ウィルスのようなコマンドが公然と置かれていて、誰も危険物を撤去しない世界がLinuxなんです。

この危険なOSを一般利用者にはとても勧められないと思います。

 

長年バックアップを取ってなかったのでパーティションテーブルを消失したとき強い絶望感を味わいました。

その間の人生を失ったかのような喪失感です。

衣食住に匹敵する生活基盤がなくなったとも思いました。

 

購入してあったDVDのリカバリディスクでWindowsを再インストールしました。

リカバリディスクを購入してなければ復旧は不可能でした。

Windowsの修復ディスクなどはSignature Verificationが失敗したとエラーを出してどうにもならなかったと思います。

一万円もするファイル復元ソフトを一ヶ月の期間限定で購入してファイルを復元させました。

 

どうすれば良かったのでしょう?

フールプルーフの設計がないLinuxという危険物がいつハードディスクのデータを破壊してもいいようにデータのバックアップを取っておけば良かったです。

バックアップのあり方を見直しました。バックアップの必要なデータを一つのフォルダに集め、Robocopyでそのフォルダのミラーを取るようにします。

そのときは存在を知らなかったのですが、TestDiskという無料のソフトはパーティションを修復できるそうです。

まさに今回のときのためにあるようなソフトだと思います。

 

実はWindowsRobocopyも危険なコマンドです。

Robocopyでミラー先のファイルを消すという災害を起こしました。

上書きしたようで実行後にファイル復元ソフトを使用しても戻りませんでした。

他はすべて日本語で表示するのにファイル削除だけをExtraと英語で表示し、Robocopyは不親切な表示で災害を起こしやすいコマンドです。

サブフォルダのミラーから始めていたのが被害を最小限に抑えられて良かったです。

未知のコマンドはテスト実行しながら少しずつ範囲を拡大するのが良いでしょう。

 

他にも参考になりそうな情報を探しました。

sfdiskはLinux 用のパーティションテーブル操作ツールです。

ddでMBR(ハードディスクの先頭の1セクタ512bytes)のバックアップを取れます。

MBRは446バイトのブートストラップローダーと16バイトのパーティションテーブル4つと2バイトのブートシグネチャから構成されます。

MBRにプライマリパーティションを4つまでしか持てないので拡張パーティションがあることになりますが、grub-bios-setupがどのように拡張パーティションを書き換えた(あるいは書き換えなかった)かがわかりません。grub-bios-setupがMBRの中にあるプライマリパーティションを書き換えたことはわかります。

 

データ復旧はなかなか終わりません。

楽しい作業ではないので集中力が途切れます。

ファイルを保存するごとにファイルが作られていて、複数のファイルがデータ復旧で作成されます。

データ復旧されたファイルの中身の最後に余分なデータが付いていて、そのデータを消さないといけない場合があります。

GitのフォルダーやChromeのユーザーデータ(ブックマーク)のフォルダーなど多くのファイルから構成されるフォルダーをデータ復旧で戻すのは無理でしょう。

データ復旧したのに一部のフォルダーがなかったこともありました。

ファイルの確認と何年も貯めたデータの整理で時間がかかります。

 

バックアップは大事です。

忘れたころに突然災害はやってきます。

この件を教訓にして是非バックアップを取りましょう。