CentOS(1708)LiveGNOMEで特定のHDDをイメージバックアップ。

ddコマンドが使えれば他のディストロでも良いと思う。

ここは必要無ければやらないで良い

【内容を確認する】

# mount -t auto /dev/sda1 /mnt/sda1

とやると、ntfsがわからないと怒られる。

NTFSをマウントできるようにするには、
EPELリポジトリからntfs-3gとfuseをインストールすれば良いらしい。

EPELリポジトリをインストール。

# yum --enablerepo=extras install epel-release

ntfs-3gとfuseをインストール。

# yum install ntfs-3g fuse

fuseはインストールされていたみたいで、ntfs-3gだけをインストールしていた。

マウントする。

# mkdir /mnt/sda1
# mount -t ntfs-3g /dev/sda1 /mnt/sda1
# mount -t ntfs-3g /dev/sda2 /mnt/sda2
# mount -t ntfs-3g /dev/sdb1 /mnt/sdb1
# mount -t ntfs-3g /dev/sdb2 /mnt/sdb2
# mount -t ntfs-3g /dev/sdb3 /mnt/sdb3
# mount -t ntfs-3g /dev/sdb4 /mnt/sdb4

マウント後、HDDの容量を確認するには、

#df -m

とすると、MB単位で表示される。

メモリを確認するには、

# free -m

とすると、MB単位で表示される。

WindowsでMD5を確認したいなら、次のコマンドでできる。

CertUtil -hashfile ファイル名 MD5

作業

約500GBのHDDがあって、それをイメージバックアップしたい。
HDDのイメージファイルのようなものができあがる予定だけど、
100GBごとにファイルを区切りたい。

# dd if=/dev/sda of=/mnt/sdb2/temp/sda_part1.img bs=1G conv=noerror,sync count=100

bsでバイト数を指定(今回は1GBずつ読み込む)
noerrorで読み込みエラーが発生しても継続する。
syncでエラー箇所をNULL(ゼロ)で埋める。
count=100で100回繰り返す。

できたファイルのサイズは、107,374,182,400バイトだった。

作成されたファイルを圧縮する。

# gzip sda_part1.img

圧縮後のファイルのサイズは、36,088,926,659バイトだった。

2番目のファイルは、

# dd if=/dev/sda of=/mnt/sdb2/temp/sda_part2.img bs=1G conv=noerror,sync count = 100 skip=100

skip=100で、前回読み込んだ分をスキップしている。
(今まで読み込んだcountの合計)
それからまたgzipで圧縮する。
これを最後まで繰り返す。

次のファイルが作成される。
・sda_part1.img.gz
・sda_part2.img.gz
・sda_part3.img.gz
・sda_part4.img.gz
・sda_part5.img.gz

このファイルを書き込む。

# gunzip sda_part1.img.gz
# dd if=/mnt/sdb2/20171027_temp/sda_part1.img of=/dev/sda bs=1G conv=noerror,sync count=100
# rm -rf sda_part1.img
# gunzip sda_part2.img.gz
# dd if=/mnt/sdb2/20171027_temp/sda_part2.img of=/dev/sda bs=1G conv=noerror,sync count=100 seek=100
# rm -rf sda_part2.img

seek=100で前回書き込んだ分をスキップしている。

これをsda_part5.imgまで繰り返す。

全て書き込んだら、リカバリまで完了になる。
img.gzファイルを作成した時点で、HDD内のファイルを削除して
リカバリしてみたら確認できるはず。