時々、WebサイトやFTPサイトにてファイルをダウンロードできる場所に、
「MD5SUM」や「SHA1SUM」と書かれた、以下のようなもの
 
MD5SUM: 196e2c6f7a875373dacaaeb2b0b37117
SHA1SUM: e73a9d82ea529b25938de049679c1ab1687d2979
 
が掲載、又は、テキストファイルでダウンロードできます。
 

これは、ファイルのハッシュ値(チェックサム)で、以下の2つを比較して、
 
・ダウンロード元に掲載されているハッシュ値
・ダウンロードしたファイルから計算したハッシュ値
 
同じである場合、ダウンロードしたファイルがオリジナルファイルと同一
であることを確認できます。
 

ちなみに、
 
・「MD5SUM」が128ビットのハッシュ値
・「SHA1SUM」が160ビットのハッシュ値
 
ですので、両方とも掲載されているサイトの場合は、
「SHA1SUM」の方だけ使えばよいです。
 
参考サイト
2005/06/23 FTPサイトに置かれているSHA1SUMとは
 

私は、この「MD5SUM」や「SHA1SUM」の確認用として、
非商用利用時フリーソフトの以下のソフトを使っています。
 
HashTab
http://implbits.com/products/hashtab/
 

このソフトをインストールしますと、
ファイルのプロパティ画面に「ハッシュ値」タブが追加されます。

そして、この「ハッシュ値」タブに切り替えると、
自動的に各種ハッシュ値が自動計算され、表示されます。

このとき、「ハッシュ値の比較」欄に比較対象のファイルのハッシュ値を
貼り付けると一致するか判定してくれます。

また、クリップボードにハッシュ値をコピーしている場合で、
照合結果が一致する場合は、自動的に「ハッシュ値の比較」欄に
貼り付けられて照合OKとなります。

例えば、ファイルサイズが数GBある、FTPサイト等でダウンロードした、LinuxのDVDイメージ(ISOファイル)の
ハッシュ値を確認する場合、計算に少し時間がかかりますので、
予め、ダウンロード元から取り寄せたハッシュ値を、クリップボードにコピーしておきますと、
ハッシュ値の計算が終わった瞬間にクリップボードのものと照合が行われ、
照合OKなら自動的に表示されます。

以下は、実際にハッシュ値の照合を行ったときの画面です。
hashtab-201507-01
 
今回の紹介は、以上となります。
 

今回は、自分のメインPCにて使用している、自作ROBOCOPYバッチを紹介します。
 
 

 

○01.自作ROBOCOPYバッチの公開

 

以下のダウンロードリンクよりダウンロードできます。

ZIP圧縮してありますので、解凍した後、「Readme.txt」を見て、ご利用下さい。
 
ダウンロードしたそのままでは使用できない(私のPC環境に合わせてある)ので、
ダウンロードファイルを、ご自身のPC環境に合わせてカスタマイズ後、
拡張子を、「*.bat」に変更すれば完成です。
 
実行する時は管理者権限(右クリック「管理者として実行」)で実行して下さい。
 
当ROBOCOPYバッチには、誤実行防止機能があり、誤ってダブルクリックしても、
"quit"とタイプしてENTERすれば何もしないで終了できます。
 
なお、コピー元とコピー先を逆にすると、データ消失等の悲劇が起きるので、カスタマイズ後の試運転の際には、
十分に確認して、念のために別の手段でバックアップをとってから行うといいと思います。
 
 

 

○02.自作ROBOCOPYバッチの解説

 

ダウンロード・解凍したファイルのうち、
 
・01_E_MAIN-DATA_for-Win7.bat(解凍直後は、*.txt)
自作ROBOCOPYバッチ(同一PC別ドライブにミラーリングコピー:Win7用)
 
について、解説をしますので、カスタマイズの際の参考にして下さい。
 
なお、ROBOCOPYについての参考情報として、下記のサイトがあります。
 
