"HDDトラブル"シリーズ、最終章
いやもう、移転後から延々HDクラッシュした話がずっと続いてきましたが、それもこれで最後。……の筈。
結局再インストール
前回、Windowsの上書きインストールをした結果、不具合は治ったがそれ以上の不具合が出るというトンデモな状況に陥った我がPC。
シャレにならないので結局再インストールする事となった。
つまり、また大量のアプリケーション群入れなおし、これはやっぱり面倒だ。今回は仕方ないにしても、次回Windowsの再インストールをする事になった時出来るならば省略したい所だ。
早い話が、アプリケーション群のインストール先である"Program Files"フォルダを別ドライブに出来ればいいのである。各アプリケーションインストール時にインストール先に別ドライブを指定すればいいような気もするが、指定し忘れなどを考えるとシステムレベルでの設定を行いたい。
情報を求めてネットの海を放浪
やはりレジストリだろうか?ググッてみたが、それらしいエントリは引っ掛からない。そういう設定は出来ないのか……諦めかけていた頃、とあるページに行き着いた。
そこでWindows NT/2000/XPを利用している人にオススメしたいのが、NTFSというファイルシステムだ。名前の通り、Windows NT用のファイルシステムとして開発され、改良されながら後継のWindows 2000/XPにも引き継がれている。FATに比べると機能は段違いで、細かなアクセス権の制御や圧縮・暗号化機能などを利用できる。FATに比べるとアクセスは遅いものの、現在の高速なハードディスクでは問題ないレベルだ。原理的に突然の電源断によるファイル破損に強いという利点もある。ところが、NTFSにはWindows標準では使えない、または使い切っていない機能がいくつかある。
NTFSではハードリンクというファイル名保持機能を利用して、1つのファイルに複数のファイル名をもたせることができる。
リパースポイントという機能を使ってフォルダの別名を作ることができる機能。またリパースポイントは、ジャンクションと呼ばれることもある。
……これだ!!
……というか、こんな機能あったんだな……知らなかった……
早速やってみる
今回の場合、『Program Filesフォルダを別ドライブに移す』のが目的なので、リパースポイントの作成、となるのか……全体的な流れとしては、
Program Filesフォルダ丸々別ドライブにコピー → 旧Program Files削除 → 新Program Filesへのりパースポイント作成 → (゚Д゚)ウマー
Windows再インストール時、システム&アプリケーション用に作っていたパーティションを更に分割(Cドライブ/Dドライブ)。Windowsの再インストール。さぁ、ココからが肝心!!
念の為"セーフモードとコマンドプロンプト"で再起動後、Program Filesフォルダ以下をxcopy
を使って丸々別ドライブ(Dドライブ)にコピー。旧Program Filesフォルダを丸々削除する。前もって落としておいたハードリンク/ジャンクション作成ツールを使ってDドライブの新Program FilesフォルダをCドライブのProgram Filesにリパースポイントとしてリンクさせる。
再起動後、Windowsを通常起動し動作を確認してみると……うん、問題なく動く!
新しいソフトをインストールしても、不具合無し!!
これでWindowsを再インストールする事になっても、アプリケーション群は残る。という夢のような環境が完成した。仮に再インストールによって動かなくなったソフトが出てきたとしても、そのソフトだけ入れ直せばよくなったわけだ。素晴らしい!!
- レジストリ
- Windowsが用意する各種設定保存用データベース。今までiniファイルと云う『ソフト毎に別の設定ファイル』に保存する形式を改めたもの。
ただし、Windowsシステム自体の設定も含む為、下手にいじったらWindowsが不安定になる、ある特定の設定だけをバックアップしにくい、という恐ろしい弱点を持つ。その為レジストリ嫌いなプログラマ/ユーザは多い。実は私も嫌い。
- ググッてみた
- ググる。検索エンジンGoogleで検索する事。
xcopy
- Windowsのコマンド プロンプトにて使うコマンドで、フォルダやファイルをコピーする。様々なオプションを指定でき、主にバックアップを取るときに使われる。
通常のコピーを行うcopy
というものも在るが、xcopy
だとアクセス権などもきちんとコピーする事が出来る。
- 旧Program Filesフォルダを丸々削除
- 正確にはこの時点ではリネームしただけ。コマンドプロンプト上で中身のあるフォルダを削除するのは非常に面倒な為、全て終わった後でWindowsのエクスプローラ上で削除した。