【取り扱い注意】USBメモリブートで Windows XP をインストール する方法あれこれ

2009.10.3 いろいろ追記
2009.10.4 めもに「セットアップ完了後に Windows が起動できない」を追記

INDEX

うむむ、USB CDブート非対応な1スピンドルノートなどでは非常に有用だと思います。

いろんな方法があるみたいですが、通常のCDブート時と違い若干制限があったり、事前準備が必要だったり。慣れてないと大変かも。環境次第でうまく行かないことがあるようです。

まっさらの新規インストールは楽ですが、クリーン【再】インストールの場合など通常CDブート時と違いあるのでややこしいかも。。

っていうか、私も「大してわかってへん!」レベルです(汗)。

ちょっとしためものつもりがどんどんぐちゃぐちゃになってしまいました。あんまり役に立たなかったりして...。

【余談】ちなみに、Vista以降ではDVDのファイルをコピー、ブートローダをセットアップするだけでいいみたいですね。楽になりましたねぇ。

まずはバックアップ

USBメモリ内に重要なファイルあらば、バックアップ・コピーしておくべし。

ツール使用時にはUSBメモリのパーティションも変更されるので、丸ごとイメージバックアップも必定。下記ツールでできまする(パーティション構成も復元可能)。

フラッシュメモリのサイズそのままのファイルが出来上がるので保存先の空き容量に注意。

リカバリープログラムがHD内蔵のメーカー製PCでは、Windows のみセットアップを実行するとリカバリープログラムがブートしなくなる場合があるのでご注意

外付けHDやネットワーク上の別PCあるならば、内蔵HDの丸ごとイメージバックアップも取っておくことを推奨致しまする。True Image がお手軽、フリーなら Paragon Drive Backup や Clonezilla Live とか使いませう。

注意点いろいろ

【再】インストール時の注意点...
  • 再インストール時、セットアップブート後にC:ドライブをフォーマットできない場合はクリーンインストールができないので、事前にフォーマット(或いはファイル全削除)が必要なり

次のインストール済みの Windows XP の 1 つが壊れている場合は、
修復を試行できます。

--- 略 ---

・修復しないで別の新しい Windows XP のインストールを続行する には、Esc キーを押してください。

修復インストール (in-place upgrade) 可能な場合は上記の画面が出ます。Escキー押しの後、C:ドライブを選択してフォーマット可能でした。

  1. パーティションの選択
  2. フォーマットの選択
  3. フォーマットの実行確認

【DOS + winnt.exe】【PE + winnt32】では、フォーマットできませぬ。

※ なれど、これらのフォーマット確認画面が出ずに、こんな画面が出ることがありました。ここで続行してしまうと上書きインストールとなってしまいます。その際は回復コンソールからフォーマットするべきかも。(後述)

再インストール実行前ファイルのコピー開始前ににフォーマットしないと、上書き(「修復」の場合もあるかも)インストールになってしまうのであります。

  • 【追記】WindowsセットアップCDに付属の winnt.exe, winnt32.exe はHD上などにセットアップブート(OS)をインストールするコマンド。セットアップをC:ドライブにインストールした場合、セットアップブート後にC:ドライブはフォーマットできないのでありました
ファイルのコピーエラーが発生する

ファイル bootvid.dll をコピーできません。

セットアップ完了時やセットアップブート後のファイルコピー中に中断した場合など、USBメモリの $WIN_NT$.~LS\I386 にあるソースファイルのいくつか(殆ど?)のファイルが削除されてしまうことがありまする。バックアップしておくか、一からやり直すか...

回復コンソールや、ファイルコピー前にキャンセルした場合は大丈夫だと思われます。

C:ドライブのパーティションを削除してからの再作成は危険な香り

自作er(何)ならジョウシキなのかもしれませんが...

ってか、USBメモリでセットアップのブート確認済みであるならば、Linux や PE とかでC:ドライブのファイル全削除でもいいのですけど...

めちゃややこしいけど...

【DOS + winnt.exe】【PE + winnt32】ではできませんが、それ以外では再インストール時でもC:ドライブのフォーマットができるはずなのにできない時がありまする。「Windowsフォルダの削除」の確認画面とか出ます。続行すると上書きインストールになります。

