Windows7 の Program Files とか、ProgramData を別ドライブに置く。
このメモは、Windows7 の新規インストール時に、 Program Files とか、ProgramData を別ドライブに置くための方法のメモです。
すでに運用中の環境での方法を探している方は、ここの情報は役に立たない可能性があります。
0.前提
Windows7 の新規インストール時に、
Program Files、Program Files (x86)、ProgramData、Users の各フォルダを、
別ドライブへ配置する。今回は以下の感じ。
system ->(SSD 1)
Program Files、Program Files (x86) ->(SSD 2)
ProgramData、Users ->(HDD)
1.Windows7 をインスコ開始
一度再起動を挟んで、最終処理のユーザーアカウントを作るところまで進んだら、
アカウントを作らず、以下の作業に入る。
2.コマンドプロンプト起動
shift + fn10 を押して、コマンドプロンプトを起動。
3.Administrator を有効に
最後にc:に残ったフォルダ処理をすんなり行うために、Administrator を有効にしておく。
コマンドプロンプトで、
net user administrator /active:yes
4.ドライブレター付け替え
ドライブレターは意図した通りに並んでないことが多いので、diskpart を使って付け替える。
今回は、以下のように変えた。
system -> C: (SSD 1)
Program Files、Program Files (x86) -> D: (SSD 2)
ProgramData、Users -> E: (HDD)
diskpart の使い方はググれ。
5.移動先へフォルダをコピー
非表示のものや権限などを含め、ごっそりとコピーする。
robocopy “C:¥Program Files” “D:¥Program Files” /E /COPYALL /XJ /B /R:1 /W:1
robocopy “C:¥Program Files (x86)” “D:¥Program Files (x86)” /E /COPYALL /XJ /B /R:1 /W:1
robocopy “C:¥ProgramData” “E:¥ProgramData” /E /COPYALL /XJ /B /R:1 /W:1
robocopy “C:¥Users” “E:¥Users” /E /COPYALL /XJ /B /R:1 /W:1
ProgramData のコピー時にはいくつかエラー出るけどどんまい。
インスコ終了後、そのへんは処理する。
6.ジャンクションの設定
コピー元(c:)から移動先(d:、e:)へ、当該フォルダのジャンクションを作る。
まずフォルダ削除。隠れてるのとかもごっそりと。
ProgramDataではエラー出るかもだけどどんまい。あとでやっつける。
rmdir “C:¥Program Files” /S /Q
rmdir “C:¥Program Files (x86)” /S /Q
rmdir “C:¥ProgramData” /S /Q
rmdir “C:¥Users” /S /Q
続いてジャンクション作成。
ProgramDataではエラー出るかもだけどどんまい。あとでやっつける。
mklink /j “C:¥Program Files” “D:¥Program Files”
mklink /j “C:¥Program Files (x86)” “D:¥Program Files (x86)”
mklink /j “C:¥ProgramData” “E:¥ProgramData”
mklink /j “C:¥User” “E:¥User”
7.レジストリの書き換え
環境変数のパスとか、アプリケーションのインスコ時とかに、
レジストリ中に書かれた値を参照するので、変更してやる。
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows¥CurrentVersion
C:¥Program Files、C:¥Program Files(x86) を
D:¥Program Files、D:¥Program Files(x86) に書き換える。
HKEY_LOCAL_MACHINE¥SOFTWARE¥Wow6432Node¥Microsoft¥Windows¥CurrentVersion
C:¥Program Files、C:¥Program Files(x86) を
D:¥Program Files、D:¥Program Files(x86) に書き換える。
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥WindowsNT¥CurrentVersion¥ProfileList
C:¥ProgramData、C:¥Users を
E:¥ProgramData、E:¥Users に書き換える。
8.インスコを完了させる
コマンドプロンプトを終了し、
Windows7のインスコの残りの作業(=ユーザー定義など)を済ませる。
9.再起動したら、Administrator でログイン
インスコ終了し、再起動したら、Administratorでログイン。
10.ProgramData の後処理
6の工程で、ProgramData 周りではエラー出てるはずなんで、追加処理してやる。
コマンドプロンプトを管理者権限で開き(いや管理者権限必要ないかもだけど)、
rmdir “C:¥ProgramData” /S /Q
mklink /j “C:¥ProgramData” “E:¥ProgramData”
11.当該フォルダが、全てジャンクション化してるか確認
コマンドプロンプトで、c:¥ へ移動後、以下で確認する。
dir /a
あとは再起動とかして気分新たにドゾ。
終わり。■