LoginSignup
2
3

More than 5 years have passed since last update.

Windows PCのバックアップをddで取るとき、事前にntfswipeしておくと容量を減らせるよ

Last updated at Posted at 2017-08-18

要旨

PCをHDDまるごとバックアップしたいとき、LinuxのLive USBを使ってddで取り出す方法がある。

このとき時間に余裕があるなら、ntfswipeを使って空き領域を0で埋めることによってgzipでの圧縮効率を高めることができる。

手順

今回はKali LinuxのLive USBを使用してLet's note (CF-NX1、HDD: 250GB、Windows 7 Pro 32bit)のバックアップを実施。
リカバリディスクから復旧し、現時点までのWindows Updateをすべて適用した状態で、他に余計なデータは入っていない。Windows上での使用領域は約32GB。

Live USBから起動したら、まずはlsblkでデバイス名を確認。

root@kali:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   2.5G  1 loop /lib/live/mount/rootfs/filesystem.squashfs
sda      8:0    0 238.5G  0 disk 
├─sda1   8:1    0   2.8G  0 part /lib/live/mount/persistence/sda1
└─sda2   8:2    0 235.7G  0 part /lib/live/mount/persistence/sda2
sdb      8:16   0 232.9G  0 disk 
├─sdb1   8:17   0  14.7G  0 part 
├─sdb2   8:18   0   300M  0 part 
└─sdb3   8:19   0   218G  0 part 

/dev/sdb以下がWindowsがインストールされた領域と回復パーティション。

各パーティションに対してntfswipeを実行。

root@kali:~# ntfswipe -av /dev/sdb1 && ntfswipe -av /dev/sdb2 && ntfswipe -av /dev/sdb3

ddで出力したものstatus=progressで進捗状況も確認しながらgzipで圧縮。

root@kali:~# dd if=/dev/sdb status=progress | gzip -c > CF-NX1GDHYS_BASE.gz
250046562816 bytes (250 GB, 233 GiB) copied, 5024 s, 49.8 MB/s   
488397168+0 レコード入力
488397168+0 レコード出力
250059350016 bytes (250 GB, 233 GiB) copied, 5024.77 s, 49.8 MB/s

1時間半ほどで無事250GBすべてddから書き出せたので、できあがったgzファイルを確認。

root@kali:~# ls -l
-rw-r--r-- 1 root root 24920396778  8月 17 20:17 CF-NX1GDHYS_BASE.gz

桁区切りを付けていないので分かりにくいが、出来上がりのファイルの容量は約25GB。
ntfswipeをしないでdd->gzipするとgzファイルが235GB程度だったので、大幅に容量を削減できた。

※ HDではなくSSDの場合は書き込み寿命を縮めてしまうので要注意

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3