usb-hdd
update 2016-06-07

外付 けUSB-HDDへのOSインストール、OSブートを試した。

目次

1. ダイレクトに USB-HDDにfedora(Grub2)をインストール
2. ダイレクトに USB-HDDにWin10をインストール
3. インストール済みのHDDをUSB-HDDに付け替えてWin10を起動する
4. USB-HDDにpartition コピーしてWin10を起動する(HDDを取り外すのが困難な環境での対応)
5. install.wim(またはinstall.esd) をUSB-HDDに展開してWin10をインストールする。
6. 作業メモ



1. ダイレクトに USB-HDDにfedora(Grub2)をインストール


インストール、ブートとも何も問題なし。
 内蔵HDD、USBメモリの替わりとしてブートデバイス、およびデータ保存デバイスとして使用できるので便利である。
Grub2ブートローダを単独でインストールできるので、Windows、Linux LiveCDなどを起動するブートローダとして使うと便利である。



2. ダイレクトに USB-HDDにWin10をインストール

Win10インストーラが対応していないので「Windowsのインストール場所を選択してください」画面にて下記の表示のダイアログが出る。
※ディスクの操作や「次へ」ボタンはグレイアウトしているので、何も操作できない。
セットアップでは USBまたはIEEE1394ポートをとおして接続されたディスクの構成やインストールはサポートされていません



3. インストール済みのHDDをUSB-HDDに付け替えてWin10を起動する

1. 内蔵HDDに通常通りにWin10をインストールする。

2. Win10を起動して下記のレジストリを変更する。

USB driverがページアウトすることを防ぐための対応(ただし、この変更は必ずしも必要ではない)
レジストリ キー
名前
データ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Control\Session Manager\Memory Management
DisablePagingExecutive 1

USBドライバの設定値を変更
各ドライバファイルは\Windows\System32\drivers フォルダにある。
Start値を 0 に設定すると OS loaderにてドライバが事前に読み込まれ、PC起動時にドライバがメモリに存在する状態になる。
レジストリ キー
名前
データ( )内はデフォルト値
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci Group
Start
Boot Bus Extender(Base)
0(3)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbohci Group
Start
Boot Bus Extender(Base)
0(3)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbuhci Group
Start
BootBus Extender(Base)
0(3)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub Group
Start
System Bus Extender(Base)
0(3)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR Group
Start
SCSI miniport(なし)
0(3)

3. Win10をシャットダウンして、内蔵HDDを取り外してUSB-HDDケースに付け替える。

4. BIOS設定で USB-HDDを優先起動に設定してPC起動すれば、USB-HDDのWin10が起動する。



4. USB-HDDにpartition コピーしてWin10を起動する

※内蔵HDDやUSB-HDDを取り外して作業することが困難な場合の対応である。
「システム修復ディスク」のコマンドプロンプト作業では、regedit、notepad を起動して使用できるので便利である。(マウス操作でのコピー&ペーストを利用できる)
 
1. Win10「ディスクの管理(diskmgmt.msc)」USB- HDDに領域を作成する。(NTFS 30GB程度)
※作成した領域を formatして activeにしておく。

2. Win10のレジストリ(
USB ドライバの設定値)を変更し ておく。
※上記「3」で行なった5つのドライバについて変更しておく。

3. PCをシャットダウンして、Win10「システム修復ディスク」で起動する。

4. コマンドプロンプト画面にて、作業中の環境のドライブレターを確認しておく。
※ diskpart で list volume を確認する。

ここではコピー元が「S:」、コピー先が「U:」ドライブであるものとする。

5. xcopyでpartitionコピーする。
xcopy S:\ U:\ /e /c /i /h /k /x /y /b
/exclude:S:\exclude.txt
※コピー除外リスト(
exclude.txtファイル)は下記の例 のように作成しておく。(隠しファイル、システムファイル、フォルダについて、実際の環境に合わせて作成する。フォルダごと除外したい場合は \myfolder\ のように指定する。)
-----
exclude.txt
$RecycleBin
\System Volume Information\
hiberfil.sys
pagefile.sys
swapfile.sys
exclude.txt

6. レジストリ操作でUSB-HDD デバイスのバイナリ値を確認する。
reg query HKLM\SYSTEM\MountedDevices /v \DosDevices\U:
※ここでは「 344C7A880000206A18000000」であるものとする。

7. ハイブファイルを読み込む。(USB-HDDの「SYSTEM」ファイルを「tmpsys」 という名前で読み込む)
reg load HKLM\tmpsys U:\Windows\system32\config\system

