キーワード:バックアップ 解除
せっかくWindows用のアプリを作って公開したので若干それに関連する記事でも書いてみます。
バックアップについては何回か書いてますが、大事なことなので(ry

さて、PCを持っている人なら写真や動画、資料なんかの大事なデータを
保存されている方もおられると思います。

そういった大事なデータですが、バックアップは取っていますか?
PCなどに保存しているデータはハードディスク(HDD)という装置に入っています。
実はこいつは曲者でして、何の前触れもなくイキナリぶっ壊れてくれる事があります。
今のHDDは大概、S.M.A.R.T.という機能が搭載されていて、多少は故障の予測もできますが
完璧ではないうえに、サーバーなんかの管理者でない限りはそんなものはいちいち
チェックしていないと思います。

もちろん、回転音がおかしいとかそういう前触れがある場合もよくありますけどね。

さて、運悪く大事なデータが入っているHDDが壊れてしまいました。。。
この場合はバックアップを取っているのといないのでは大きく違います。

■バックアップを取っていない場合
 HDDがまだ動いて認識する場合はすぐにでも別の記録媒体へコピーする。
 HDDはまだ動くがOSが起動できない場合はLiveCD等を使って
 なんとか別媒体へコピーできないか試す。
 HDDが動かなかったり読取自体も不可能な場合は諦める。
 諦めきれない場合はデータ復旧業者に依頼する(物凄い額を提示されるでしょうw)
 最悪、データ復旧業者でも不可能な場合は諦める以外は何もできませんw

■バックアップを取っていた場合
 大事なデータのコピーがあるので慌てる必要はないが、
 できればすぐにでもバックアップデータを別の媒体にコピーしておく。

対応方法が全然違いますね。
なのでバックアップ用に外付けのHDDやフラッシュメモリ等を買ってコピーしておくといいでしょう。
バックアップ用のHDDを買ったりとコストはかかりますが、いざ壊れたとき、復旧業者に頼むと
この程度の金額では済みません。

特に写真等は1000円ぐらいで買えるUSBのフラッシュメモリとかに入れておくだけでも
データ消失のリスクは大きく下がると思います。

さて、バックアップに関してなんですが、毎回新しく追加したファイルとか更新があったファイルを
選んでコピーしていたんじゃ面倒です。
だからといって、毎回全データを丸ごとコピーしていては時間もかかるし、
あまりエレガントじゃないですねw

そんな時に使えるのがコマンドプロンプトです。(Windowsの話ですね)
コマンドプロンプトはコマンドを入力することにより色々な機能を使えます。

では、そのコマンドプロンプトを開いてみます。
スタートボタンから「すべてのプログラム」→「アクセサリ」→「コマンド プロンプト」を選択します。
そうしたら、出てきました。
bkup001

で、これが何なんすか?って人もいるかと思いますが、ここにコマンド(命令)を入力して実行させます。
では以下の例を見てみましょう。

bkup002
このように、Fドライブの「新しいフォルダー」の中にある「データ」フォルダーに
大事なデータや写真が保存してあるとします。

これを別の場所にコピーしたいと思います。
コピーする先は↓のようにGドライブの「バックアップ」フォルダーの中の「データ」とします。
bkup003
見てのとおり、フォルダーの中は空っぽです。

では、コマンドでこれらのファイルをここへコピーしてみます。
次のように入力します。
xcopy "F:\新しいフォルダー\データ\*" "G:\バックアップ\データ" /D /Y /R /E

こんな感じですね。右端に行くと勝手に折り返されますが、問題はありません。
bkup004

入力したら「Enter」を押します。すると・・・
bkup005
コピーしたと出てきました!!
早速、コピー先のフォルダーを見てみましょう!

bkup006
コピーされています!
これがコマンドによるコピーです。

では、もう一度このコマンドを実行してみます。
bkup007
0個のファイルをコピー???

そうです、コピーするファイルがないという事です。
しかし、コピー元のファイルを見ると別に移動したわけではないのできちんとファイルが残っています。
もう気付いたかもしれませんが、これは同じファイルがあった場合は日付が新しい場合にだけ
上書きコピーをする、となっています。
これはコマンドの後ろの方に/D /Y /R /Eとついていますが、これはコマンドのオプションで
以下のような機能があります。
/D コピー元の日付がコピー先の日付より新しい場合に上書きする。←これがそうですね。
/Y 同じファイルを上書きする時、上書きするかどうかを聞かずに上書きする。
/R 読取専用の属性のついたファイルも上書きする。
/E フォルダー配下すべてコピーします。またフォルダーが空でもフォルダーをコピーします。

では、コピー元のファイルの1つを修正して日付を新しくしてみましょう。
bkup008
はい、更新して新しくなりました。
では、再度コマンドを実行します。
bkup009
更新されて日付が新しくなったファイルだけコピーされましたね。
これで、差分をコピーができるようになったワケです・・・が、これは少々困った事があります。
以前の記事に書いてますが、ファイルフォーマットの違いでファイルの更新日付の記録精度が異なるため
時刻の制度が低いファイルフォーマットの場合、時刻が切り捨てられるため更新時刻によっては
変更してないのに常に「新しい」と判断してコピーしてしまうという誤動作を起こす事があります。

これを回避するためには/Dではなく、/Mというオプションを使います。
上の例で例えるなら
xcopy "F:\新しいフォルダー\データ\*" "G:\バックアップ\データ" /M /Y /R /E
こんな感じですね。
/Dの代わりに/Mを指定しています。
これは何かというと、これも以前の記事に書いてますが「アーカイブビット」という属性がオンの場合だけ
そのファイルをコピーして、コピーが終わったらそのファイルのアーカイブビットをオフにする。
というものです。
「アーカイブビット」とは、ファイルが新たに作られたり内容が変更された場合は常にオンになるもので
/Mというオプションを指定してコピーしたファイルのアーカイブビットはコピー後オフになるので
次回更新されてなければオフのままなのでコピーの対象から除外されます。

これでなんとかいけそうですね。

しかし、毎回コマンドプロンプトを開いていちいちコマンドを打ち込むのは面倒ですね。
そこで、「バッチファイル」の登場です。
バッチファイルはこのコマンドを書いておくとそれを順次実行してくれます。
作り方は簡単です。

まず、「アクセサリ」の中から「メモ帳」を開きます。
開いたらメモ帳にさっきのコマンドを書きます。
こんな感じですね。
bkup010

で、保存なんですがこのときに拡張子を「.bat」で保存しなければなりません。
「ファイル(F)」→「名前を付けて保存(A)」を選択します。
すると、どこに保存するか聞いてきますね。
bkup011

保存する場所はどこでもいいのですが、このとき「ファイルの種類(T)」を「テキスト文書」ではなく
「すべてのファイル」にする必要があります。
「すべてのファイル」にしたら、必ず拡張子(.bat)まで「ファイル名(N)」に入れます。
この例では「ばっくあっぷ.bat」とします。
bkup012

するとこのような歯車かネジのようなアイコンのファイルが出来上がります。
bkup013
これをダブルクリックすると自動で先ほどのコマンドが実行される、というワケです。
実行するとコマンドプロンプトの黒い画面が出ますが処理が終了するとコマンドプロンプトは
自動で閉じられます。

このようなバックアップ用に作ったバッチファイルを先日公開した「ドライブマウント」の実行ファイルに指定すると
接続後にローカルのファイルをNASにコピーする、という事ができる訳です。
もちろん、外付HDDにコピーするようにしても構いません。
自動実行させるためにスタートアップにショートカットを作ったり、タスクスケジューラに登録してもいいでしょう。
タスクスケジューラについてはまた別の機会にw(またかよ)

今回はxcopyというコマンドについてしか触れていませんが、コマンドは物凄い数があります。
もちろん、私が知らないコマンドもたくさんあります。
ただ、こういうのは全てを覚える必要はありません。
自分が必要なものだけ覚えればいいのです。

バックアップを自動化しておくだけでも随分ラクになりますね。
HDDは消耗品という事を頭に置いて、いざと言う時に備えてみてはどうでしょうw
ファイルのバックアップ用にバッチファイルを作成してxcopyコマンドに
「/D」のスイッチを入れて日付が新しかったらコピーするという事を
やってる方もいると思います。

さて、日付が新しい場合だけコピーするはずなのに、何故か更新してないファイルが
毎回コピーされてしまう・・・という事象が発生する場合があります。
実は、これはファイルフォーマットの違いによるファイル更新日付の
精度が違う事によって起こります。

NTFSフォーマットで使用しているPCに外付けHDDを付けたとします。
ことのとき、外付けHDDもNTFSならば問題はありません。
もしNTFSではなくFAT32などの異なるフォーマットだった場合に問題が生じます。
FAT32でのファイルの更新時刻の精度は2秒です。
つまり、2秒単位に切り捨てられてファイルの更新時刻が刻まれます。
しかしNTFSの場合の更新時刻の制度はググってみたところ、100ナノ秒のようです。

1秒は10億ナノ秒なので例えば2013年12月29日 2時53分5秒253...という時刻のファイルを
FAT32でフォーマットされているドライブにコピーすると2秒単位で切り捨てられるため
2013年12月29日 2時53分4秒になるかと思います(試してないのでこうなるか不明)

そうした場合、秒の単位だけで見たとしても5秒と4秒を比較すると5秒の方が新しいですね?
そのため「ファイルの日付が新しい」と判断されてしまいコピーが実行されてしまいます。
全く変更がないのに関わらずです。

じゃあNTFSフォーマットなんかをFAT32のドライブへ差分コピーするにはどうすればいいんでしょうか?
その場合、xcopyの/Dスイッチの代わりに/Mスイッチを使うと良いです。
/Dは同一のファイルがあった場合にコピー元のファイルの日付の方が新しいと上書きされます。
では/Mはどういった場合にコピーされるかというとアーカイブ属性がオンのファイルだけをコピーし、
そのファイルのアーカイブ属性をオフにします。

アーカイブ属性とは何かというと、ファイルをバックアップ取るかどうかの目印のようなもので
ファイルを新規で作成したり更新したりするとオンになります。
つまり、新規のファイルや更新されたファイルをコピーしてアーカイブ属性をオフにするので
まさにバックアップに持って来いですね。

NASなんかへコピーする場合もこういうファイル時刻の制度の違いで無駄なコピーが多発する場合は
アーカイブ属性がオンだけをコピーする/Mスイッチで行うと、うまくいく場合が多いでしょう。
アーカイブ属性はNTFSやFAT32なんかのWindows用のフォーマットにはありますが、
NASで使用されているXFSやLinuxのext*にはあるかどうかわかりません。(ないんじゃないの?)
なのでWindowsのローカルディスクからNASへのコピーはこれで対応できますが、
逆はできないでしょう。(WindowsでNTFS使ってるファイルサーバーなら逆も可だろうけど)


以下、画像は参考です。
bk001bk002

PCを長く使っていると、だんだん調子が悪くなっていって起動しなくなってしまったりする場合があります。

まぁ、5年も使えばそろそろ買い替え時かな?

と思いますが、PCに保存していたデータはどうなるの?

って話です。

 

PCが起動しなくなった場合はハードウェアが原因かソフトウェア(OS)が原因かで

対応が変わってきます。

 

まず、ソフトウェア(OS)のシステムファイル等が何らかの原因で破損して

立ち上がらなくなった場合です。

 

この場合、起動に必要なファイルが読み出せないだけでHDDそのものは生きており、

保存しているファイルはきちんと残っている場合が多いです。

まず1つの対処方法としては、HDDをPCから取出してUSB等で繋ぐHDDケースにセットして

外付HDDとしてデータを読み出すという方法です。

慣れたWindowsでファイルのコピーができますが、HDDを取り出したりするのにPCを分解したりして

結構めんどいです。

また、外付HDDとして接続するためのケースなんかも用意する必要があります。

 

さて、自分で分解したりするのもめんどいし、壊したりする可能性もあるからあんまりいじりたくない!

って人もいるでしょう。わたしです(^o^)

そういう人はLiveCDという、CDやDVDから直接起動できるOSがあります。

Linuxベースのものが多いですが、GUIによる操作が可能でWindowsっぽくファイルもコピーできます。

そのCD(DVD)をPCに入れて電源を入れると(BIOSの優先デバイスは設定しといてねw)

インストールする必要もなく、デスクトップ画面が立ち上がります。

有名どころだと、KNOPPIXやUbuntuとかでしょうか。

 

これで立ち上げたらUSBのメモリ等をつけて、必要なファイルをコピーする事で

取出しが可能です。(個人的にはこの方法をよく使います。分解はめんどいので)

 

 

さて、ハードウェアの障害により立ち上がらなくなった場合はどうでしょうか?

ぶっちゃけHDDのエラーでなければ上で書いたようにバラしてディスクをUSBで繋いで

外付HDDとして認識させる事で取出しできます。

では、HDDが壊れた場合はどうでしょうか?

\(^o^)/

そうですね、潔く諦める事も大切ですw

 

専門のデータ復旧業者に依頼するとデータを復旧してくれますが(確実ではない)

見積もりを依頼すると、なめてるんですか?というぐらいの金額を提示される場合もあります。

個人ではここまでやるのは難しいのでどうしてもという人は依頼するしかありません。

物理的に壊れているのであれば、使えば使うほど(読み書きすればするほど)症状が悪化する場合が

ほとんどなので、復旧依頼するなら早めがいいと思います。

 

以前、B社製のNASが立ち上がらなくなってしまい、データをどうしても復旧させなければなりませんでしたが

NASのOSの問題で、HDDの物理故障でなかったため取り出せた事がありました。

Windowsでは読み出せないファイルシステムだったのでこの場合もLinuxのLiveCDを使って

別の外付HDDにコピーしました。

また、そのNASはRAID搭載でしたが、RAID構成がRAID1(ミラー)だったため取出しが比較的簡単でした。

もし、RAID5とかだったら分散したデータを複数のディスクから読み出さないといけないので

復旧が困難だったでしょう・・・(SoftwareRAIDなら尚更)

 

まぁ、このような事もいきなり発生する可能性もありますので

大事なファイルは、別媒体にバックアップをとっておくことが一番大事です。

 

ハードディスクは消耗品という事を忘れてはなりませんw

近年はNAS(ネットワーク接続のハードディスク)が結構普及していて

事業所だけでなく一般家庭なんかでも導入している所もあると思います。

え?してないですか?まぁ細かいことはいいんですw

 

そのNASですが、製品なんかの説明見ると

ミラーリング(RAID1)でデータ保護!

みたいな事が書いてあったりします。 

最近はNASだけでなく、USB接続のディスクもRAID対応のものが結構ありますね。

 

たしかに間違いではないんですけど、これは誤解を招きそうな表現だと思うのです。

 

そもそもRAIDとは何かというと、複数のディスクを

ひとつのディスクとして使う仕組みで、速度や故障耐性の向上を目的としています。

また、RAIDのレベルも色々あり、RAID0、RAID1、RAID5、RAID6、RAID01、RAID10

と、様々です。

最近はRAID6とかも結構使われています。

RAID2~4はほとんど使われていません。

 

RAIDはレベルが高いほど優れているとかではなく、

用途によってどのRAIDを使うかを選定します。

 

ちなみにここで取り上げてるRAID1について説明します。

 

RAID1はミラーリングとも言われ、ディスクは最低2台使用します。

2台以上のディスクに全く同じ内容のデータを書き込む事により

ディスクが故障しても残りのディスクに同一内容のデータが

残っているため、そのまま読み書きが可能です。

ディスクの台数が増えるとそれだけ信頼性も上がりますが、

ディスクの利用効率は下がります。(2台構成でも3台構成でも使える容量は1台分!)

 

で、タイトルにもあるRAID1でデータの保護!ですが、

ミラーリング(RAID1)では2台のディスクに同一の内容を書き込むから

ディスクが片方壊れても、もう片方のディスクが生きていれば、

同じ内容のデータがあるため、データの取り出しが可能で消失はしません。

 

なるほど、確かに保護になりそうですね。

でもこれではバックアップいらないじゃん?と誤解をしてしまいます。

 

そもそもRAIDはデータの保護を主目的としているのではなく

故障耐性や速度の向上が主目的なわけです。

故障耐性とは、その名のとおり、故障に対する耐性ですw

 

ディスクに障害が発生しても残りのディスクでシステムを停止しないで使い続けられる、

その間に壊れたディスクを交換すれば修理のためにシステムを全て止める必要が無い!

つまり、いつでもどこでもシステムが使える状態を保つための耐性です。

こういうのを可用性(アベイラビリティ)と言います。

 

バックアップは万が一に備えてデータを別の記録媒体にコピーしておきますよね?

ディスクが壊れたり、謝って消してしまった場合はバックアップから戻せば戻ります。

 

RAID1の場合、ディスクの故障でデータが失われるのをそれなりに防ぐ事ができますが

誤って消した場合はどうでしょう?

もう片方のディスクも同一の内容になるため、「消した」事まで同一になり、

データが消えてしまいます。

バックアップは基本的に別の記録媒体に記録するため、こういった事象にも対応可能です。

 

ミラーリングとバックアップはそもそも別物なのです。

 

製品の説明をよく読むとバックアップは別に取っておく事をお勧めしますとか書いてあったりしますw

いや、そこは強調して書きましょうよw

 

また、RAIDはディスクの整合性が保たれていないと意味がありません。

片方のディスクが壊れたのでもう片方からデータを読み出そうとしたら

エラーが出て読み出せなかった!という場合もあります。

ディスクはデータを読み出す時、不良ブロックがあればその領域を使えないようにし、

読み出し可能だったらそこのデータを別の正常なブロックへ移します。

 

つまり、読込は片方のディスクだけ使ってて、もう片方 は書き込みのみしか行っていなかった場合

いざその領域を読み出そうとしたら不良ブロックになってて読み出せなかった!

という事もありえます。

常に読み出しを行っていれば不良ブロックがまだ読める状態の時にそこのデータを別のブロックへ

移せてたかもしれません。 

なのでRAIDをあまり過信するのは危険なです。

 

RAID機能搭載の機器にはRAIDメンテナンス機能なるものがついているものもあります。

なのでたまにはメンテナンスを走らせてみるのがよいかもしれません。

頻繁にやる必要はないですが、最低でも半年に1回はやったほうがよいかもしれないですね。 

 

ディスクが壊れたら新しいディスクと交換するまで使えなくなるのが困る!

という場合にはRAID1やRAID5は目的に合ってます。

片方のディスクがまだ生きている間に壊れた方のディスクを交換すれば良いのです。

新しいディスクに交換したら多くの場合は自動的にRAIDの再構築(リビルド)が

行われ、しばらく経つと復元が完了します。

 

ディスクが壊れても買い替えまでガマンできるんであれば、

あえてRAIDの導入を考える必要はないでしょうw

 

まぁ、ミラーリングでデータ消失のリスクが減るのは事実ですけどね。

 

ハードディスクは消耗品なのでいつか必ず壊れます。

それがいつかはわかりませんw

 

壊れたディスクからデータの取り出しを専門業者に委託すると

物凄い金額をふっかけられる事が多いので、

重要なものは必ず他のの記録媒体へバックアップしておきましょうw

 

ついでに書きます。

CD-RやDVD-R(BD-Rもかな?)も過信は禁物です!

なぜなら、時間が経つと色素劣化などで読めなくなる可能性があるからです。

なので最低でも5年以内に別媒体にコピーしなおすようにしましょう。

 

データの保管も手がかかってめんどいですね・・・

[ 1 ]      4件中 1-4件