田舎者Yの日記

定年退職して農業に従事している者のブログ

(海外からスパムコメントが続きましたので、コメントは承認制にします。)

HDDのデータを破損した

 HDDのデータを破損した。またやるかもしれないので自分のためにメモする。

 

 私は自宅のデスクトップPCでいくつかの Linux ディストリビューション(以下ディストロ)と Windows を grub2 でマルチブートさせている。この構成を変更しようとしたことが発端だった。

 9年くらい前に自宅の PC で Linux を使い始めた。当時はディストロの iso イメージをダウンロードして CD や DVD に焼いてインストールしていた。Linux のディストロはアップグレードが頻繁なので(Ubuntu などは半年に一回アップグレードする)大量に古いメディアが発生することになった。そのうち USB メモリも大容量のものが簡単に手に入るようになり、起動用の USB メモリを作成してインストールすることを覚えた。USB メモリなら書きなおして再利用できるのでメディアをたくさん捨てることは減った。しばらくは UNetbootin というツールを使っていた。そのうち UNetbootin でうまく起動ディスクを作れないディストロがあることに気づいた。困っていたところ dd コマンドで USB 起動ディスクを作れることを知った。

 

  dd if=<iso ファイルのパス> of=/dev/sdX bs=8M

 

 上記の /dev/sdX は USB ドライブに対応するデバイス名にする。 'sudo fdisk -l' などで確認できる。私のは内蔵 HDD が2台で、 sda、sdb が内蔵 HDD、USB は sdc であった。

 

 長い前振りだったがおととい dd コマンドで USB 起動ディスクを作ろうとして 'sdc' とすべきところをうっかり 'sdb' としてしまい、スレーブのディスクをさっぱりと消し去ってしまったのだった(涙)。

 

 スレーブにはバックアップ用のそれほど重要ではない情報であったのは不幸中の幸いだった。しかしそれからの復旧が大変だった。私はよく Gnome Disks という GUI ツールで HDD のパーティションを操作する。

  GNOME Disks - Wikipedia, the free encyclopedia

 

 しかし今回は Gnome Disks で操作しようとするとエラーが発生して変更ができない。たしかメッセージの一部に以下のような表現が含まれていたと思う。

 Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes.

 

 どうやら Linux の iso イメージを dd したときに GPT (GUID パーティションテーブル)というものを書き換えてしまったらしい。

 GUIDパーティションテーブル - Wikipedia

 

 Linux の場合 'gdisk' というツールで GPT の書き換えができるようだ。私は apt でインストールして

create a new empty GUID partition table (GPT)

を選択して GPT を作りなおした。もちろん書き直しによりディスクの既成のパーティションにはアクセスできなくなる可能性があるので、これを読んで参考にしたい方がもしいれば、適用には気をつけてほしい。私の場合は HDD のパーティションを削除して作りなおすことが目的だったのでこうしたまでだ。

 

 次回 dd で USB 起動ディスクを作成するときはデバイス名に気をつけたい。