Windows 7 以降のWindows システムではインストールメディアからシステムをインストールするとシステムパーティションとWindowsパーティションが作成されます。
KBE(WinPE)ではこのパーティションは通常それぞれ CドライブおよびDドライブとして認識されます。
KBEにおいて、DVDドライブが認識されているとDにDVDドライブが割り当てられていると他のドライブレターが割り当てられることでdiskpartスクリプトがあらかじめ想定したタスクを実行できず展開できない場合があります。
Cドライブのみキャプチャし展開においてシングルパーティションイメージを扱うようにしてください。
SDAによるシステムイメージ展開ではマスターイメージのベースとなるシステムをインストールする際に、SDAのデフォルトのタスクを使用したスクリプトインストールを行うことで「システムパーティション」を作成しないインストールを行うことがベストプラクティスになります。
Windows 10/11 イメージの作成・展開の例 (4261222)
この場合KBEおよびオペレーティングシステムからみてもCドライブのみを処理することになり後述のシナリオを回避できます。
重要: SDA 6.1以上のメディアマネージャで作成したブート環境はタスク開始前(ブート環境起動時)に光学ドライブが割り当てられたドライブレターを解除する処理を行うようになっておりDVDやSDカードに起因する事象は回避できます(K2-5119)
[シナリオ1]
キャプチャ時にDドライブがDVDにアサインされたため、Systemパーティション=C、DVDドライブ=D,Windowsパーティション=Eとなった状態でCとEをキャプチャした。
KBEが割り当てたドライブレター:
System = C
Windows = E
DVD-ROM = D
キャプチャされたイメージ: CとEから取得されました。
[解決策]
C,Eから取得したイメージに対しては、DをEに置き換えたDiskpartスクリプトをご用意ください。
ドライブレターがC,Dのときのスクリプト例は 「K2000によるシステムイメージのキャプチャおよび展開の例 (147906)」 を参照ください。
C,Dとしてイメージを取り直したいときには[シナリオ2]の解決策をご検討ください。
[シナリオ2]
キャプチャ時にDドライブがDVDにアサインされてしまい、Systemパーティション=C、DVDドライブ=D,Windowsパーティション=Eとなっている。
SystemパーティションをC、WindowsパーティションをDとしてキャプチャしたい。
KBEが割り当てたドライブレター:
System = C
Windows = E
DVD-ROM = D
[解決策]
キャプチャを実行する前に[修復ツール-コマンドプロンプト]を使用してdiskpartを実行します。
X:> diskpart .....diskpartを起動します。
diskpart> select volume 0 ......DVDドライブを選択します。
diskpart> list volume ......念のためDVDにドライブレターDが割り当てられていることを確認します。
diskpart> assign letter="G" .....無難なドライブ名としてGを割り当てます。T、X、Y、Z はK2000で使用することがあるので避けてください。
diskpart> select volume # ...... Eのドライブレターを持つパーティションを探し#には番号を指定します。
diskpart> assign letter="D" .......ドライブレターDを割り当てます。
diskpart> list volume .......SystemにC、WindowsパーティションにDが割り当てられたことを確認します。
diskpart> exit .......diskpartを終了します。
X:> exit ....... コマンドプロンプトを終了します。
この状態でCおよびDドライブをキャプチャしてください。
なお、ここでのドライブレターの変更はKBE(WinPE)をシャットダウンすると解除されます。OSそのものの設定には影響しません。
[シナリオ3]
キャプチャイメージのドライブレターはSystemパーティション=C、Windowsパーティション=DとなっているがKBEがDVDにDドライブを割り当てているためdiskpartのプレインストールタスクがDをフォーマットしようとしてうまくいかない。
KBEが割り当てたドライブレター:
DVD-ROM = D
展開予定のイメージの持つドライブレター: C,D
[解決方法]
プレインストールタスクの先頭から パーティション作成タスクの間に次のようなBATタイプのプレインストールタスクを追加します。
名前: 任意(例: Reassign Drive Letter for C or D)
タイプ: BATスクリプト
実行時環境: SDAブート環境(Windows)
BATスクリプト:
wmic logicaldisk get Name /value | find "Name=C:"
if %errorlevel% equ 0 (
echo select volume=C > X:\Windows\System32\mapremove.conf
echo assign letter=P >> X:\Windows\System32\mapremove.conf
diskpart /s X:\Windows\System32\mapremove.conf
echo remove driveletter C
)else (
echo Here is no C: drive
)
wmic logicaldisk get Name /value | find "Name=D:"
if %errorlevel% equ 0 (
echo select volume=D > X:\Windows\System32\mapremove.conf
echo assign letter=Q >> X:\Windows\System32\mapremove.conf
diskpart /s X:\Windows\System32\mapremove.conf
echo remove driveletter D
)else (
echo Here is no D: drive
)
パーティション構成はできるだけシンプルにすること(シングルパーティション)をお勧めします。
展開先のPCがさらにパーティションを持っていたり、USBフラッシュドライブを使用したシステム展開を行う際にはドライブレターがより多く割り当てられる可能性があるため、注意が必要です。
[関連記事]
スクリプトインストールの構成例 (150140)
K2000によるシステムイメージのキャプチャおよび展開の例 (147906)
Windows用システムイメージ作成のベストプラクティス(121734)
K2000 Deploying two partition image via USB image deployment (152729)
Capturing and Deploying Multiple Partitions for Windows 7 and Later (113970)