8. レジストリ \DosDevices\C: のバイナリ値をUSB-HDDのバイナリ値に変更する。
reg add HKLM\tmpsys\MountedDevices /v \DosDevices\C: /t REG_BINARY /d 344C7A880000206A18000000 /f

9. レジストリ \DosDevices\C: の変更結果を確認する。
reg query HKLM\tmpsys\MountedDevices /v \DosDevices\C:

10. ハイブファイルをアンロードする。
reg unload HKLM\tmpsys

11. USB-HDDにブート情報を作成する。(ドライブ「U:」をシステムpartitionにして、Bootフォルダ、bootmgrを作成する)
ドライブ「U:」がactiveであることを確認して bcdbootコマンドを実行する。
bcdboot U:\Windows /s U:

12. 作業完了。

13. PCシャットダウンしてUSB-HDD優先で起動する。
Win10が USB-HDDから正常に起動することを確認する。

14. 起動はOKでも正常にWin10ログオンできない、などのトラブル時にはWin10「システム修復ディスク」起動にてトラブルシューティングを使用して 「PCを初期状態に戻す」を試してみる。
この作業を行なうとWin10インストール直後の状態に戻すことができる。(作業途中で「Win10インストールDVD」をセットすることを要求 される)

15. 備忘メモ
上記作業の 6,7,8,9,10 を行なう代わりに \DosDevices\C: を削除して \DosDevices\U: を \DosDevices\C: と名前変更してもいい。
※つまり、インストール情報を持つデバイス値を強制的に変更するものである。

Win10インストーラではダイレクトにUSB-HDDにはインストールできないが、「システム修復ディスク」ではUSB-HDDに対しての修復 ができる。
つまり、USB-HDDがトラブル状態になった場合は「システム修復ディスク」でインストール初期の状態を作成することができる。



5. install.wim (または install.esd) をUSB-HDDに展開してWin10をインストールする


Windowsインストーラでは外付けUSB HDDへのインストールが出来ない。
しかし、Windowsインストーラを使わずに作業すれば外付けUSB HDDへのインストールは可能である。
この方法でインストールした場合は外付けUSB HDDからのOS起動も出来るようになる。

install.wim(またはinstall.esd)に含まれる Index:<イメージ インデックス> から バージョン情報を照会するには・・・
例えば C:\Windows\system32>dism /get-wiminfo /wimfile:"H:\sources\install.wim" を実行する。
インデックス: 3 名前: Windows 10 Pro であることが解る。
 
作業環境:win10インストールDVD、外付けUSB HDD0

UEFI環境での作業手順:
1. win10インストールDVDでPC起動し、言語選択画面が表示されたら「Shift + F10」を押しコマンドプロンプト画面で作業する。
または「今すぐインストール」画面まで進んで「コンピュータを修復する」を選択して「コマンドプロンプト」を選択して作業してもいい。

2.diskpartを起動しHDD0にパーティションを作成し、UEFIインストール環境を作成する。
diskpart
list disk (ディスク番号を確認する)
select disk 0
clean (HDDを初期化する)
convert gpt (gptディスクとする)
create partition efi size=100 (EFIパーティションを作成する)
format fs=fat32 quick label="system"
assign letter=S (ドライブレターを付けておく)
create partition msr size=128 (MSRパーティションを作成する)
create partition primary size=30000
format fs=ntfs quick
assign letter=W (ここではドライブ W とする)
exit

3.dism.exe(展開イメージのサービスと管理ツール)でimageを適用する。
sourcesフォルダはDVDドライブ D にあるものとする。
install.wimを指定する。(sourcesフォルダの内容を確認して install.wim ではなくて install.esd の場合は install.esd を指定する)
/index:1 はHOME バージョン。 /index:3 はPRO バージョン。
dism /apply-image /imagefile:D:\sources\install.wim /index:3 /applydir:W:\
※install.wimを install.swm ,install2.swm のように分割している場合は 2つ目の install2.swm は /swmfile:D:\sources\install2swm のように指定する。
つまり、次のように指定する。
dism /apply-image /imagefile:D:\sources\install.swm /swmfile:D:\sources\install2.swm /index:3 /applydir:W:\
または、2つ以上の分割ファイルがある場合は ワイルドカードを使って指定する。
dism /apply-image /imagefile:D:\sources\install.swm /swmfile:D:\sources\install*.swm /index:3 /applydir:W:\

