Windows10 の Program Files とか、ProgramData を別ドライブに置く。

メモ    0 
2018/0310

前回は、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

   あとは再起動とかして気分新たにドゾ。

終わり。■

ken-dan

コメント、お願いします。