皆さんは、外付けHDD/SSDにWindowsをインストールしたいけど、「外付けディスクにはでインストールできません」
というようなエラーに出くわしたことがあるでしょうか?
- OSが壊れたからほかのPCから再インストール作業をしたいけどPCを分解するのは面倒...
- ブートロックがかかっていて、USBインストールメディアがブートができない...
など
今回は、PCとHDD/SSDと、USBのSATAケーブルがあれば簡単にインストールできるやり方を説明します。
UEFIとBIOSでやり方が少し異なるので、分けて解説します。
# BIOSの場合
Diskpartを使いたいので、まずはPowershellを起動します。
管理者権限で実行してください。
diskpart
と入力してdiskpartに入ります。
DISKPART> となっていれば、OKです。
PS C:\Users\masam> diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: MASSANGO
DISKPART>
# ディスクの初期化
UEFIの場合、EFIシステムパーティション(ESP)が必要になりますが、BIOSの場合は必要ありません。
// インストールするディスクを見つける
list disk
// ディスクの選択
select disk X // Xにはインストールするディスクの番号
// パーティションを全消し
// 選択したディスクのすべてのデータが削除されます
// よく確認して下さい
clean
// MBRに変換
convert mbr
// プライマリパーティション作成
create partition primary
// NTFSでフォーマット
format fs=ntfs quick label=Windows
// ドライブレターを割り当て
assign letter=W
// パーティションをアクティブに
active
exit
ドライブレターはWです。
後ほど使いますので、覚えておいてください。
# ISOイメージのマウント
まずは、ISOファイルをマウントします。
今回はWindows Server 2008を展開しますが、Windows 11でも同じやり方でできます。
以下のリンクから、下の方にディスクイメージ(ISO)をダウンロードするというところがあるので、
まだISOファイルをダウンロードしていない場合はここからダウンロードしてください。
ダウンロードしたISOファイルをダブルクリックすると警告が出ますが、開くを押すとマウントされます。
アイコンが私とは違うかもしれませんが、マウントが成功していればこのようなアイコンが表示されると思います。
マウントすると、ドライブレターが自動で割り振られます。(今回はFドライブ)
このアサインをDismコマンドで使うので、メモしてください。
# Dismコマンドで展開する
Powershellを使って、このコマンドを実行します。
PS C:\Users\masam> dism /apply-image /imagefile:F:\sources\install.wim /index:1 /applydir:W:\
変更の必要な部分だけ、説明します。
- /imagefile:F:\sources\install.wim
- 展開元のイメージファイルを指定する
- /index:1
- winイメージの中には複数のエディション(Home、Pro、Enterpriseなど)が入っていることがあります
- index:1 はその中の1番目のエディションを展開するという指定です
- /applydir:W:\
- 展開先のドライブが指定できます
- 記事通りに進んでいれば、ドライブレターはWです
Wと書かれているところを変更すれば、別のドライブレターを指定できます。
# ブートローダーを書き込む
ブートローダーを書き込むためには、bcdbootコマンドを使用します。
このコマンドは、指定したドライブにあるwinイメージから、起動ファイルを作成し、システムパーティションにコピーする役割を果たします。
以下のURLは、bcdbootの解説ページです。
Powershellからコマンドを実行します。
管理者権限で実行してください。
PS C:\Users\masam>bcdboot W:\Windows /s W: /f BIOS
これで起動することができるようになりました。
# 動かない場合
ドライバやコマンドミスで、動かない場合があります。
もし動かなかった場合は、このようなことを参考にしてください。
OSが起動しない
- HDDが「active」になっているか確認してください
ブルースクリーン
- 別PCで起動して、一度ドライバを組み込んでください
# UEFIの場合
UEFIの場合、大まかな内容はBIOSの時と変わらないものの、一つ大きな違いがあります。
それは、EFIシステムパーティション(ESP)を作成する必要がある点です。
EFIシステムパーティションは、UEFIファームウェアが読み込むブートローダーを置く専用領域です。
BIOSでは「アクティブ」マークを付けたパーティションから起動しましたが、UEFIでは必ずFAT32形式のESPを用意する必要があります。
# UEFIで必要なパーティション構成
- EFIシステムパーティション
- サイズ: 100~300MB程度
- ファイルシステム:FAT32
- ドライブレター:L(普段はついていない)
- Windows本体用パーティション
- 残りのディスク領域
- ファイルシステム:NTFS
- ドライブレター:W
それと、UEFIではパーティションはGPTになります。
# ディスクの初期化2
Diskpartを使いたいので、まずはPowershellを起動します。
管理者権限で実行してください。
diskpart
と入力してdiskpartに入ります。
DISKPART> となっていれば、OKです。
PS C:\Users\masam> diskpart
Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: MASSANGO
DISKPART>
UEFI用になったコマンド
// インストールするディスクを見つける
list disk
// ディスクの選択
select disk X // Xにはインストールするディスクの番号
// パーティションを全消し
// 選択したディスクのすべてのデータが削除されます
// よく確認して下さい
clean
// GPTに変換
convert gpt
// EFIシステムパーティション (ESP) 作成
create partition efi size=300 // 100MBでも行けるかも
format fs=fat32 quick label=System
assign letter=L
// Windows用パーティション作成
create partition primary
format fs=ntfs quick label=Windows
assign letter=W
// パーティションをアクティブに
active
exit
ドライブレターはWです。
後ほど使いますので、覚えておいてください。
# ISOイメージのマウントからDISMで展開まで
この部分はBIOSの場合と全く同じです。BIOSの場合/ISOイメージのマウントからDismコマンドで展開するをご覧ください。
# ブートローダーを書き込む part2
BIOSと違うところは、コマンドの最後の部分と、ドライブレターです。
Powershellを管理者権限で実行してください。
PS C:\Users\masam>bcdboot W:\Windows /s L: /f UEFI
BIOSの場合は最後がBIOSと書かれています。
今回はUEFIなので、UEFIと書いています。
EFIパーティションのドライブレターはLなので、Lになっています。
これで完了です。
# エディションの確認
インストールイメージ(install.win)には、複数のエディションがまとめて入っている場合があります。
そのため、展開する前に「どのエディションがどの番号か」を確認します。
PS C:\Users\masam> dism /get-wiminfo /wimfile:F:\sources\install.wim
実行すると、以下のように出力されます。
インデックス: 1
名前: Windows 10 Home
説明: Windows 10 Home
サイズ: 14,567,890,123 バイト
インデックス: 2
名前: Windows 10 Pro
説明: Windows 10 Pro
サイズ: 15,123,456,789 バイト
ここでインストールしたいエディションのインデックス番号を確認します
例えば、Proを使いたければ /index:2を指定します。