Top > Linux > HDD復旧


ディスクイメージを作成して復旧

ハードディスクが壊れてしまった場合、いったん全データをディスクイメージとして コピーし、復旧作業を行った方が良い。
問題のあるディスクを直接操作することで、さらにデータが破損することを防ぐためだ。
Linuxを使えばこのディスクイメージの作成とデータの吸出しを簡単に行うことができる。

HDD 情報の把握

壊れた HDD のデバイスファイルは /dev/sda とする。まず fdisk でディスクの情報とパーティションを調査する。
オプション -l はパーティションテーブルを表示するオプション、-u は表示をセクタ単位とするオプションである。

[root@linux ~]# fdisk -lu /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0009e696

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   976773119   487873536   8e  Linux LVM

fdisk の出力から、ディスクのサイズ(総セクタ数)と、パーティションの配置が分かる。この情報を元にディスクイメージ作成とマウントを行う。

なお fdisk でパーティションが表示できるのは MBR の場合だけである。 GPT (EFI GPT) の場合は、partedgdisk を使ってパーティションを調べる必要がある。FreeBSD の場合は、gpart を使用する。


ディスクイメージの作成

壊れた HDD のディスクイメージを作成する。 以下のように dd を使うことで、ディスク全体を1つのファイルにコピーできる。

# dd if=/dev/sda of=/root/hdd.img ibs=512 obs=4k conv=sync,noerror count=976773168
オプション意味
ifデータの入力元
ofデータの出力先
ibsデータの入力単位。セクタサイズ(512バイト)を指定する
obsデータの出力単位。大きめのサイズ(4kバイト)を指定すると早くなる
convsync,noerror はデータが読み込めなくても null パディングすること、
エラーを無視する
countデータ長。入力単位で何個分のデータをコピーするか指定する
ibsをセクタサイズとしているので、fdisk で調べた総セクタ数に合わせる
skip=[block]入力の開始位置を指定されたブロックに移動してからコピー
予めパーティションの開始ブロックが分かっている場合はコレを指定すると mount 時の offset が不要になる


パーティションのマウント

ディスクイメージからパーティションをマウントして、データを吸い出す。
以下は fdisk で調べた1つ目の Linux パーティションをマウントする例である。

# mount /root/hdd.img /mnt -t ext3 -o ro,loop,offset=1048576
オプション意味
/root/hdd.imgディスクイメージファイルの場所
/mntマウント先
-t [type]パーティションのファイルシステム
-oオプション
ro – 読み取り専用でマウントする
loop – ループバックデバイスを使用して、ファイルをブロックデバイスにする指定
offset – fdisk で調べたパーティションの開始位置をバイト単位で指定。2048セクタ x 512バイトで 1048576 バイト

マウントが成功すれば、あとはデータを吸い出すだけ。

Tips: FreeBSD の UFS パーティションをマウントする例

# mount hdd.img /mnt -t ufs -o ro,loop,ufstype=ufs2

Tips: FreeBSD でディスクイメージをマウントする場合は mdconfig

# mdconfig  -a -t vnode -f hdd.img
md0
# mount -t ext3 -o ro,loop /dev/md0 /mnt
# cp -r /mnt /home/hoge/backup/
コピーが終わったらデタッチ
# mdconfig -d -u 0


フリーの MBR/GPT 編集ソフト

ソフト/パッケージ名概要
fdiskMBRディスクのパーティションを設定する。version によっては 4Kセクタに対応していない
gdiskGPTディスクのパーティションを設定する。
fdisk の GPT 版なので fdisk を使用したことがある人なら操作方法はほとんど同じ。
partedパーティション内のデータを保持したままコピーやサイズ変更、移動などができるなど、
fdisk などの単なるパーティションテーブル操作ツールとは少し異なる対話型のCUIツール
testdiskMBRを修正することで、パーティションテーブルを復元できるフリーソフト。さまざまな OS や File System に対応している。Download>
Boot-Repairubuntu ベースの MBR/パーティション修復ツール。GUI ベースのツールなので、CUI に慣れていない方へはお勧めです。Download>


参考

ぺけみさお>


リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sun, 10 May 2015 23:46:31 JST (835d)