ROBOCOPY の使用法詳細(Windows Server のコマンドラインリファレンス)
ROBOCOPY の機能追加(Windows 7版)
 
では、解説を始めます。
 
 

 

○02-01.自作ROBOCOPYバッチのソースコード全文

 

01行目: :開始
02行目: 
03行目: @echo off
04行目: 
05行目: set Name=01_E_MAIN-DATA
06行目: set Source_directory=E:
07行目: set Destination_directory=Y:\Robocopy-Backup
08行目: set Log_directory=Y:\Robocopy-Backup\LOG
09行目: 
10行目: set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
11行目: set Time_edit=%time: =0%
12行目: set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
13行目: 
14行目: set Copy_options=/ZB /DCOPY:T /COPYALL /MIR /A-:SH /MT:8
15行目: 
16行目: set Excludes_files="desktop.ini" "Thumbs.db"
17行目: set Excludes_directories="$RECYCLE.BIN" "RECYCLER" "System Volume Information"
18行目: set File_selection_options=/XF %Excludes_files% /XD %Excludes_directories%
19行目: 
20行目: set Retry_options=/R:1 /W:1
21行目: 
22行目: set Log_file="%Log_directory%\%Name%_%YYYYMMDD%_%HHMMSS%.log"
23行目: 
24行目: set Logging_options=/NFL /NDL /NP /TEE /LOG:%Log_file%
25行目: 
26行目: set Source="%Source_directory%"
27行目: set Destination="%Destination_directory%\%Name%"
28行目: set File=*.*
29行目: set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
30行目: 
31行目: :: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
32行目: echo.
33行目: echo ↓↓↓↓↓  自動生成した、ROBOCOPY実行コマンド  ここから  ↓↓↓↓↓
34行目: echo.
35行目: echo robocopy.exe %Source% %Destination% %File% %Options%
36行目: echo.
37行目: echo ↑↑↑↑↑  自動生成した、ROBOCOPY実行コマンド  ここまで  ↑↑↑↑↑
38行目: 
39行目: set Console_input=""
40行目: 
41行目: echo.
42行目: echo ******************************************************************************
43行目: echo *                                                                            *
44行目: echo *            重要!!  バッチ処理実行確認                                  *
45行目: echo *                                                                            *
46行目: echo *  自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、        *
47行目: echo *  以下のように入力してください(大文字と小文字は区別しません)。            *
48行目: echo *                                                                            *
49行目: echo *  start             :ROBOCOPYの実行を開始します                            *
50行目: echo *  quit              :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります    *
51行目: echo *  上記以外の文字列  :当バッチ処理の先頭に戻ります                          *
52行目: echo *                      (ログファイル名の日時も更新されます)                *
53行目: echo *                                                                            *
54行目: echo ******************************************************************************
55行目: echo.
56行目: 
57行目: set /P Console_input="処理続行選択(上記参照) : "
58行目: 
59行目: if /I "%Console_input%"=="quit" exit
60行目: if /I "%Console_input%"=="start" goto ROBOCOPY実行
61行目: goto 開始
62行目: 
63行目: pause
64行目: 
65行目: :ROBOCOPY実行
66行目: robocopy.exe %Source% %Destination% %File% %Options%
67行目: 
68行目: pause
69行目: exit

 
 

 

○02-02.カスタマイズ必須項目

 

05行目: set Name=01_E_MAIN-DATA

変数"Name"は、複数のROBOCOPYバッチを運用することを想定した項目で、
自分が分かり易いように名前を付ければよい。
下記(07行目)変数"Destination_directory"配下、
設定した名前のディレクトリーにバックアップされ、ログファイル名の一部にもなる。
 

06行目: set Source_directory=E:

変数"Source_directory"に、バックアップ元ディレクトリーを設定する。
 

07行目: set Destination_directory=Y:\Robocopy-Backup

変数"Destination_directory"に、バックアップ先ディレクトリーを設定する。
ここに、上記(05行目)変数"Name"の名前のディレクトリーが作成されてバックアップされる。
 

