凡人 (求職中) の素人視点なので、真に受けず、疑って読んでくれ。
突然だが、知り合いからマシンがBSODで復旧できないということで見てくれと頼まれた。
俺はWindowsはパーティションに入っているが、どうしても必要なとき以外は起動しない。普段は使わないので、Windowsに詳しくもない。だが、より詳しくない人から頼まれたので、見に行った。
一通りのことはやってみたようだったので、俺にどうこうできる技術はないし、Windows自体を修正修復を試みるのは可能だとしても時間がかかりそうだし、そもそも可能かも不明なので、新たにインストールすることにした。
新規インストール自体は問題無いが、考慮すべきは維持すべきデータの移行だ。大体普通の人は同じドライブに全てが入っている。なのでどのデータが必要かを聞いて、手動でバックアップを試みた。
しかし後でわかったが、Windowsの新規インストールは古いディレクトリをそのままに可能だった。
とにかくバックアップだ。Windowsは起動できないので限られた復旧(リカバリ)モードでのDOS Prompt操作となった。こんなのを扱うのは何年ぶりだろう。今回使ったコマンドを備忘として書いておく。
バックアップ用の外付けをつなげるが、各ドライブ、論理ディスク等の割り振りが分からないとバックアップ元とバックアップ先が指定できない。
ネットで調べた結果、以下のコマンドを使用:
> wmic logicaldisk get deviceid, volumename, description
これでドライブの割り当てを得る。そして以下でデータをバックアップする:> robocopy C:\path\to\BackUp_Source_Directory F:\path\to\Backup_Target_Directory /r:0 /w:0 /sl /xj /e
F: というのは上記wmicコマンドで得た、俺が取り付けた外付けSSDのドライブ名だ。環境によって変わる。C: から始まるバックアップ元も環境次第。
各オプションは次を指定する:
/e すべての階層のファイルをバックアップ
/sl シンボリックファイルは、参照先のファイルはコピーせずに、自身のみをコピー。これは自己参照があるとコピーが永遠に続くため。
/xj 上記と同様、ジャンクションポイントでの自己参照による繰り返しコピーを避ける。
/r:0 リトライ回数をゼロにする。バックアップ対象のファイル数とサイズが膨大なため。
/w:0 待ち時間をゼロにする。バックアップ対象のファイル数とサイズが膨大なため。
リトライはやった方が良いが、時間がかかりすぎると思った。エラーが無かったようなのでこのままにする。バックアップ後、いくつかファイルが見つからないと言われたが、見てみると隠しファイル属性となっていた。
> dir /s | find <ファイル名の一部>
等としてファイルの存在をチェック。Explorerで表示するには:
> attirb -h -s -a <ディレクトリ名やファイル名>
とする。
その後新規インストールしたが、バックアップ元のファイルは空きスペースがあれば維持できるので結局は問題なかった。
自分のマシンなら効率的にデータ保護できるし、面倒も少ないが、人のモノというのは気を使うしその人のこだわりや一見変な?嗜好もあるし、とてもやりにくい。もう2度とやりたくない。