今使ってるヘボノートPC、メモリ1GBしかないのに無理にVista入れてますw
ReadyBoost使えばパフォーマンス改善するのかなぁ…対応USBメモリ持ってないけどww
さて、ちょっと前にじゃんぬさんの所でWindows のパーティションをどう切り分けるか?という話題がありました。
俺は「Program FilesはCドライブ」って答えたんですけど…
先日、ノートに搭載されてる内蔵ドライブの空き容量が2GBを切っちゃって、マイコンピュータ上での容量バーがヤバげに赤くなってしまいました(スクリーンショット残ってないや)。
ということで、思い切ってProgram Filesフォルダを、500GBある外付けディスクに移動することを計画。
しかし、じゃんぬさんへのレスにも書いたけど、Windowsをインストールしただけで、かなりのファイルがProgram Filesに置かれます。
その後、新規にインストールするものだけ別ドライブってのはなんとなくヤダ。
どうせなら、Program Files丸ごと別ドライブに移したいわけです。
が、フォルダのパスがD:\Program Filesに変わっちゃうと、既存のプログラムが動かなくなってしまう。
フォルダパスはC:\Program Filesのまま、別のドライブに移すことなんてできるのか?
…実はできるんです。
マイコンピュータを右クリックして管理→ディスクの管理を開きます。
ボリュームを選んでドライブ文字とパスの変更で追加を押すと、ドライブ文字の変更の他に次の空のNTFSフォルダにマウントするというのがあります。
これを使うと、任意のボリュームを、あたかもフォルダであるかのように見せかけることができるんです。
これで、500GBの外付けHDDの中に作ったパーティションを、C:\Program Filesとして使うことができます。
まず、外付けHDDを単一パーティションで使っていたので、既存のパーティションをちょっと縮めて、新しいパーティションを作ることにします。
とはいえ、パーティションの編集なんて日常的にやる作業でもないのに、高い金を出してPartition Magicとか買うのも馬鹿らしいので、フリーのツールを探します。
今回は、GParted LiveCDを使いました。CDブートのLinuxながら、USB接続のNTFSディスクが扱えるというスグレモノです。
あらかじめ、対象ドライブをデフラグをしておくことを忘れずに。
次は、Program Filesフォルダを、この外付けパーティションに移さなければなりません。
Program Filesフォルダの中のファイルは、Windowsを実行していれば、何かしら使われているため、移動することができません。
そこで、Windowsを実行していない時に移動しなければならないのですが、別のPCを持っていない身としては、なんとかこのマシンで作業したい。
でも、DOSの起動ディスクなんかではNTFSにアクセスできない。
というわけで目を付けたのがWindows PEです。Windowsのセットアップやトラブルシューティング用に使える、起動ディスクの新しい形ですね。XPとVistaで利用できます。
起動ディスクを作るのは面倒なので、既にあるものを応用します。そう、Vistaのセットアップディスクです。Windows Vistaのインストーラも、このWindows PEテクノロジでできているんですね。
さて、いよいよ作業に入りましょう。
Windows Vistaのインストールディスクを突っ込んで、CDから起動します。
プロダクトキーの入力ダイアログが出たところで、そっちは無視してShift + F10。コマンドプロンプトが出てきました。
まずはdiskpartコマンドで、Program Filesとして使う予定のボリュームのドライブレターを確認します。Windows PEを使っているときは、普段Windowsを使っている時とはドライブレターが違うことがあります。
diskpartはパーティションをいじるツールなのですが、こいつではGPartedみたいに既存のパーティションのリサイズはできません。なのでこいつは、ドライブレターの確認のためだけに使いました。
フォルダごと移動なのでxcopyを使おうと思ったら、「Vistaからはrobocopyを使え」って言われたのでそっちを。
Program Filesを丸ごと移動するのですが、ちょっと注意。
新しいボリュームをProgram Filesフォルダとして使うので、外付けボリュームに移動するのはProgram Filesの中身だけです。
空のProgram FilesフォルダはC:ドライブに残しておく必要があります。
移動中にちょっとした事故が発生。どうも処理に失敗している模様。
見ると、Program Files\Windows NT\アクセサリというフォルダで移動エラーが発生しています。
dir /aで見ると、このフォルダ、同じWindows NT内にあるAccessoriesというフォルダへのジャンクションです。
リンク先のAccessoriesが先に移動されて削除されてしまったのでエラーになっているんですね。
Ctrl+Cでrobocopyを中断し、アクセサリを削除。このジャンクションはあとで復活させます。
移動が終わったら、次は外付けボリュームをC:\Program Filesにマウントします。
Windowsを起動するときっとエラーが大量に出るので、引き続きWindows PE上で作業します。
GUIのコンピュータの管理は使えないので、コマンドプロンプトでなんとかします。
このマウントに使うのはmountvol。
まずは一度mountvolとだけ打ち込んで、目的のボリュームのGUIDを確認しておきます。
続いて mountvol "C:\Program Files" <さっき確認した長ったらしいGUID> と入力。実際にはGUID部分はコピペです。
最後にもう一度、素でmountvol。目的のGUIDの下にC:\Program Filesって出てれば成功。
さて、緊張の瞬間。
裏で放置していたVistaのセットアップをキャンセル、PCを再起動して、Windowsを通常起動します。…成功。
無事Windowsが起動したら、コンピュータの管理を開きます。
外付けボリュームに通常のドライブレターが割り振られているので、これを削除。
それから、mklinkコマンドを使って、C:\Program Files\Windows NT\アクセサリを復活させておきます。
これでお引っ越し作業はすべて完了。今のところ、特にエラーは発生していません。