ディスク故障で作業中ファイルが無くなって泣く前に、Windowsで自動でバックアップを取る方法

マインドテックの冨です。石橋は叩きすぎて壊す派です。

最近、私の周りでHDD故障でファイルを無くして涙目になる人が数人でまして、まあ、いろいろと大変なわけです。
小さいころからの子供の写真のアーカイブなどもありまして、心情的にはなかなか苦しいものもあるわけですが、ディスク故障時のサルベージを依頼すると2桁万円の見積が飛んでくるわけです。どうしても業務上で「このファイルが無いと絶対にヤバい!」といった状況でしか、頼みにくい金額になっております。

「備えあって憂いなし」とはよく言ったものですが、往々にして事前に「備える」事は後回しになりがちですが、忘れぬうちにバックアップの設定をしておきましょう。

バックアップのメディア

HDDが死んでPCも起動しなくなったようなケースで、HDDを入れ替えてPCそのものをリカバリーするようなレベル感でのバックアップもありますが、ここではデータだけは守れればよくて、パソコンは別途に用意&アプリも再インストールなどをするといった割り切りをしている前提でいます。

当然ですが、今、作業で使っているHDD/SSDとは物理的に別のメディアに移さないと意味がないわけです。
どんなメディアを使うかですがDVD-Rなどの円盤ですと、容量が1桁GBなので、最近のアプリケーションのファイルサイズを考えると、もはや足りないわけです。また「バックアップ対象フォルダーを指定して、*-Rに焼く」という作業そのものが面倒なので、日常的なバックアップの用途には向いていないと思います。
SDカードなどのメモリーカードは、バックアップ対象の容量が巨大でなければ使えると思います。

ワタシの場合は、ローカルのHDDの作業用フォルダをUSBの外付けHDDとクラウドストレージの2つに同期コピーをしています。
クラウドストレージに関しては、Dropbox, Google Drive, Microsoft OneDrive, Boxなど、無料のアカウントでも数GB使えるものがありますから、ちょっとしたファイルの保存では便利に使えるでしょう。ビジネス用途ではMS Office365はお勧めです。コースによりますが1500円程度の費用でOfficeアプリの他にOneDriveの1TB利用権がついてくるのです。それぞれ容量と予算の兼ね合いで選択されればよいかと思います。数GBレベルでは無料でバックアップが出来るでしょう。

またHDDも容量単価の面では優れていますし、なにより容量が稼げます。最近は数TBで1万円前後ですから、これを使わない手はないわけです。(クラウドストレージの突然のサービス停止のリスクヘッジの意味もあります。)

もう一つ重要な観点は、メディアの寿命です。DVD-Rの光学円盤は10数年~といった記事もよく見かけますが、自分の経験では10年持たない感じがします。早いと2~3年で読み取りエラーを起こすDVD-Rなどもありました。書き込み先のメディアの品質や保存状況にもよるのだと思いますが、あまり長期保存には向いていない印象があります。また最近多く売られているUSBメモリーやメモリーカードですが、10数枚使った経験では、こちらも寿命が意外と短く、2~3年で読み取りエラーを起こすものが出てきています。デジカメもフィルム替わりにSDカードをそのまま保存している人も、しばしば聞きますが、古いものは注意した方がよろしいかと。どちらも一時的な保存には良いですが、長期保存の用途には信用できないというのが個人的な感想です。

外付けHDDのドライブ名の固定

外付けUSBドライブを使う場合、再起動のタイミングや脱着によりドライブ名が変わる事があります。例えばD: で認識していたのがE: に変わってしまうなどです。これだと設定によってはバックアップ先のドライブが見つからなくなるといった事故が起こるため、ドライブ名を固定しておいた方が良いです。

Win10では、Windowsキー+X で表示されるメニューリストから「ディスクの管理」を選択。
以前のOSでは[スタート]→[設定]→[コントロールパネル]→[管理ツール]→[コンピュータの管理]で、同じく「ディスクの管理」を選択します。

ボリューム欄に表示されている外付けドライブ名を右クリック → [ドライブ文字とパスの変更] → [変更]
この画面で「次のドライブ文字を割り当てる」のプルダウンで、ドライブ名を選択します。(個人的には、分かりやすいように"Z:"といった最後の方の文字から使っています。)

