2014.12.01:cmdのコマンドを間違えると言う大失態をしてしまいました('Α`) 修正しました。
「dddi.bat」という自動化ツールと 「UsbBootWatcher」というレジストリ監視ツールを使って、Windows7をUSBブート可能にしちゃう方法の紹介です。
従来から知られている複雑な手順をほぼ自動化したモノで、かなりサクっとUSBブート化が可能です(といっても何をしているのかを理解するのはかなり難しいです)
USB化の手順紹介リンク
以下は、従来から知られている、Windows7をUSBブートさせる方法です。
Windows7をUSBブートする方法
非常に面倒な手順が必要で、かなりの知識と労力が必要です。
今回は、これを自動化した手順を紹介しています。
自動化手順リンク(英文)
1. The making of the integrated ISO file /bootable CD/DVD/BD
2. The making of 2048[sct] aligned /2^n[GB]normalized partitions
3. The making of USB bootable system for Windows 7 (OEM_SLP) / PE3.x
リンク先は英語で解説されています。
「3.」の部分が実際にUSBブート化する手順です。
「1.」と「2.」はUSBブート化した際の各問題に対応できる手段の確保と、パフォーマンス等の最適化が目的になっている、との事です。
「とりあえず試して見たい」と言う場合は、「3.」の項目だけを試しても、Windows7のUSBブート化は可能です。
と言うことで、このページでは「3.」の項目だけを試し、Windows7がUSBブート化できるかどうかを検証しています。
注意事項
- この手順は、既にPCにインストールされた状態のWindows7をコピーして、それを元にUSBブート化します。
- コピー元のマシンで運用することが想定されています。
複数のPCでUSBメモリを使いまわすような用途は想定されていません。 - OSのライセンスが「OEM_SLP」の場合のみ、ライセンス認証が発生しません。
(それ以外のライセンスの場合、ライセンス認証が必要になります)
最低限必要なもの・用意するもの
- Windows7がインストールされたパソコン
・USBブートが可能なこと。
・OSのバックアップを取る余裕があること。
・実際に運用するならばOSのライセンスが「OEM_SLP」であること。 - 外付けのUSBストレージ
・Windows7をインストールできる容量があること。
・フォーマットしても問題ないこと。 - Windowsシステムをバックアップ・リストアできるツール
・EaseUS DiskCopy (サイト内解説※MBR専用/GPT未対応)
・Paragon Backup & Recovery (サイト内解説)
などが有名。
追記: MiniTool Partition Wizard Home EditionでもOKとの事。 - UsbBootWatcher
ダウンロード (ページ内を UsbBootWatcher.zip で検索して見る)
常駐型のレジストリ書き換えプログラム。USBドライバの読み込み順などを監視して、USBブート化の為に変更したレジストリが元に戻るのを防ぐツール。 - dddi.bat
ダウンロード(テキスト形式)
今回のキモ。
Windows7のUSBブート化の手順を自動化するもの。
実行する前の注意
私はWindowsのライセンス認証が良く分かっていないので、このページではその辺が投げっぱなしです。
本気でUSBブート化を試みる人はその辺を自分で調べてから行ってください。
質問されても答える知識がありません。
注意事項やまえおきここまで。
以下、実際の手順です。
手順1
「EaseUS DiskCopy」のクローンや、
「Paragon Backup & Recovery」のバックアップとリストア
などを利用して、外付けUSBストレージに Windowsシステムのクローンを作成する。
チェックポイント
※バックアップする際は、パーティション単位でバックアップする。
※Paragon の方がパーティションサイズの変更操作が楽。
※この時点では、まだUSBブートは不可能な状態です。
※事前にシステムをバックアップしておくことを強く推奨
▲クリックで拡大
検証に使ったPC・・・Dynabook R731(OEM _SLP)
手順
「Paragon Backup & Recovery」を使い、
1. Cドライブの内容をDドライブ(同じPC内)にバックアップ
2. バックアップをFドライブ(USB外付け)にリストア。
※隠しドライブをバックアップに含めたら、上手く起動しなかった。
手順2
コピー元PCのCドライブに、任意のフォルダを作成する。
そのフォルダに 解凍した「UsbBootWatcher」と「dddi.bat」を保存する
手順3
管理者権限のコマンドプロンプトで「dddi.bat」を実行する。
dddi.batの実行例
(以下、UsbBootWatcherとdddi.batの保存先が「C:\aaa」、USBドライブが「D:\」の場合)
・cd c:\aaa (カレントディレクトリ変更)
・dddi -d C: (Cドライブから情報収集)
・dddi -i D: (Dドライブへ情報の移転&UsbBootWatcherのインストール)
と入力する。
※以下、クリーンショットを取るために、Dynabook R731ではなくVMwareで操作をしています。
自分用メモ
cd c:\aaa と入力
▲クリックで拡大
保存先のフォルダはテキトーにCドライブ直下の「aaa」とした
dddi -h と入力
▲クリックで拡大
ヘルプが表示される。
dddi -d C: と入力
▲クリックで拡大
インストール情報がC:\aaaフォルダに集められる。
フォルダを確認
▲クリックで拡大
C:\aaaフォルダにWindowsフォルダが作成され、その中に色々なファイルやフォルダが集められていた。
dddi -i D: と入力
▲クリックで拡大
ライセンスがOEM_SLPではない場合は、
「それでも良いか? 本当にこの作業を進めるか?」
など色々聞かれるので「Y」キーを押す。
USBドライブ(Dドライブ)にインストールが始まる
▲クリックで拡大
集められたインストール情報がDドライブにインストールされる。
しばらく待っていると終わる。
※ここで対象システム(USBデバイス)がUSBブート可能に改変されます。
※UsbBootWatcher自体もコピー先(USBドライブ)のシステムに自動でインストールされます。
※コピー元のCドライブには改変は加えられません。
手順4
対象システムにUSBデバイスを繋ぎ、USBブートさせる。
上手く起動すれば成功。
私用のメモ。
検証に使った Dynabook R731 は、USBストレージから起動できないタイプだった
▲クリックで拡大
仕方が無いので、外付けHDDを別PC(デスクトップPC)につなげて見ました。
USBからの起動に成功しました
▲クリックで拡大
ただし、多くのドライバは未インストール状態。
▲クリックで拡大
なるほど、これは確かにサクっとUSBブート化できそうだ、と確認したものの、USBデバイスを(知人のPC含め)複数のPC間で使いまわしは難しい・・・。
となると、私の場合ちょっと面白い用途が思い浮かばないなあ・・・(^_^;
ということで検証おわり。
自身の環境で試してみて、「これは使えそうだ」と判断できた場合は、最初に紹介したリンク先の
1. The making of the integrated ISO file /bootable CD/DVD/BD
2. The making of 2048[sct] aligned /2^n[GB]normalized partitions
あたりをじっくり試してみると良いかと思います。
また、2ch以下スレッドでWindowsのUSBブートに関する情報交換がされています
USBブート Windows系システム用 - Windows板 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/win/1416409524/
このページの内容は以上です。
あとがき
これ以上快適なブート環境を得ようと思うと、ちょっと私の手には余るような手順で、これ以上の検証は見送ることにしました。
またコメント欄などで質問を頂いても答えられそうにないこと、ご了承ください。
おまけ、補足
この記事を紹介するにあたり
コメント欄で色々とアドバイスを頂いています。
(アドバイスを頂いているページはこちら)
1. The making of the integrated ISO file /bootable CD/DVD/BD
2. The making of 2048[sct] aligned /2^n[GB]normalized partitions
3. The making of USB bootable system for Windows 7 (OEM_SLP) / PE3.x
(1) 問題の検出や、問題発生時に対応できるよう入念な準備
(2) パフォーマンス等の最適化などのため、入念なパーティション設計
(3) USBブート可能なシステムの作成
のように対応します。
- 各問題に対応できる手段を既に確保している
- パフォーマンス等の最適化には、あまりこだわらない
という前提であれば、(1), (2) をとばして、(3) から試験的に実施することも可能です。
$ 4. Make USB bootable system for Windows 7 (OEM_SLP) / PE3.x
http://hp.vector.co.jp/authors/VA053879/usbboot.htm#sect4
#1 USBデバイスにWindowsシステムのクローンを作成 (まだブート不可能な状態)
#2 ワークディレクトリに UsbBootWatcher を解凍
#3 ワークディレクトリで "dddi.bat" を実行 (対象システムをブート可能に改変する)
#4 対象システムからUSBブートさせる
※事前にシステムをバックアップしておくことを強く推奨します。
レジストリ設定の変更には、ネット上の情報で SSD などのフラッシュデバイスに有効とされている内容が含まれます。
- 起動時の自動デフラグの停止
- アイドル時の自動デフラグの停止
- アクセス日時更新の停止 (Windows7 ではデフォルトで停止)
- シャットダウン時の仮想メモリ解放の停止
- カーネルの物理メモリへの常駐
- プリフェッチ系の停止
- BSoD (死のブルースクリーン) 発生時の自動的な再起動の停止 (STOPエラーを確認可能にするため)
EWF (Enhanced Write Filter) には対応していません。
> あと、OEM_SLPでなければ、別システムに繋ぎなおす度に再認証がかかっちゃいますよね?(^_^;
多分そうでしょう。本ツールには、アクティベーション対応機能は実装していません。
OEM_SLP 以外の場合に、実行を継続するか否か問い合わせる機能のみ実装しています。
OEM_SLP 以外のアクティベーション対応については、公に書けないので、某キーワードでネット検索するなどして、
独力で対応していただくことになるでしょう。
試験的な確認を行うだけなら、LANケーブルを抜くなどネット接続を禁止して実験してみるというのは...
補足:
本ツールは、ディスティネーションパーティション以外のシステムに変更を加えません。
ディスティネーションパーティションとして、ソースパーティション (例えば実行中のシステム) と同じドライブ文字を指定した場合を除き、
ソースパーティションのシステムに変更を加えません。
仕組みを理解すれば、対象システムや手順など、使い方には様々な応用/バリエーションが考えられると思います。
注意点:
OEM_SLP 以外のライセンスで動作するか未確認です。
リムーバブルデバイスとして認識されるUSBデバイスでの動作には、問題が発生する可能性があります (ネット上の情報、未確認) 。
VHD (Virtual Hard Disk) 上で動作するか未確認です。
Windows8 以降で動作するか未確認です。
Windows XP では動作しません ("reg.exe" コマンドの機能に多くを依存しているため) 。
"dddi.bat" は「管理者: コマンド プロンプト」で実行します。
下記は、"dddi -d ..." を実行時の画面出力例です。
C:>dddi -d c: > dddi.log
Please wait for several minutes patiently.
エラー: 指定されたレジストリ キーまたは値が見つかりませんでした
;;/ Error Retry: "MatchingDeviceId" assumed to be "pci\ven_1033&dev_0194"
Check "windows\" for Device class Drivers DisInstalled.
Check "dddi.log" for dddi.
このような場合、"dddi.log" をノートパッドなどのエディタで開き、
"Error Retry" を検索すると、もう少し詳しい情報が得られるかもしれません。
版数ありのレジストリキーが見つからずに「エラー」が発生したので、
版数なしのレジストリキーで "Error Retry" したケースです
レジストリ設定の変更には、ネット上の情報で SSD などのフラッシュデバイスに有効とされている内容が含まれます。
- 起動時の自動デフラグの停止
- アイドル時の自動デフラグの停止
- アクセス日時更新の停止 (Windows7 ではデフォルトで停止)
- シャットダウン時の仮想メモリ解放の停止
- カーネルの物理メモリへの常駐 (カーネルのページングの禁止: カーネルには仮想メモリを使用しない)
- プリフェッチ系の停止
フラッシュデバイスではないHDDの場合、「プリフェッチ系の停止」を行わない方が、パフォーマンス的に有利かもしれません。
これらの変更内容を一括して無効にするには、クロスインストール直前で次の4つのレジストリ設定ファイルを削除します。
windows\reg.mod\_S_SOFTWARE.reg
windows\reg.mod\_S_SYSTEM.reg
windows\reg.mod\_X_SOFTWARE.reg
windows\reg.mod\_X_SYSTEM.reg
例えば、ワークディレクトリで、次のような手順になるでしょう。
rd /s /q windows
dddi -d d: > dddi.log
dir windows\reg.mod\_?_S*.reg
del windows\reg.mod\_?_S*.reg
dddi -i e: >> dddi.log
設定を個別に変更する場合は、レジストリ設定ファイルを直接編集する必要があります (レジストリ内容の知識が必要) 。
USBブート出来ないPCの場合
ノートPCのシステムで、USB HDDが認識されている状態で "dddi.bat" を適用済であれば、
"Plop Boot Manager" からUSBブートできないか、試してみる方法もあります。
The making of the integrated ISO file / bootable CD/DVD/BD
http://hp.vector.co.jp/authors/VA053879/bootcd.htm#sect1_1
↓
- Plop Boot Manager 5.0.14 (USB 3.0 supported) (freeware)
http://www.plop.at/en/bootmanager/download.html
↓
Plop / Elmar Hanlhofer - Boot Managers (2)
http://www.plop.at/en/bootmanagers.html
> USB boot without BIOS support (UHCI, OHCI and EHCI)
もし余裕があれば Case #2
#1 デスクトップPCにUSB HDDを接続。
#2 デスクトップPCを内部システムでブート。
#3 デスクトップPCのこのシステムで、USB HDDが認識されていることを確認 (コンピューターの管理、デバイスマネージャー等) 。
#4 デスクトップPCのこのシステムを、USB HDDにコピー (またはバックアップ後リストア)
#5 説明の都合上、デスクトップPCのシステムのドライブ文字を (D:) 、USB HDDのドライブ文字を (H:) と仮定(読み替えて下さい) 。
#6 デスクトップPCで "dddi -d D: > dddi.log"
#7 デスクトップPCで "dddi -i H: >> dddi.log"
#8 USB HDDのシステムでUSBブートできるか試行。
もし、ノートPCのシステムを、デスクトップPCの内蔵ディスクにコピーして、動作可能になった実績のあるシステムがあれば、
その動作可能になったシステムをUSB HDDにコピーし、デスクトップPCで "dddi.bat" を適用すれば、
USBブート可能になるかもしれません (異なるマシンのシステムをベースにしているので、可能性は低いと思います) 。
内蔵ディスクにコピーしても動作可能にならないような、異なるマシンのシステムであれば、
そのシステムに対して "dddi.bat" を適用しても、USBブートしないか、USBブートしても動作可能にはならないと思われます。
各システムや、収集された関連情報は、次のようにハードウェアに対応づけられている (依存している) と考えられます。
ソースパーティションのシステムから収集された関連情報
↓↑
ソースパーティションのシステム
↓↑
各システムが動作可能なハードウェア (PC)
↓↑
ディスティネーションパーティションのシステム
同一マシンの外付けUSBデバイスからUSBブートして、マルチブートを実現することなどを想定しているので、
"Windows To Go" のように、同一システムを複数PC間で動作させることを前提とするような用途には向きません。
ただ、各ハードウェアごとに収集した複数の関連情報をまとめて持ち運び、それらを手動で切り替えて使用することは可能だと思います。
> 以前
> http://home.catv.ne.jp/ss/user/yukata/windows7USBboot.html
> を試した時は、2回位は起動できた記憶があるのですが、すぐに起動しなくなっちゃったんですよね(^_^;
> 別PCに繋ぎなおした時か、ドライバをインストールした後か、その辺で起動不能になりました。
このサイトでも、UsbBootWatcher の作者も、ドライブを動的に複数のPCにつなぎかえるような使われ方は、
想定していないのではないかと思われます。
それには、デバイスドライバ一式やレジストリ一式を複数管理する手段と、それらを切り替える手段が必要かもしれません。
システムにかなり手を加えることになるだろうと思います。
必ずしも同一システムでなくてもよいという条件であれば
>複数のPC環境で使いまわせたら便利だな・・・と思ったのですが、
> ちょっと難しそうですね(^_^;
>起動しなくなったPCや、ウィルス感染したPCのメンテやバックアップ用途に面白いかな、と思ったのですが、、、そういう用途は従来どおりLinuxのLiveCD/USBかWindows to Goで行おうと思います。
同一のUSB HDDを複数のPC環境で使いまわしたいけれども、そのUSB HDDからブートさせるのは、
必ずしも同一システムでなくてもよいという条件であれば、
従来からのマルチブートのテクニックと "dddi.bat" を組み合わせて実現可能です。
例えば、2つのPC (デスクトップPC、ノートPC) で、同一のUSB HDDを使いまわしたい場合、
USB HDDを3つのパーティション (B0, B1, B2) に分割することを考えます。
- パーティションB0: USBブート可能にしたデスクトップPCシステム専用 (64GB程度?)
- パーティションB1: USBブート可能にしたノートPCシステム専用 (64GB程度?)
- パーティションB2: 複数のPC環境で使いまわすデータ専用 (残りの容量)
#1 デスクトップPCでUSB HDDを認識させたシステムを、USB HDDのパーティションB0へコピー。
#2 デスクトップPCで "dddi.bat" を、USB HDDのパーティションB0へ適用。
#3 ノートPCでUSB HDDを認識させたシステムを、USB HDDのパーティションB1へコピー。
#4 ノートPCで "dddi.bat" を、USB HDDのパーティションB1へ適用。
#5 マスタブートマネージャや、パーティションブートマネージャの構成 (設定) を変更。
(パーティションB0と、パーティションB1の、どちらからもブートできるように設定)
- USB HDDをデスクトップPCに接続した時は、パーティションB0からブートさせる。
- USB HDDをノートPCに接続した時は、パーティションB1からブートさせる。
- システムがクラッシュした場合に備え、システム専用パーティションにデータは保存しない。
Plop Boot Manager のインストール方法や、起動方法は多種多様
> >Plop Boot Manager
> なるほど、
> 先にCDブートして、そこからUSBブートを・・・というツールなのですね。
>私の場合、「何らかの原因でCDブート出来なくなった場合の緊急手段としてUSBからブーとする方法を確保しておきたい。」という気持ちが強い
"Plop Boot Manager" のインストール方法や、起動方法は多種多様です。
"Plop Boot Manager" をマスタブートマネージャとして、HDDのMBR (Master Boot Record)にインストール可能です。
他のマスタブートマネージャを使っているなどの理由で、
"Plop Boot Manager" をマスタブートマネージャにはしたくない (MBRにはインストールしたくない) という場合は、
他のブートマネージャを経由して起動させるチェインロードも可能なようです。
参考:
Plop Boot Manager 5.0 - Overview of install/start modes
http://www.plop.at/en/bootmanager/startmodes.html
> Hard disk installation
> Start from other boot managers
Plop Boot Manager 5.0 - Install to the hard disk MBR (Master Boot Record)
http://www.plop.at/en/bootmanager/mbrinstall.html
Plop Boot Manager 5.0 - plpbt.bin - LiveCD and other ways to start the Boot Manager
http://www.plop.at/en/bootmanager/plpbt.bin.html
USBブート非対応BIOSでもできるUSBブートに挑戦: とある暇人の飛耳長目
http://hiji-chomoku.seesaa.net/article/268031805.html
PLoP Boot Manager(USBブート非対応PC用起動ディスク) - Palm84 某所の日記
http://d.hatena.ne.jp/palm84/20080816/1218896213
その他 参考リンク
Windows TIPS:Windows 7/8のインストールUSBメモリを作る(WiNToBootic編) - @IT
Plop Boot Manager その1 -USBブートに対応していないPCでUSBからブートする - Ubuntu kledgeb