これってなに?
- Windows 7 では...
-
※ あっと、Windows 7 では元々インストール済み
かな。※ Windows 7 では、コントロール パネルの「バックアップと復元」からCDも作成できるのですな。CD作成してイメージを取ればいいだけですね。
DVD(R/RW)ドライブがないとかカスタマイズしたい場合とかは下記の方法で作ってみてもいいかも。(※ Windows 7 用の Windows AIK)
Windows Vista(7) のインストールDVDでブートした際にメニューにある「システム回復オプション」(「コンピュータを修復する」)だけ抜き出してisoイメージを作りまする。サイズは 160 MB 程(※ 7 では 175 MB程)なのでDVDでなくCDブートで可能、USBメモリやネットワークブートも楽になります。内容は Windows PE 2.0(2.1かな?、7 では3.0?)に修復ツールなどを追加したものと言っていいかと。普通のPEと同様にコマンドラインからネットワークなど利用可能なのである。
メーカー製PCだとHDにインストール済みの場合もあるかと(F8 or F5 キーでブートメニュー表示)。7 では標準でインストールされてます。
要するに 7 の「システム修復ディスク」モドキを作るわけです。
必要なもの
- Windows Vista(7) のインストールDVD内の
\sources\boot.wim
- メーカー製PCではHDに設定済みのものもあるので、どっかの隠しパーティションに
Winre.wim
があったりするかも(でも、同じものじゃないかもしれない) - Windows 7 では標準で
C:\Recovery\xxx\Winre.wim
にあり。メーカー製PCでは隠しパーティションにWinre.wim
があることも
- メーカー製PCではHDに設定済みのものもあるので、どっかの隠しパーティションに
- Windows AIK(自動インストールキット)
7-Zip をインストールしとけば、isoやwimイメージの中身の確認や展開ができるので便利。
- 【追記】Windows 7 では...
-
C:\Recovery
に Winre.wim がありました。これを使ってできるかも?- Winre.wim の取り出し(コマンド プロンプトを「管理者として実行」)
C:\Windows\System32>dir /a-d/b/s c:\recovery c:\recovery\<SID文字列>\boot.sdi c:\recovery\<SID文字列>\Winre.wim C:\Windows\System32>xcopy c:\recovery\<SID文字列>\Winre.wim d:\ /h C:\Windows\System32>attrib -s -h d:\Winre.wim
※ d:\ にコピーする場合
- 【さらに追記】メーカー製PCでは...
-
隠しパーティション(Win RE用専用パーティション)に Winre.wim が置かれてる場合が多いみたい?この場合は、Linux LiveCD などで取り出す必要があるかも。(「システム回復オプション」のコマンド プロンプトからなら見えるかも?)
【追記】あっと、7 では「システムイメージ」を作成、「ディスクの管理」から「VHDの接続」でマウントしてコピーするって手もありますた。
して、その手順は
下記ページが至極参考になり申しました。
Vista Home Premium SP2上にてOEM(DSP)版DVD、クライアントモード・x86用で作ってみたなり。
- 「Windows PE Tools コマンド プロンプト」(Deployment ツールのコマンド プロンプト)を管理者として実行
- PE 基本イメージを作業ディレクトリ (
\ISO
) に展開 - インストールDVDの boot.wim を
\mount
に書き込み可能でマウント - ImageX など追加、設定ファイル作成
- winpeshl.ini を作成
- winre.wim の変更を保存
- isoイメージ作成
※ 作業ディレクトリパスに空白があるとisoイメージ作成ができぬ模様なのでご注意をば。
- 「Windows PE Tools コマンド プロンプト」を管理者として実行
- 適当に作業ディレクトリ作成
- 変数をセット
%DVD%
はDVDドライブ、または内容を保存したディレクトリを指定
mkdir d:\test set "AIK=%ProgramFiles%\Windows AIK" set DVD=G: set makedir=d:\test\WinRE_x86
- PE 基本イメージセットを作業ディレクトリ (
\ISO
) に展開
※ x64 なら amd64 を指定
copype.cmd x86 "%makedir%"
- インストールDVDの boot.wim から INDEX 2 をエクスポート
\mount
に書き込み可能でマウント
imagex /export /boot "%DVD%\sources\boot.wim" 2 "%makedir%\winre.wim "Windows Recovery Environment" imagex /mountrw %makedir%\winre.wim 1 %makedir%\mount
※【注意】この場合元のwimファイルは %DVD%\sources\boot.wim
を検索指定してます。【2】でだめな場合は【1】を指定してみませう。C:\Recovery\xxx\Winre.wim
を使う場合は1行目は不要だと思われます。
- ImageX など追加
copy "%AIK%\Tools\x86\imagex.exe" %makedir%\mount\Windows copy "%AIK%\Tools\PETools\x86\BootSect.exe" %makedir%\mount\Windows\System32
※ BootSect.exe は元々入ってると思いますが念のためです(汗。Vistaの boot.wim には入ってなかったので。7 の boot.wim には入ってた。
- ImageX用設定ファイル Wimscript.ini を作成
%makedir%\mount\Windows\
に保存
[ExclusionList] ntfs.log hiberfil.sys pagefile.sys "System Volume Information" RECYCLER Windows\CSC [CompressionExclusionList] *.mp3 *.zip *.cab \WINDOWS\inf\*.pnf
- winpeshl.ini を作成
%makedir%\mount\Windows\system32\
に保存
[LaunchApp] AppPath=x:\sources\recovery\recenv.exe
- winre.wim の変更を保存
imagex /unmount /commit %makedir%\mount
- boot.wim として入替
copy /y %makedir%\winre.wim %makedir%\iso\sources\boot.wim
- isoイメージ作成
oscdimg -n -b%makedir%\etfsboot.com "%makedir%\ISO" "%makedir%\WinREx86.iso"
WinREx86.iso が完成イタシマシタ。
- ドライバの追加
-
「winre.wim の変更を保存」前に実行しませう
※ パスは実際のものに合わせてくださいまし。
peimg /inf=D:\pcnet\WinServer2003_SignedDriver\netamd.inf %makedir%\mount\windows
Windows 7(PE 3.0)の場合は、
dism /image:%makedir%\mount /add-driver /driver:D:\pcnet\WinServer2003_SignedDriver\netamd.inf
- 【追記】メモ帳の「開く」画面ですべてのファイル・拡張子を表示
-
「winre.wim の変更を保存」前にバッチファイルを作っておきませう。
- 下記バッチファイル作成、ファイル名は
ShowAll.cmd
とする \mount\Windows\system32\
に保存
@echo off set RegKey=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced reg add %RegKey% /v Hidden /t REG_DWORD /d 0x00000001 reg add %RegKey% /v HideFileExt /t REG_DWORD /d 0x00000000 reg add %RegKey% /v SuperHidden /t REG_DWORD /d 0x00000001 reg add %RegKey% /v ShowSuperHidden /t REG_DWORD /d 0x00000001 reg query %RegKey%
回復環境起動後のコマンド プロンプトにて、
showall
と打つべし。※ メモ帳の「開く」画面では【ファイルの種類】で「すべてのファイル」を指定するべし。
- 下記バッチファイル作成、ファイル名は
Winre.wim を使う場合
インストールDVDがなく、HD上で見つけた winre.wim を使う場合はこんなかんじでできるはずです。
- 「Windows PE Tools コマンド プロンプト」(Deployment ツールのコマンド プロンプト)を管理者として実行
- PE 基本イメージを作業ディレクトリ (
\ISO
) に展開 - winre.wim を
\mount
に書き込み可能でマウント - ImageX など追加、設定ファイル作成
- winpeshl.ini を作成
- winre.wim の変更を保存
- isoイメージ作成
- 「Windows PE Tools コマンド プロンプト」を管理者として実行
- 適当に作業ディレクトリ作成下記の例では
D:\test
- 変数をセット
mkdir d:\test set "AIK=%ProgramFiles%\Windows AIK" set makedir=d:\test\WinRE_x86
- PE 基本イメージセットを作業ディレクトリ (\ISO) に展開
※ x64 なら amd64 を指定
copype.cmd x86 "%makedir%"
ここで winre.wim を D:\test\WinRE_x86
へコピーしておく
\mount
に書き込み可能でマウント
imagex /mountrw %makedir%\winre.wim 1 %makedir%\mount
後は「ImageX など追加」からと同じで。
マルチブートで活用するでござる
※と、言いつつ別マシンで使えぬものですが。お好みの方法を選択すべし。
サイズが小さいのでマルチブート設定が簡単になりまする。
正式な手段ではござらぬが、isoイメージをそのまま利用する方法なり。
と、言いつつ概略だけでありんす。
CD/DVD
BCDW(Bootable CD Wizard) とGRUB for DOS を使いまする。
- 仮想CDルートに WinREx86.iso をコピー
- 仮想CDルートに GRUB for DOS の grldr をコピー
- bcdw.ini の編集
- menu.lst の編集
bcdw.ini
[MenuItems] C:\ ; Boot from drive C: ; boot from HDD \grldr ; GRUB for DOS :PowerOff ; * Power Off :Reboot ; * Reboot
menu.lst
color white/blue yellow/cyan # jp106 keypad setkey at bracketleft setkey doublequote at setkey ampersand caret setkey quote ampersand setkey parenleft asterisk setkey parenright parenleft setkey underscore parenright setkey equal underscore setkey plus colon setkey colon quote setkey asterisk doublequote setkey bracketleft bracketright setkey braceleft braceright setkey bracketright backslash setkey braceright bar setkey backslash backquote setkey tilde plus setkey caret equal setkey backquote braceleft setkey bar tilde title Windows Recovery Environment (from /WinREx86.iso) map /WinREx86.iso (0xff) || map --mem /WinREx86.iso (0xff) map --hook chainloader (0xff) title * back to BCDW menu chainloader --raw /bcdw/loader.bin title * reboot reboot title * halt halt
※ 読み込みがかなり遅い場合は title 下の行を修正した方がいいかも。
map --mem /WinREx86.iso (0xff)
- mkisofs コマンドのオプション(※ あくまでワタシ流ですが...)
mkisofs -iso-level 4 -r -hide TRANS.TBL -T -b "bcdw/loader.bin" -c boot.cat -no-emul-boot -boot-load-size 4 -V "BCDW_CD" -o "作成isoパス" "仮想CDディレクトリパス"
- 【注意】GRUB for DOS のキーボード配列
- バックスラッシュ \ は 半角
- バー | は Shift-半角
- アンダースコア _ は Shift-0
USBメモリ
SYSLINUX とGRUB for DOS を使いまする。
- USBメモリへ SYSLINUX をインストール
- USBメモリのルートに WinREx86.iso をコピー
- USBメモリのルートに GRUB for DOS の grub.exe をコピー
- syslinux.cfg を編集
syslinux.cfg
LABEL WindowsRE KERNEL /grub.exe APPEND --config-file="map /WinREx86.iso (0xff) || map --mem /WinREx86.iso (0xff);map --hook;chainloader (0xff)"
ネットワークブート
PXELINUX とGRUB for DOS を使いまする。
- TFTPルートに WinREx86.iso をコピー
- TFTPルートに GRUB for DOS の grub.exe をコピー
pxelinux/default
(など※)を編集
pxelinux/default
LABEL WindowsRE KERNEL /grub.exe APPEND keeppxe --config-file="pxe basedir /;map --mem (pd)/WinREx86.iso (0xff);map --hook;chainloader (0xff)"
または memdisk で
LABEL WindowsRE KERNEL /memdisk INITRD /WinREx86.iso APPEND raw iso
HDから
【2010.2.28修正】※ コマンド内容を修正しました。device boot
は、C:\Boot
がある場合でした。お許しあれ。
私の第1目的はこれだったりします。(DVDドライブ付いてないでおま)
Windows ブートマネージャー(bootmgr) に GRUB for DOS を登録してチェインロードさせまする。
set back_dir=C:\BCD_backup mkdir %back_dir% bcdedit /export "%back_dir%\bcd" for /f "tokens=2 delims={}" %x in ('bcdedit /create /d "GRUB for DOS" /application bootsector') do set "guid={%x}" bcdedit /set %guid% device device partition=C: bcdedit /set %guid% path \grldr.mbr bcdedit /displayorder %guid% /addlast bcdedit /enum all
確認ができたら、C:\
に grldr, grldr.mbr とmenu.lst
(上で書いてる)を保存して下され(※ エクスプローラーは「管理者として実行」しないとだめかも)。
menu.lst
をちょっと修正、WinREx86.iso はドライブのルートに保存
title Windows Recovery Environment (from /WinREx86.iso) find --set-root /WinREx86.iso map /WinREx86.iso (0xff) || map --mem /WinREx86.iso (0xff) map --hook chainloader (0xff)
いろいろ
- 「コマンド プロンプト」起動後にドライバを入れる場合は、
drvload <パス>\ほげ.inf
などと打つべし - 起動時にIPアドレスは自動設定されないので、NICが認識済みなら startnet と打つべし。
- DISM.exe
-
Windows 7(PE 3.0) では、peimg.exe はないのでマウントなども DISM でやった方がいいかもしれない。
- クライアントモードとサーバーモード
-
上記ページに解説がありますが、サーバーモードにすると「システム回復オプション」開始時に自動修復を実行しない様にできました。
下記はクライアントモード時のもの。
- Windows Vista
- Windows 7
%makedir%\mount\sources\recovery\Tools
にWinREConfig.xml
作成しませう。<Recovery> <Server/> </Recovery>