Windows10 の Program Files とか、ProgramData を別ドライブに置く。
前回は、windows 7 で同じ事やったんですが、8700K機導入に当たって、Windows10で同じことをやる必要が出てきました。
前回同様、USBでの新規インストール時に、 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.Windows10 をインスコ開始
一度再起動を挟んで、最終処理のユーザーアカウントを作るところまで進んだら、
アカウントを作らずに、次の作業に。
2.コマンドプロンプト起動
shift + fn10 を押して、コマンドプロンプトを起動。
3.DVDドライブに適当にディスクをつっこみ、インスコUSBで再起動
適当なDVDをぶっこむのは、再起動後に「無人応答ファイルから
というエラーを出させ、インスコを止めるため。
これ以上先に進むと、レジストリやらフォルダやらを使いはじめて、ロックされるので、
その後の作業がめんどうになるのです。
DVDをぶっこんだら、開いてあるコンソールで、
shutdown -r
を入力し、インスコUSB指定で再起動させる。
要は、インスコをやり直す感じで。
しかし、エラーがでたら、ダイアログはそのまま放置(ここ大事)し、
shift+fn10でコンソールを開く。
なぜこんなめんどくさいことをするかというと、
移動対象フォルダを別ディスクに移す作業をするための、スタンドアロンの別OSを準備するのが
めんどくさいからw
USBで動くLINUXとかを準備できるなら、それで起動して、フォルダを移動するほうが早い。
4.ドライブレター付け替え
此処から先は、Windows7 のときと同じ。
ドライブレターは意図した通りに並んでないことが多いので、
コンソールから、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
6.ジャンクションの設定
コピー元(c:)から移動先(d:、e:)へ、当該フォルダのジャンクションを作る。
まずフォルダ削除。隠れてるのとかもごっそりと。
rmdir “C:¥Program Files” /S /Q
rmdir “C:¥Program Files (x86)” /S /Q
rmdir “C:¥ProgramData” /S /Q
rmdir “C:¥Users” /S /Q
続いてジャンクション作成。
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.DVDも、インスコUSBも引っこ抜いて、再び再起動
今度は、先程のインスコ途中から再開するので、shift + fn10 でまたまたコンソール起動。
8.レジストリの書き換え
環境変数のパスとか、アプリケーションのインスコ時とかに、
レジストリ中に書かれた値を参照するので、変更してやる。
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 に書き換える。
9.インスコを完了させる
コマンドプロンプトを終了し、
Windows7のインスコの残りの作業(=ユーザー定義など)を済ませる。
10.当該フォルダが、全てジャンクション化してるか確認
コマンドプロンプトで、c:¥ へ移動後、以下で確認する。
dir /a
あとは再起動とかして気分新たにドゾ。
終わり。■