ならば、「パーティションを削除してフォーマットが必定」とか考えてしまいますが、Windows(XP)セットアップでは複数の基本領域が作成できないという罠がござる。2つ目は拡張領域となってしまうのであった。

  • パーティションをすべて削除していいなら、
    • すべて削除してから再作成してフォーマット(※ なれど、基本領域は1つのみで後は拡張領域なり)
  • 基本領域はC:が1つのみならば
    • 削除して再作成で基本領域となりましたが、ちょと不安かも?

基本領域が複数ある場合にC:を削除して再作成するとC:は拡張領域内の論理領域となってしまいます。

例えば、hda1(C:ドライブ),hda2 と基本領域がある状態で、hda1(C:ドライブ)を削除して再作成すると、hda1は拡張領域、hda5がC:ドライブに、あるいはhda2がC:ドライブになってしまったりという“ドライブ文字ズレ”がはっせーしてしまうのでござる。

回復コンソールからフォーマットするには

というわけで、とりあえずキャンセルして回復コンソールからフォーマットする方法。

※【DOS + winnt.exe】【PE + winnt32】ではできません。

W: はUSBメモリのドライブ文字に置換

C:\WINDOWS\>W:
W:\>format C: /FS:NTFS
スタートアップ ディレクトリまたは CDROM ドライブで
AUTOFMT.EXE が見つかりませんでした。

AUTOFMT.EXE の場所のドライブ文字を含む完全なパスを入力して下さい:W:\$WINNT$.~LS\I386\autofmt.exe 
警告: リムーバブルではないディスク ドライブ
 C: のデータはすべて失われます
フォーマットを続行しますか (Y/N)? y

W:\>dir C:
 ドライブ C のボリュームにはラベルがありません
 ボリューム シリアル番号は xxxx-xxxx です

 C:\WINDOWS のディレクトリ

一致するファイルがありませんでした。

W:\>exit
USB(メモリ)ブート時の基本的な注意点
  • BIOSの設定 - USB Storage の「Emulation Type
    • 「HD扱い」なのか、「FD扱い」なのか
    • パーティションの有無で自動切替することもある
    • どちらか固定の場合もある
    • PLoP Boot Manager でブートすると「HD扱い」
  • 「HD扱い」のブート
    • 「HD扱い」では原則USBメモリが第1HDとしてブートする?(※ OS起動後は別)
    • 「HD扱い」のブートではドライブレターの“ズレ”に注意。セットアップ中に“ズレ”があっても、セットアップ完了後は問題ないのかもしれませんがなんかイヤだ
    • 「HD扱い」ブートではパーティション作成が必須
    • LBAに非対応の場合がある(CHS対応のみ)
  • 「FD扱い」のブート
    • 原則、USBメモリが fd0 とか A:ドライブになる(※ OS起動後は別)
    • ファイルの読み込みが非常に遅いことがある
    • ブートローダ上では先頭パーティションしか見えない
    • FAT32ではブートしてもファイルがロードできないことがある(※ FAT12/16 に対応)
    • LBAに非対応の場合がある(CHS対応のみ)

最近のんは「どっちゃでもおk」やし、このWindowsセットアップは、LBA対応、ヘッド数 255、セクタ数 63 とかの標準的なHD形式の方が確実みたいなんで「普通のHD形式でええがな」と考えるのが妥当なり。されど、USBメモリブート初期型(?)PCでは大容量FD扱い(いわゆるZIPとかLS-120とか)なのが多かったんで、マルチブートにしたり両方で使えるように(※ C/H/S 対応とか)しときたい気もあったり。されどされど、CHSではそのOSがブートできないことがあるのが悩みどころなのでござる。

まー、FDブート可能なら PLoP Boot Manager 経由で「HD扱い」ブートになりますけど。

  • パーティション
    • FAT16では(原則)最大 2 GB
    • ドライブ全体の容量が 8.4 GB(7.84 GiB) 以上ではLBA対応が必須
    • 「FD扱い」では NTFS/FAT32 非対応の場合がある

つまりはおおまかに言って、フォーマット形式がFAT16とFAT32の2種類、パーティションタイプがそれぞれCHS(LBAなし)とLBA対応の2種類あるわけでございまする。

この「Windowsセットアップ」ブートでは、 FAT16(LBA), FAT32(LBA) が推奨のようでござりますな。

コマンド, ツール - 手段のあれやこれや

DOS + winnt.exe