展開イメージのサービスと管理ツールが起動してイメージの適用が開始される。

処理中は「イメージを適用しています」と表示され、処理進行状態が %で表示される。
処理終了時には「操作は正常に完了しました」と表示される。
操作完了時点でドライブ W にはwindowsフォルダがコピーされている。
ブート情報は、まだ作成されていない。

4.ブート情報を作成する
bcdboot W:\windows /l ja-jp /s S: /f UEFI
「ブート ファイルは正常に作成されました」というメッセージが表示される。
ドライブ S にBCDフォルダ、bootmgrファイル(システム/隠しフォルダ、ファイル)が作成されている。
以上でブータブルUSB HDDが作成できた。

5.いったんPCをシャットダウンしてUSB HDDだけを接続して、USB HDD起動優先でPC起動する。

6.windowsのインストールが開始される。
すでに上記 3 にてイメージの適用(インストールファイルのコピー)は完了しているので、「デバイスの準備」段階から開始される。
これ以降は通常のインストール手順と同じである。

7.以上で外付けUSB HDDにインストール、および外付けUSB HDDから起動できた。

MBR環境での作業手順:
1. win10インストールDVDでPC起動し、言語選択画面が表示されたら「Shift + F10」を押しコマンドプロンプト画面で作業する。
または「今すぐインストール」画面まで進んで「コンピュータを修復する」を選択して「コマンドプロンプト」を選択して作業してもいい。

2.diskpartを起動しHDD0にパーティションを作成し、フォーマットしてactive(起動可能)にする。
diskpart
list disk (ディスク番号を確認する)
select disk 0
clean (MBRを初期化する)
create partition primary size=30000
format fs=ntfs quick
active (起動可能にする。MBRの場合はactive指定が必要)
assign letter=W (ここではドライブ W とする)
exit

3.dism.exe(展開イメージのサービスと管理ツール)でimageを適用する。
sourcesフォルダはDVDドライブ D にあるものとする。
install.wimを指定する。(sourcesフォルダの内容を確認して install.wim ではなくて install.esd の場合は install.esd を指定する)
/index:1 はHOME バージョン。 /index:3 はPRO バージョン。
dism /apply-image /imagefile:D:\sources\install.wim /index:1 /applydir:W:\
展開イメージのサービスと管理ツールが起動してイメージの適用が開始される。

処理中は「イメージを適用しています」と表示され、処理進行状態が %で表示される。
処理終了時には「操作は正常に完了しました」と表示される。
操作完了時点でドライブ W にはwindowsフォルダがコピーされている。
ブート情報は、まだ作成されていない。

4.ブート情報を作成する
bcdboot W:\windows /l ja-jp /s W: /f ALL
「ブート ファイルは正常に作成されました」というメッセージが表示される。
ドライブ W にBCDフォルダ、bootmgrファイル(システム/隠しフォルダ、ファイル)が作成されている。
以上でブータブルUSB HDDが作成できた。

5.いったんPCをシャットダウンしてUSB HDDだけを接続して、USB HDD起動優先でPC起動する。

6.windowsのインストールが開始される。
すでに上記 3 にてイメージの適用(インストールファイルのコピー)は完了しているので、「デバイスの準備」段階から開始される。
これ以降は通常のインストール手順と同じである。

7.以上で外付けUSB HDDにインストール、および外付けUSB HDDから起動できた。



6. 作業メモ


USB-HDDケース

SATA3.5HDD用ケースを使用(USB3.0、ACアダプタ電源)
USBインターフェース基板部をケースから取り外して使用。(パワーランプ LED(赤)を取り付ける改造を行なっている)
usb-hdd.png
 
コマンドでのレジストリ設定

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 1 /f

reg add HKLM\SYSTEM\CurrentControlSet\services\usbehci  /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbohci  /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbuhci  /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbhub  /v Start /t REG_DWORD /d 0x0 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbstor  /v Start /t REG_DWORD /d 0x0 /f

reg add HKLM\SYSTEM\CurrentControlSet\services\usbehci  /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbohci  /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbuhci  /v Group /t REG_SZ /d "Boot Bus Extender" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbhub  /v Group /t REG_SZ /d "System Bus Extender" /f
reg add HKLM\SYSTEM\CurrentControlSet\services\usbstor  /v Group /t REG_SZ /d "SCSI miniport" /f

レジストリ照会の例

reg query HKLM\SYSTEM\CurrentControlSet\services\usbehci


end of list