08行目: set Log_directory=Y:\Robocopy-Backup\LOG

変数"Log_directory"に、ログファイル作成ディレクトリーを設定する。
 
 

 

○02-03.バックアップ元設定

 

06行目: set Source_directory=E:
26行目: set Source="%Source_directory%"

 

26行目で、06行目(カスタマイズ必須項目)のバックアップ元ディレクトリーを
変数"Source"(ROBOCOPYに指定するバックアップ元のフルパス)に設定する。
 
 

 

○02-04.バックアップ先設定

 

05行目: set Name=01_E_MAIN-DATA
07行目: set Destination_directory=Y:\Robocopy-Backup
27行目: set Destination="%Destination_directory%\%Name%"

 

27行目で、05行目(カスタマイズ必須項目)の名前と
07行目(カスタマイズ必須項目)のバックアップ先ディレクトリーを連結して、
変数"Destination"(ROBOCOPYに指定するバックアップ先のフルパス)に設定する。
 
 

 

○02-05.コピーオプション設定

 

14行目: set Copy_options=/ZB /DCOPY:T /COPYALL /MIR /A-:SH /MT:8

 

14行目の変数"Copy_options"(コピーオプション)に設定している項目の詳細は以下の通り。
 
/ZB
再開可能モードでコピーを試みて、失敗した場合は、バックアップモードでコピー
 
/DCOPY:T
ディレクトリータイムスタンプもコピー
 
/COPYALL
ファイル情報を全てコピー
/COPY:DATSOU と同じ
※D= データ、A= 属性、T= タイムスタンプ、S= セキュリティー =NTFS ACL、O= 所有者情報、U= 監査情報
※当オプションを指定しない場合の規定値は"/COPY:DAT"
 
/MIR
ミラーリングコピー
/E(空のものを含めたサブディレクトリーもコピーする) 、および、/PURGE(コピー元に無いものをコピー先から削除) と同じ
 
/A-:SH
ドライブ直下をコピーすると、コピー先の最上位ディレクトリーに、システム属性と隠し属性が付加されてしまうため、
コピー先からシステム属性と隠し属性を外す指定を行うもの。
 
/MT:8
8スレッドのマルチスレッドコピー。既定値が8で、1~128が設定可能
 
 

○02-06.ファイル・ディレクトリー選択オプション設定

 

16行目: set Excludes_files="desktop.ini" "Thumbs.db"

 

16行目で、以下のコピー除外ファイルを設定。
 
・"desktop.ini"
・"Thumbs.db"
 

17行目: set Excludes_directories="$RECYCLE.BIN" "RECYCLER" "System Volume Information"

 

17行目で、以下のコピー除外ディレクトリーを設定。
 
・"$RECYCLE.BIN"
・"RECYCLER"
・"System Volume Information"
 

18行目: set File_selection_options=/XF %Excludes_files% /XD %Excludes_directories%

 

18行目で、/XF オプションにてコピー除外ファイル(16行目)を指定して、
/XD オプションにてコピー除外ディレクトリー(17行目)を指定して、
変数"File_selection_options"(ファイル・ディレクトリー選択オプション)に設定する。
 
 

○02-07.リトライオプション設定

 

20行目: set Retry_options=/R:1 /W:1

 

20行目の変数"Retry_options"(リトライオプション)に設定している項目の詳細は以下の通り。
 
/R:1
コピー失敗時のリトライ回数
 
/W:1
コピー失敗時のリトライ間隔(単位:秒)
 
 

○02-08.ログオプション設定

 

10行目: set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
11行目: set Time_edit=%time: =0%
12行目: set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%

 

10行目~12行目で現在の日付・時間を取得する。
 

05行目: set Name=01_E_MAIN-DATA
08行目: set Log_directory=Y:\Robocopy-Backup\LOG
22行目: set Log_file="%Log_directory%\%Name%_%YYYYMMDD%_%HHMMSS%.log"

 