制限がチト多いかなぁ。

  • セットアップブート後にC:ドライブのフォーマットはできない
  • DOS上では基本的にNTFSへのアクセス不可
  • 事前にC:ドライブをFAT32でフォーマットしておく(セットアップブート後にNTFSへ変換)
  • NTFSからFAT32への直接変更は、GNU Partedやパーティションニング・ツールなどで可能
  • 「HD扱い」でのDOSブートではUSBメモリが C:ドライブとなるので注意
  • DOSの FDISK で (Windows上の)C:ドライブを削除すると“ドライブ文字ズレ”が起こるかもしれないので注意
  • smartdrv.exeなしのMS-DOSではファイルのコピーが非常に遅い。丸1日ぐらいかかることも。
    • FreeDOS(要 HIMEM.EXE)では2時間ぐらいかな?
  • MS-DOSでは文字化けすることがある(※ 英語モードにするか、日本語フォントを入れる)

SYSLINUX + grub.exe から DOS FDイメージでブートすれば内蔵HDをC:にしてインストール開始できます。また、Balder (FreeDOS) では複数の基本 (Primary) パーティションの作成も可能です。

Windows XP 上で winnt32.exe 実行

【注意】Service Pack のバージョンを現在インストール済みのものと合わせませう。セットアップファイルが古い場合はSP統合イメージを作成するべし。

ウチでは成功したことありませぬ。セットアップがブートできてもエラー (An unexpected error (769)) で止まります。orz

【追記】LBAでパーティション切り直したらブートできました。(後述)

※ X:はUSBメモリのドライブ文字に置換

winnt32.exe /noreboot /makelocalsource /syspart:X: /tempdrive:X:

$WIN_NT$.~BT\migrate.inf削除すべしドライブ文字の設定、別PCで使う場合は編集すべし。「Boot error」で何もブートしない場合は、ntldr、または $WIN_NT$.~BT\setupldr.bin をチェインロード試すべし。

  • セットアップブート後にC:ドライブのフォーマットもできるはず?
  • 修復インストール (in-place upgrade) はできない?
Windows PE 2.0(2.1) + winnt32.exe

PEが作成済みならお手軽かと。

  • セットアップブート後にC:ドライブのフォーマットはできない

事前に PE 上で C:ドライブのファイルを全削除しておきませう。または、PE上でフォーマット + BootSect.exe 実行

I386フォルダはHD上にコピーしておいた方が確実だと思われます。

USB_MultiBoot_10

使ってないのでめもだけあっさり成功しますた。(後述)

これが一番人気みたい(?)ですね。

  • パーティション自動作成可能
  • セットアップブート後は通常CDブート時とほぼ同じかな
  • セットアップブート後にC:ドライブのフォーマットも可能
  • 修復インストール (in-place upgrade) はできない?
F6回避ツール

使ってないのでめもだけ。

SP統合イメージ作成とかドライバ追加とか、ナニゲにスゴいツールみたいです。

  • セットアップブート後は通常CDブート時とほぼ同じかな
  • セットアップブート後にC:ドライブのフォーマットもできるはず?
  • 修復インストール (in-place upgrade) は非対応
U_XP_SET.exe

使ってないのでめもだけ。

LiveXPって Bart's PE の後継版みたいのかな?

WinToFlash
  • パーティション自動作成可能
  • セットアップブート後は通常CDブート時とほぼ同じ
  • セットアップブート後にC:ドライブのフォーマットも可能
  • 修復インストール (in-place upgrade) はできない?

ちょっと試してみた。

WinToFlash を試してみた。

forum を覘くとうまく行かないことも結構あるみたい。セットアップ完了後の“ドライブ文字ズレ”は激しくいやでござります。

  • お試し環境
    • バージョン 0.4.0021 beta
    • microSD 2GB + USBカードリーダ
    • XP Home 上で実行
    • VMware Player + PLoP Boot Manager(FDイメージ) からUSBメモリブート
    • XP Home Edition SP3 のセットアップ完了後の初回ブートまで確認

※ 結果は、実機 + PLoP Boot Manager でも同じでしたが、BIOSで完全対応(HD扱いでのUSBメモリブート, FAT32 LBA など)してる場合は結果が違うかもしれない。も少しうまく行くかも

