S.F. Page

Programming,Music,etc...

故障に備え、ハードディスクを入れ替えた

私は過去に1TBのHDDが壊れたことがある。その時はダメ元でUltimate Boot CDで復活できるところは復活して、あとはバックアップから戻すことでほぼ復旧した。

blog.sfpgmr.net

今のところは故障なく使えているが、HDDというのは消耗品なのでいつ故障してもおかしくない。なので故障に備えておかなくてはならない。 少なくとも何年か使ったら取り替える必要がある。壊れるまで使うというのでもいいが壊れた時のストレスや復旧の手間を考えると、事前に交換しておいたほうがよいというのが、過去の苦い経験から得た教訓である。

そういうわけで、ボーナスをもらったことだし、今回ディスクを購入して、古いディスクを捨てることにした。

今までのディスクの構成は

  • ディスク0 : 2TB HDD(セカンダリOS用・作業用)
  • ディスク1 : 500GB SSD (OS用・作業用)
  • ディスク2 : 300GB HDD(データ用)
  • ディスク3 : 1TB USB HDD(バックアップ用)

であった。1TB USB HDDと300GB HDDは数年以上使っており、かなり古いので300GBのディスクは廃棄することにし、1TB USB HDDはTVの録画用ディスクとして余生を送っていただくことにした。といいつつ、過去に使用したHDDも実際のところどう廃棄してよいものか思案していて、捨てずにとったあるんだけどね。。

そしてAmazonで2TBのHDDを購入した。今回は速度と容量のバランスを考え、SSHDを購入した。SSHDというのはキャッシュとして8GBのSSDを搭載したHDDである。

これを追加し、ディスクは以下の構成で使用することにした。

  • ディスク0 : 2TB HDD(セカンダリOS用・バックアップ用)
  • ディスク1 : 500GB SSD (OS用)
  • ディスク2 : 2TB SSHD(作業用)

2台購入してBIOSレベルでRAID 1することも考えたが、そのような環境であってもバックアップは必要だし、2台買う資金はないので、あきらめた。

データの移動は、昔ながらのrobocopyを使って行った。

バックアップについてもrobocopyするバッチファイルを作って、夜間にタスクスケジューラでバッチ処理で行うことにした。robocopyのオプションで開発時の一時ファイルやディレクトリなどは除外するようにしてバックアップ容量を削減するようにもしている。

robocopy k:\webdata  z:\backup\webdata /xf *.vhd *.vmdk *.pdb *.sdf *.suo *.ilk *.vcxproj.* *.obj *.pch /xd .svn .git tmp "$RECYCLE.BIN" "System Volume Information"  temp Debug Release ipch backup E:\i_backup\download vhd ダウンロード node_modules /TIMFIX /mir /np /mt:6 /r:0 /w:0 /log:c:\copylog.log
.
.
.

タスクスケジューラでは、夜間にスリープを解除してバックアップを取るように設定している。

それで最後にスリープに移行するためのコマンドが書いてあって、バックアップが終了したらスリープするようにもしている。

rem スリープ状態に移行する。管理者権限がないと休止状態になるので注意
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on

wbadminを使う方法もあるが、複数ディスクを1つにまとめてバックアップを取ったり、除外ファイル・ディレクトリも使用する環境によって変えたりできる利点があるので。OSだけはwbadminで別にとることにしたけどね。

しかしまあ、Windows 10も可用性やデータの安全性を高める機能はいっぱいあって悩むね。。

  • BIOSでのRAID
  • ディスク・パーティション単位でのミラーリング・ストライピング+パリティ
  • システム・バックアップ
  • システム・修復ディスク
  • システム・イメージの作成
  • ボリューム・シャドウ・コピー
  • システムの保護(復元ポイント)
  • ファイル履歴
  • 回復パーティション

Windows 95の時では考えらないくらい充実している。