22行目で、05行目(カスタマイズ必須項目)の名前と、
08行目(カスタマイズ必須項目)のログファイル作成ディレクトリーと、
10行目~12行目で取得した現在の日付・時間を連結して、
変数"Log_file"(ROBOCOPYに指定するログファイル名のフルパス)に設定する。
 

24行目: set Logging_options=/NFL /NDL /NP /TEE /LOG:%Log_file%

 

24行目で他のログ系パラメーターと連結して、
変数"Logging_options"(ログオプション)に設定する。
 
 

 

○02-09.各種オプションを連結して、全オプション内容が完成

 

29行目: set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%

 

29行目で、前段階で準備しておいた以下の各種オプション内容を連結して、
 
・コピーオプション(変数"Copy_options")
・ファイル・ディレクトリー選択オプション(変数"File_selection_options")
・リトライオプション(変数"Retry_options")
・ログオプション(変数"Logging_options")
 
変数"Options"(ROBOCOPYに指定する全オプション内容)に設定する。
 
 

 

○02-10.ROBOCOPYのコマンド内容が完成

 

26行目: set Source="%Source_directory%"
27行目: set Destination="%Destination_directory%\%Name%"
28行目: set File=*.*
29行目: set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%

 

ここまでで、ROBOCOPYを実行するためのパラメーターが全て揃うことになる。
※26行目、27行目、29行目については、前段階の説明を参照。
 

35行目: echo robocopy.exe %Source% %Destination% %File% %Options%
66行目: robocopy.exe %Source% %Destination% %File% %Options%

 

35行目でコンソール表示(コマンド内容確認)、66行目で実行時パラメーターとして使用される。
 
 

 

○02-11.コマンドパラメーター内容確認表示、処理実行確認、処理実行

 

31行目: :: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
32行目: echo.
33行目: echo ↓↓↓↓↓  自動生成した、ROBOCOPY実行コマンド  ここから  ↓↓↓↓↓
34行目: echo.
35行目: echo robocopy.exe %Source% %Destination% %File% %Options%
36行目: echo.
37行目: echo ↑↑↑↑↑  自動生成した、ROBOCOPY実行コマンド  ここまで  ↑↑↑↑↑
38行目: 
39行目: set Console_input=""
40行目: 
41行目: echo.
42行目: echo ******************************************************************************
43行目: echo *                                                                            *
44行目: echo *            重要!!  バッチ処理実行確認                                  *
45行目: echo *                                                                            *
46行目: echo *  自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、        *
47行目: echo *  以下のように入力してください(大文字と小文字は区別しません)。            *
48行目: echo *                                                                            *
49行目: echo *  start             :ROBOCOPYの実行を開始します                            *
50行目: echo *  quit              :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります    *
51行目: echo *  上記以外の文字列  :当バッチ処理の先頭に戻ります                          *
52行目: echo *                      (ログファイル名の日時も更新されます)                *
53行目: echo *                                                                            *
54行目: echo ******************************************************************************
55行目: echo.
56行目: 
57行目: set /P Console_input="処理続行選択(上記参照) : "
58行目: 
59行目: if /I "%Console_input%"=="quit" exit
60行目: if /I "%Console_input%"=="start" goto ROBOCOPY実行
61行目: goto 開始
62行目: 
63行目: pause
64行目: 
65行目: :ROBOCOPY実行
66行目: robocopy.exe %Source% %Destination% %File% %Options%
67行目: 
68行目: pause
69行目: exit

 

誤ってダブルクリックしてROBOCOPYバッチが起動されたり、コマンド内容が誤ったまま
実行されるのを防ぐために、ROBOCOPYコマンドを実行する前に、
31行目~37行目にて、コマンド内容をユーザーに確認させて、
ユーザーに処理続行の意思を確認する。
 
"start"とタイプしてENTERすると、66行目にてROBOCOPYコマンドを実行する。
"quit"とタイプしてENTERすると、59行目にて当ROBOCOPYバッチを打ち切って終了する。
その他の文字列をタイプすると、61行目にて当ROBOCOPYバッチの先頭に戻る。
 