※ データ消えます、パーティションも変更されるのでご注意!

  1. WinToFlash.exe 実行スル
  2. 【Windows setup transfer wizard】をクリックしてちょいなちょいな

パーティションは、FAT32(LBA) x 1コに変更されました(元は FAT16 x 2)。コピー量は約 620 634 MB。

PLoP Boot Manager でUSBは認識しましたが、何にもブートしませんでした...orz

気を取り直して、そのUSBメモリへ ブートローダ SYSLINUX をセットアップしてチェインロードさせてみた...

  1. USBメモリへ SYSLINUX をインストール
  2. USBメモリへ SYSLINUXの chain.c32 をコピー
  3. SYSLINUXブート後に入力
    • boot : chain.c32 ntldr=$LDR$

おk!ブートしますた!C:ドライブのフォーマットもできますた。(※ パーティション削除はドライブ文字がズレたりするのでやらん方がよろしおますで)

【追記】USBメモリからのブートは1度目だけ

※ チェインロードする場合です。

2回目の起動でUSBメモリからブートしちゃうとまたセットアップが一からとなってしまいます。

  1. USBメモリでブート - テキストモードでのセットアップ
  2. 再起動
  3. HDからブート - GUIモードでのセットアップ
    • PLoPから【HDA PARTITION 1】などを選択してもおk
  4. 再起動
  5. HDからブート - Windowsの基本設定など

順番はこんなかんじです。

  • “ドライブ文字ズレ”なし
  • USBメモリは W:ドライブ(txtsetup.sif migrate.inf に記述あり)
  • プロダクト キーはGUIモードセットアップで入力

一発でできなかったのが無念でありますが、SYSLINUXからチェインロードできるのを発見できたのはケガの功名ナリか?Linux LiveCD とかとマルチブートできますねぇ。

尚、USBメモリのルートに syslinux.cfg を作っておけばSYSLINUXブート後に入力の必要はありませぬ。

  • syslinux.cfg
DEFAULT chain.c32
APPEND ntldr=$LDR$
PROMPT 0

$LDR$setupldr.bin と同じものでした。

※ ちなみに、ntldr=ntldr とすれば boot.ini の選択メニューが出るのですが、2行目を選択してもカーソルが左右に動くだけでなんにもブートしよりませんでした。

USB_MultiBoot_10 を試してみた。

  • お試し環境
    • microSD 2GB + USBカードリーダ
    • XP Home 上で実行
    • VMware Player + PLoP Boot Manager(FDイメージ) からUSBメモリブート
    • XP Home Edition SP3 のセットアップ完了後の初回ブートまで確認

上記ページのやり方そのまま実行で、難なくブートしました(※ 実機でも確認)。

  • デフォルトでは FAT16(LBA)でフォーマット
  • コピーサイズは 781 MB
  • $LDR$ なし、NTLDR でブート、\XPSTPSETUPLDR.BIN と同じもの
  • GRUB for DOS 0.4.3 もあり
  • 初回ブートでは、1行目の【1. Begin TXT Mode Setup】を選択
  • USBメモリは U:ドライブ(migrate.inf に記述あり)
  • ドライブ文字ズレなし
  • 2回目ブートでは、【2. and 3. Continue with GUI Mode Setup】を選択したらエラー
    • PLoPメニューから【HDA PARTITION 1】を選択したらおk、GUIモードセットアップが起動

2回目はHDから普通にブートさせたからなのか、USBメモリ内のファイルは削除されませんでした。ログオン・ユーザの選択画面は、【owner】と事前設定したもの2つが表示されてました。

boot.ini の内容が少しへん?