このようにしておくとUSBドライブを抜き差ししても、ドライブ名は変わらないので、設定により「バックアップが取得できなくなった」という事故は避けられます。

Windowsの機能でのバックアップ

Windowsにも独自のバックアップのための設定が用意されています。
Windows10の場合には、[設定] → [更新とセキュリティ] → [バックアップ]
で画面が出てきます。

ここで「ファイルのバックアップを自動的に実行」スイッチをオンにして、[その他のオプション]から実行間隔、保存期間、バックアップ対象のフォルダーの選択などを行えます。

また[バックアップと復元(Windows7)]もあり、旧来のバックアップツールの利用もできます。
それぞれ設定の詳細については、ヘルプ等を参照してください。

robocopyコマンドでのバックアップ

前述のWindowsのツールでのバックアップでも良いのですが、個人的な好き嫌いでは、オリジナルのファイルがそのまま参照できた方が、安心感が高いので好みですし、トラブルの際にはすぐに別のPCにつなぎ直して作業が継続できる方が好みです。(バックアップ全体を別のディスクにリストアしてからとなると、場合によっては数時間かかるので締め切り近くの作業中ではパニックになるので。)

このため作業用のファイルが格納されているフォルダを、そのまま外付けドライブなどにミラーリングする方法をご紹介します。
世の中にはミラーリングのためのツールも多数ありますが、ここではWindowsが提供しているrobocopyコマンドを利用してます。

1. バッチファイルの作成

まずはミラーリングを行うためのバッチファイルを作成します。ここではOneDriveのローカルの保存先を外付けドライブにミラーリングする想定とします。
ローカルの適当な場所にMirrorOneDrive.batというファイルを作成します。(名前はなんでもよいですが、拡張子は .bat とします。)
MirrorOneDrive.batには、例えば次のような感じでrobocopyのコマンドを書きます。

robocopy "コピー元フォルダ" "コピー先フォルダ" /mir /XF .*

/mir はミラーリングを行うスイッチで、/XFはミラーリングの除外対象となるファイルを指定します。
例えば、具体的には次のようになります。

robocopy "C:\Users\tomi\OneDrive" "Z:\OneDrive" /mir /XF .*

バッチファイルをダブルクリックして実行すると、フォルダのミラーリングが行われる事を確認してください。(上記の例の場合には Z:\OneDriveにファイルがコピーされているはずです。)

2. タスクスケジューラによる自動実行の設定

次にミラーリングのバッチファイルを定期的に自動実行させますが、これにはタスクスケジューラを使います。
[コントロールパネル] → [システムとセキュリティ] → [管理ツール] → [タスクのスケジュール]
で、タスクスケジューラが呼び出せます。(Win10でcortanaが設定されていれば、検索窓に”タスク”と入力するとリンクが表示されます)

右側の[タスクの作成]をクリック。

全般タブ
・名称は適当に。ここでは”OneDriveのバックアップ"
・[ユーザーがログオンしているかどうかにかかわらず実行する]をON (バックエンドで実行されるようになります。)
・[表示しない]をON

トリガータブ
・ミラーリングのバッチファイルを起動する条件を指定します。
・新規をクリックして、実行させたい周期を指定します。(以下の例の場合は毎日1時間ごとにミラーリングを実行します。)
・[有効]はON

操作タブ
・動かすバッチファイルを指定します。
・[操作]は[プログラムの開始]
・[プログラム/スクリプト]は、MirrorOneDrive.bat(またはご自身のバッチファイル)のパス

ここまで指定して[OK]をクリックすると、スケジューラに登録されます。

ミラー元に新しくファイルを置いて、スケジューラの指定時刻にミラー先にコピーされる事を確認してください。

ここまでで設定は終わりです。ミラーリングのバッチが動いていれば、少なくとも最後にミラーしたタイミングのファイルはミラー先に残っているはずです。ファイルをそのままコピーしているので、万一、PCのHDDが壊れたとしても外付けHDDを別のPCにつなぎ直せば、すぐにバックアップしたファイルにアクセスできます。

ここまで、取りあえず外付けディスクやメモリーカードがあれば、Windowsに用意されているcobocopyコマンドを利用して、ファイルのミラーリングを自動で行う設定のご紹介をしました。涙目になる前にお試しください。

Tips

Posted by tomi