なお、処理の流れ上、63行目のpauseは通らないはずだが、念のために挿入。
 
 

 

○02-12."自作ROBOCOPYバッチ(同一PC別ドライブにミラーリングコピー:Vista用)"との差分

14行目の"/MT:8"オプションについて、Windows7版のROBOCOPYより追加された機能のため、
Vista用からは除外。
 
 

 

○02-13."自作ROBOCOPYバッチ(別PCにLAN経由ミラーリングコピー:Win7用)"との差分

バックアップ先ディレクトリーとログファイル作成ディレクトリーが異なる以外に、
14行目"/COPYALL"オプションについて、別PCにコピーする際には、
セキュリティーや所有者情報や監査情報は邪魔なような気がしたので、
規定値のコピーオプションの"/COPY:DAT"に変更。
 
 

以上、解説はここまでです。
 

今回は、自分のメインPCにて行っているバックアップ方法を紹介します。
 

1.データ用HDDを、RAID1で2重化

1台がクラッシュしても、もう1台より復旧可能。
この手段は、常に働いているので、他のバックアップをサボっていても、最低限の保護はなされている状態となる。
 

2.別ドライブにバックアップして、これをテープ(LTO Ultrium3)に保管

「Acronis Backup & Recovery 10 Advanced Workstation(英語版)」を使用してバックアップ。
 
※2013/06/23 時点情報
最新バージョン:Acronis Backup & Recovery 11.5 Advanced Workstation(英語版)
 

DISK To DISK(Acronis) のバックアップ画面
backup-method-201104-01  

DISK To DISK(Acronis) のバックアップファイル
backup-method-201104-02

3.データドライブの内容を、別ドライブやネットワーク共有にミラーリングコピーする自作robocopyバッチを使用

これは、Windows VistaからOSの標準機能で使用できる、コマンドライン用プログラム
「robocopy.exe」(Robust File Copy Utility)
を使用する方法。
 
通常のファイルやフォルダのアイコンをドラッグしてのコピーより高速で、ミラーリングバックアップ可能な高性能ツール。
しかも、無料で利用できるのが素晴らしい。
 
※Windows XPは、このサイトなどを参照して、リソースキットを入手してインストールすることで使用可能
@IT:Windows TIPS — Hints:Windows OS向けリソースキット・ツールを入手する
 
使用方法などは、このサイトなどを参照。
Windows TIPS:robocopyでフォルダをバックアップ/同期させる – @IT

自分は、このrobocopyのコマンドラインオプションを自動生成して実行できる、自作robocopyバッチを使用してバックアップを実施。
バックアップ先は、以下の2種類
・同一PCの別ドライブ
・別PCのネットワーク共有

自作robocopyバッチ(Win7用)開始
backup-method-201104-03

自作robocopyバッチ(Win7用)完了
backup-method-201104-04

※2013/06/23 時点情報
この記事より後に書かれた新しい記事にて、より新しい自作robocopyバッチが公開されたので、 この記事でかつて公開されていた古い自作robocopyバッチは公開中止とします。
 
自作robocopyバッチは、こちらの記事からダウンロードできます。
2011/05/12公開:自作robocopyバッチの公開・解説_201105

今回は、自分のPC環境(メインの自作機)を紹介します。
 

マザー :ASUS P6T-DELUXE
CPU :Intel Core i7 920
メモリー:DDR3 2GB×6本(トリプルチャンネル×2)で、12GB
ビデオ :nVIDIA GeForce GTX260
 

HDD1:1TB(システムドライブ)
HDD2:600GB×2台をRAID1(ミラーリング)で600GBとして使用(データドライブ)
HDD3:1.5TB(バックアップ用、ワーク用)
HDD4:1.5TB(バックアップ用)
 

BD-RW :PIONEER BDR-203
BD-ROM:LITEON DH-4O1S
 