[boot loader]
timeout=30
default=signature(3cef0)disk(0)rdisk(0)partition(1)\WINDOWS
[operation systems]
signature(3cef0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect
grldr(GRUB for DOS) は、0.4.4 のものに置換をオススメ

アクティブパーティション(bootフラグ)の確認や変更が可能です。

grub> geometry (hd0)
drive 0x80(LBA): C/H/S=244/255/63, Sector Count/Size=3919860/512
   Partition num: 0, active,  Filesystem type is fat, partition type 0x0E

grub> geometry (hd1)
drive 0x81(LBA): C/H/S=1024/15/63, Sector Count/Size=967680/512
   Partition num: 0, active,  Filesystem type is ntfs, partition type 0x07
   Partition num: 1,  Filesystem type is fat, partition type 0x0B
grub> makeactive (hd1,0)
Partiton (hd1,0) successfully set active

Windows XP 上で winnt32.exe 実行

※ 「FD扱い」ブートではだめかもしれません。(「HD扱い」ブート非対応でもPLoP経由なら可能かもしれませぬ)

【WinToFlash】,【USB_MultiBoot_10】に比べると工数多いのですが、「Windows標準でやりたい」「なんかツールはイヤ」な人向けかな?ツールは便利だけど「何やっとんのかわからん」な場合もあるし(ないかなw。

とか言いつつ、ツール類を使わないと簡単にはできなかったりするので、全部ツールやった方が正解なのかもしれないという。

FAT16(CHS) ではだめでしたが、WinToFlash で FAT16(LBA) にしたらあっさり成功しました。(※ FAT16のパーティションは最大 2 GB なのでご注意。)

あぁ、でもツール類を使わずに、やる方法がないかもしれない。Windows上でフォーマットするとCHSに変更される場合があるし、Linuxなどでブートセクタ(内のIPL)を書き込む方法がないような気がします。

パーティション設定とフォーマット

上記のWinToFlash or USB_MultiBoot_10 に付属ツールだとこういうのも一発設定できたので。結局そっち使ってしまってなんだかなぁな気もしますが(汗)。

  • ヘッド数 255・セクタ数 63 の標準的HD形式
  • パーティションタイプ - FAT16(LBA) または FAT32(LBA) が確実?
  • MBR(ブートストラップ)とブートセクタ(IPL)はwinnt32実行では書かれなかったので別の手段で
winnt32 コマンド実行
  • コピー元のi386フォルダ(※ この例では D:\I386) に移動してコマンド実行(※ X はUSBメモリのドライブ文字に置換)
pushd d:\i386
winnt32 /noreboot /makelocalsource /tempdrive:X: /syspart:X:
  1. インストールの種類 - 新規インストール
  2. プロダクト キー 入力
  3. 詳細オプション 「セットアップ中にインストール ドライブ文字とパーティションを選択する」のチェック、オンを確認
  • コピーサイズは 665 MB
  • $WIN_NT$.~BT\BOOTSECT.DAT はなし
  • $WIN_NT$.~BT\migrate.inf あり
  • $LDR$ なし
  • NTLDR$WIN_NT$.~BT\setupldr.bin と同じもの(※ boot.ini は読まないのでブートメニューは出ない)
$WIN_NT$.~BT\migrate.inf を編集する

※ 同じPCにインストールする場合はそのままでいいと思います。

この migrate.inf 内容はレジストリ HKLM\SYSTEM\MountedDevices とほぼ同じの様です。ドライブレターの設定が書かれています。別PCで使う場合は編集した方がいいと思われます。削除してしまうとUSBメモリが D:ドライブになっちゃったりするので。

  1. 現在のUSBメモリの現在ドライブ文字を確認
  2. 仮に、G:ドライブなら \DosDevices\G: を検索
  3. 下記の6行目に抜き出して貼り付け
  4. W: などわかりやすいものに変更
[Version]
Signature = "$Windows NT$"

[Addreg]
HKLM,"SYSTEM\MountedDevices",,0x00000010

[Version]
Signature = "$Windows NT$"

[Addreg]
HKLM,"SYSTEM\MountedDevices",,0x00000010
HKLM,"SYSTEM\MountedDevices","\DosDevices\W:",0x00030001,\
     5c,00,3f,00,3f,00,5c,00,53,00,54,00,4f,00,52,00,41,00,47,00,45,00,23,00,52,\
     00,65,00,6d,00,6f,00,76,00,61,00,62,00,6c,00,65,00,4d,00,65,00,64,00,69,00,\
     61,00,23,00,37,00,26,00,61,00,36,00,36,00,64,00,65,00,32,00,39,00,26,00,30,\
     00,26,00,52,00,4d,00,23,00,7b,00,35,00,33,00,66,00,35,00,36,00,33,00,30,00,\
     64,00,2d,00,62,00,36,00,62,00,66,00,2d,00,31,00,31,00,64,00,30,00,2d,00,39,\
     00,34,00,66,00,32,00,2d,00,30,00,30,00,61,00,30,00,63,00,39,00,31,00,65,00,\
     66,00,62,00,38,00,62,00,7d,00

※ 内容はこれのみ。

ブートできない時

BIOSの対応によっても結果が違う、つまり、別PCで試すと全く違って来たりもします。

なんにもブートできない時に考慮すべきはこんなとこ?

  • ブートローダがきちんと書き込まれていない?
  • BIOSの設定(※ あるなら)?
  • パーティションの設定?

ブートしてもエラーで止まる場合はこんなとこ?

  • BIOSの設定(※ あるなら)?
  • パーティションの設定?
パーティション設定とフォーマット

WinToFlash or USB_MultiBoot_10 ではこの辺を一発設定できました。

  • MBR(ブートストラップ)とブートセクタ(IPL)の書き込み
    • WinToFlash, USB_MultiBoot_10 に付属ツール使用
    • or PE,Vista で diskpart コマンド
    • or SYSLIUX + chain.c32, GRUB for DOS でチェインロード(※ 後述)
  • ヘッド数 255・セクタ数 63 の標準的(?)HD形式
    • WinToFlash, USB_MultiBoot_10 に付属ツール使用
    • or Linuxのfdiskコマンドならヘッド数・セクタ数を指定して実行する
      • # fdisk /dev/sdz -H 255 -S 63
  • パーティションタイプ - FAT16(LBA) または FAT32(LBA) が確実?(NTFSでも可能かも)
    • FAT16(LBA) - e(0E)
    • FAT32(LBA) - c(0C)

※ ブートセクタ(IPL)はWindows上でのフォーマット時に書き込みされますが、パーティションタイプが LBA から CHS に変更されてしまうことがあるなり。

他のブートローダからチェインロード

winnt32.exe ではブートローダは設定されない模様でした。また、ツールを使ってもブートローダがしっかり起動してくれないことがありまする。

ntldrsetupldr.bin のチェインロードは、SYSLINUX + chain.c32、または GRUB for DOS で可能でした。マルチブートにするのもいいかも。

  • SYSLINUX + chain.c32
    • chain.c32 ntldr=$LDR$
    • chain.c32 ntldr=/$WIN_NT$.~BT/setupldr.bin
    • chain.c32 ntldr=ntldr
  • GRUB for DOS
    • chainloader /$LDR$
    • chainloader /$WIN_NT$.~BT/setupldr.bin
    • chainloader /ntldr
  • 【注意】キーマップ
    • チルダ~Shift-半角
    • イコール=^(へ)
    • アンダースコア_Shift-=(ほ)
An unexpected error (769)

チェインロードするとブート後に下記のエラーで止まる場合がありました。Enterで続行後にUSBメモリのLEDが点灯しセットアップが開始できることもありました。

An unexpected error (769) occurred at
line 5199 in d:\xpsp\base\boot\setup\setup.c

でも微妙かな?別の方法試した方がいいのかな?

めも

修復インストール (in-place upgrade)

USBメモリからの直接ブートではできないのかな?

代替手段は、Windowsが起動中なら setup.exe や winnt32.exe の実行。Windowsが起動不可な場合は、PE上から winnt32.exe 実行するとかかなぁ。

セットアップ完了後に Windows が起動できない

boot.ini がおかしい場合があるようです。内蔵HDが第2HDになったままとか。

  • 通常の boot.ini - 第1HDの第1パーティションのWindows の場合
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /noexecute=optin /fastdetect

USBメモリからブートすると、USBメモリが第1HD、内蔵HDが第2HDとなるため、rdisk(1)partition(1) となったままの状態の場合があるようです。

修正は、rdisk(1)rdisk(0) に書き換えるだけです。

  • 修正方法は?
    • USBメモリの boot.ini を編集、USBメモリNTLDRからブートしてWindows上で書き換え
    • or, 起動ディスクなどでWindwsを起動
    • or, Windows PE、他のLiveCDなどでブートして直接書き換える
USBメモリからWindowsをブート

NTLDRではなく、セットアップが直接起動してしまう場合は、SYSLINUX + chain.c32 などでチェインロードしませう。

  • USBメモリの boo.ini に追記 - [operating systems]行下から
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="XP SP3 from Partition 1" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="XP SP3 from Partition 2" /fastdetect /NoExecute=OptIn
multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="XP SP3 from Partition 3" /fastdetect /NoExecute=OptIn

【注意】この場合は、第2HDを指定しています。