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 を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 をUSB-HDDに展開してWin10をインストールする


作業環境:win10インストールDVD、外付けUSB HDD0
作業手順:
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 (起動可能にする)
assign letter=t (ここではドライブ t とする)
exit

3.dism.exe(展開イメージのサービスと管理ツール)でimageを適用する。
sourcesフォルダはDVDドライブ f にあるものとする
dism /apply-image /imagefile:f:\sources\install.wim /index:1 /applydir:t:\
展開イメージのサービスと管理ツールが起動してイメージの適用が開始される。
操作完了時点でドライブ t にはwindowsフォルダがコピーされている。
ブート情報は作成されていない。

4.ブート情報を作成する
bcdboot t:\windows /l ja-jp /s t: /f ALL
ブート ファイルは正常に作成されました。というメッセージが表示される。
ドライブ t に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
 
インストール時のHDD領域作成

インストールDVDで起動して「言語選択」画面で「shift + F10」を押し、コマンドプロンプト画面で diskpart を起動する。
X:\Sources> diskpart
 DISKPART> list disk
 DISKPART> select disk 0
 DISKPART> clean  ※MBRをゼロで埋める
 DISKPART> create partition primary size=30000
 DISKPART> select partition 1
 DISKPART> active ※アクティブにする(boot可能にする)
 DISKPART> format fs=ntfs quick
 DISKPART> exit ※diskpartを終了
 X:\Sources> exit ※コマンド画面を終了
 これ以降はインストールを継続する。

コマンドでのレジストリ設定

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