ケース :Thermaltake Armor+ VH6000SWA
電源  :SCYTHE 超力2プラグイン 850Wモデル
 

OS  :Microsoft Windows 7 Ultimate x64 Service Pack 1
 

モニター:BenQ G2400WD(24インチ、1920×1200)を2台で、デュアルモニター
プリンター:Canon LBP-5400(A4カラーレーザー、両面対応、LAN対応)
 

サウンドボード:Creative SoundBlaster X-Fi Digital Audio
アンプ    :ONKYO MA-700U
スピーカー  :ONKYO D-D1E(オーディオ用パッシブスピーカー)
※サウンドボードとアンプは光デジタル接続、アンプとスピーカーはスピーカーケーブル接続
 

SCSIボード:Adaptec SCSI Card 29160LP(ASC-29160LP、Ultra160 SCSI)
テープドライブ:Dell PowerVault 110T LTO-3(Ultra160 SCSI、LTO Ultrium3)
※SCSIボードとテープドライブは、外付け用Ultra160 SCSIケーブル
 (LVD(Low Voltage Differential))で接続

 

Windows Vista用(Windows 7、Windows 8も同様)
WindowsUpdateの自動再起動抑制方法についてのメモ書き。
方法の参考となるURLは、こちら。
 
2006/04/22 自動更新における自動再起動を抑止する - @IT
2010/04/02 Windows Update適用後の自動再起動を抑制する - @IT
 

手順は、こんな感じで。

手順1:グループポリシーエディタ「gpedit.msc」を起動する
suppress-windowsupdate-autorestart-201103-01  

ユーザーアカウント制御
Microsoft 管理コンソール
Microsoft Windows
が表示されるので、「続行」をクリック

 

手順2:設定項目「自動更新を構成する」
suppress-windowsupdate-autorestart-201103-02

こちらの設定項目は、WindowsUpdateの自動更新設定で設定ずみかも

※設定項目位置
「ローカル コンピュータ ポリシー」→
「コンピュータの構成」→
「管理用テンプレート」→
「Windows コンポーネント」→
「Windows Update」→
設定項目「自動更新を構成する」

※設定値
「有効」

↓(詳細設定)

自動更新の設定「4 – 自動ダウンロードしインストール日時を(以下略)」
インストールを実行する日「0 – 毎日」
インストールを実行する時間「03:00」

 

手順3:設定項目「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」
suppress-windowsupdate-autorestart-201103-03

※設定項目位置
「ローカル コンピュータ ポリシー」→
「コンピュータの構成」→
「管理用テンプレート」→
「Windows コンポーネント」→
「Windows Update」→
設定項目「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」

※設定値
「未構成」を「有効」に変更

 

2010/04/14 追記
なお、この記事のオリジナルを書いた時は、Vistaを使用していて、その後、Windows 7を使うようになったのだけど、
上記で紹介した、グループポリシーエディタを使う方法は、Windows 7でも有効。

なお、グループポリシーエディタが使えるのは、
Windows Vista Business/Enterprise/Ultimate
Windows 7 Professional/Enterprise/Ultimate

なので、これらより下位のエディションの場合は、
上記の参考サイトに書いてある、レジストリを操作する方法になるかな。

 

2013/05/02 追記
現在、メインで使用するOSについてWindows 8に移行済みで、Windows 8でもグループポリシーで同様の設定が可能。

グループポリシーエディターの起動方法について、Windows 8はスタートメニューが無いため、代わりに以下の方法で起動する。
Windowsキー + x
→ファイル名を指定して実行(R)
→"gpedit.msc"を入力して、OKボタン

なお、グループポリシーエディタが使えるのは、
Windows Vista Business/Enterprise/Ultimate
Windows 7 Professional/Enterprise/Ultimate
Windows 8 Pro/Enterprise

なので、これらより下位のエディションの場合は、
上記の参考サイトに書いてある、レジストリを操作する方法になるかな。