2010.8.8 ちょっと改訂
2010.8.22 あると便利なツール類 追記
※上記の改訂版だったりします。。
CDブートに比べるとかかる工数はかなり増えます。また、事前事後の準備・確認作業は必須です。なので、どうしてもCDドライブが使えない際の緊急手段かなと。MSのサイトにもあんまり情報ありませんから裏技的風味満点(つまり「保証」なし?)なのかもしれません。と言いつつも、私はDOSからのインストールに慣れちゃってたりします。
お約束ですみませんけど、「自己責任」*1ということで。私は下記の方法で失敗したことないんですけど、世の中何が起こるかわかりませんからね(意味不明な言い訳...)。
※ NTFSなCドライブにWindows XP がインストールされている、またはインストールしたい。Cドライブ以外のWindows上で認識可能なパーティションをDドライブ。と“仮定”してます。
- メーカー製パソコンでは注意
-
Windows(のみ)のセットアップを開始するとMBR(マスターブートレコード)が書き換えられます(正確にはMBR内の「ブートストラップローダ」かな)。ハードディスクから直接起動するタイプのリカバリープログラムが実行できなくなる場合があります。MBRはバックアップがない場合は復元が非常に困難なので注意しましょう。取扱説明書などに記述のない操作はしない方が安全かと思います。
- 【追記】USBメモリブート
-
書くの忘れてましたー(汗)。USBメモリブートでも(※ 非対応PCでは PLoP Boot Manager 使用で)一応できました。
ただ、一発でうまく行かない場合も多かったのでチト試行錯誤が必要かもしれません。
- INDEX
ウンチクetc
Windows XP ではインストールCDからブートできない場合、HD上などに保存したフォルダから winnt.exe
/ winnt32.exe
を実行することによりセットアップが可能です。
注意点として、winnt / winnt32 は直接インストールを開始するわけではなく、まず「Windows セットアップ」ブート用一時ファイルをパーティションにコピーして、「Windows セットアップ」ブート可能にするプログラムということ。これらのファイルがCドライブにあるとCドライブのフォーマットができません。よって、winnt なら事前にフォーマット(DOSなのでNTFSではなくFAT32で)、winnt32 ならDドライブからブートさせる、など事前処理が必要となるわけですね。
- DOS上なら【winnt.exe】
-
Windows XP がインストールされていない、あるいは起動できない場合はこの方法かな。パーティションが1つしかない場合も。
- 必要条件
- ブート可能なFDドライブ。または、PXEネットワークブート or USBメモリブートで代用可能であること。
- winnt.exe 実行前に CドライブをFAT32でフォーマットすること
ファイルのコピー時間が異常に長くかかったり、DOS起動ディスクの作成などかなり面倒なのですが、数十回ほど実行して失敗したことはないので結構確実な方法であると言えるかも。
シコシコがんばれば(何)、ネットワークブートでインストールも可能です。
FDブートさえできない場合、手間はめっちゃかかりますが取り外したHDにDOSをインストールするとかでも。
- 必要条件
- Windows 上なら【winnt32.exe】
-
5回しか確認してないので、不確定要素がありそうな。とは言え、かなり裏技風味ですがこの方法ではFD/CDドライブとも不要なので楽かも。
- 必要条件
- Windows XP が起動可能
- Cドライブ以外のDドライブなどの基本領域(プライマリパーティション)。空き容量は1.5GB程あれば。
- 必要条件
- Windows PE(2.0以上)で【winnt32.exe】を実行
-
便利な時代になったもんだNE!(何)
Windows PE(2.0以上)から winnt32.exe の実行でセットアップが可能です。但し、CDブート不可という条件下ではこれを HD, USBメモリ, ネットワークのいずれかでブートさせる設定が必要になります。注意点はありますが、ネットワークの利用や(※ NICが対応していれば)、フォーマット・パーティション作成なども可能なのでメンテナンス用として重宝するかも。
PEはオンメモリで起動するので、PE起動後 winnt32 実行前にHDのフォーマットができます。
DOS上で【winnt.exe】を実行
古いDOSでは大容量(?)HDドライブをうまく認識できないことがあるかも。Win98起動ディスクの fdisk ではパッチが当たっていない場合 64GB 以上を認識できない。BIOSの対応にもよりますが 160GB 以上のHDなどでは事前にパーティションを切っておく必要があるかも。
おおまか手順は
- CドライブをFAT32でフォーマット
- Cドライブのアクティブ設定の確認
- アクティブ化は、fdisk コマンド、GRUB起動ディスク、Linux LiveCDなどで可能
- i386フォルダをコピー
- DOS起動ディスクからブートして、winnt.exe を実行
または、
- CドライブをFAT32でフォーマット
- Cドライブのアクティブ設定の確認
- アクティブ化は、fdisk コマンド、GRUB起動ディスク、Linux LiveCDなどで可能
- DOS起動ディスクからブートして、ネットワークドライブから winnt.exe を実行
- 参考
-
- Windows XP のセットアップ プログラムを MS-DOS から開始する方法
- web.archive - Windows XP のセットアップ プログラムを MS-DOS から開始する方法
- MS-DOS起動ディスク - Windows 98(拙作)
- MS-DOS起動ディスク - Windows XP(拙作)
- FreeDOS 1.0(拙作)
- Balder - Finnix(※ 英語版ですがFDISKなど一式入ってるので個人的オススメ!)
- Partboot for USB floppy drives
- USB-FDドライブでのブート、FAT32フォーマット、USBやPCMCIAデバイスの利用可能なFD版Linux。う?んと、使い方については間違ったことするとアレなんでLinuxユーザに訊くのがいいかな。私ならビールx本で(以下略)
- web.archive - Partboot for USB floppy drives
- BG-Rescue Linuxめも
- FD3枚でブートして色々できます!
- 「チルダがアンダーバーに変換されちゃったよ?」な時用バッチファイル(拙作)
- Windows XP のセットアップ プログラムを MS-DOS から開始する方法
Windows XP上で【winnt32.exe】を実行
尚、Dドライブが基本領域(プライマリパーティション)ではなく、論理領域(論理ドライブ)の場合は基本的に無理です。(※さらなる裏技?があるかもしれません...)
- 緊急起動ディスクの準備
-
この方法を実行する前に、万が一(もしかして十が一ぐらいかもしれない)失敗があるとブートできる手段がなくなってしまいます。Windows 緊急起動ディスクの準備をおすすめしておきます。FDドライブが必要になってしまいますが...。
- SP3統合
-
XPセットアップファイルの Service Pack のバージョンが現状より古い場合は(※ 多分実行できないので)、SP3ファイルを統合しておきませう。(※ SPなしの場合はSP2→SP3の段階的統合が必要かもしれません?)
- IT プロフェッショナルおよび開発者用 Windows XP Service Pack 3 ネットワーク インストール パッケージ
- Service Pack 3 (KB936929) (325MiB) - Microsoft Update カタログ
- [Windows XP Service Pack 2] で検索 (273MiB) - Microsoft Update カタログ
- フォルダ作成
C:\TestD:\Test
とか - XPセットアップCDの内容(または
i386
フォルダごと)をD:\Test
にコピー - SP3ファイルを保存したディレクトリに移動し下記コマンド実行
WindowsXP-KB936929-SP3-x86-JPN.exe /integrate:D:\test
※ 下記はSP2の例ですが参考に
- IT プロフェッショナルおよび開発者用 Windows XP Service Pack 3 ネットワーク インストール パッケージ
下記ページの手法を踏襲させて頂きました。(というかそのままです...多謝)
おおまかな手順は以下のとおり。
- XPブート用ファイルをDドライブにコピーする
- アクティブパーティションをDドライブに変更する
- 念のためDドライブからのブートを確認
- インストールCD内のi386フォルダをDドライブへコピーして winnt32.exe を実行
- CドライブにコピーされたファイルをDドライブに移動
- 再起動して「Windowsセットアップ」をブート
- XPブート用ファイルをDドライブにコピーする
-
Cドライブルートの以下のファイルをDドライブルートへコピー
- ntldr
- boot.ini
- NTDETECT.COM
- bootfont.bin
コマンド プロンプトから
C:\Documents and Settings\palm84>pushd c:\ C:\>xcopy /h boot.ini d:\ C:boot.ini 1 個のファイルをコピーしました C:\>xcopy /h bootfont.bin d:\ C:bootfont.bin 1 個のファイルをコピーしました C:\>xcopy /h NTDETECT.COM d:\ C:NTDETECT.COM 1 個のファイルをコピーしました C:\>xcopy /h ntldr d:\ C:ntldr 1 個のファイルをコピーしました
Dドライブから起動したことがわかるように boot.ini の表示文字列をちょっと変更しとくといいかな。コマンドプロンプトから
※ってマルチブートじゃないとメニューは出ないですね(汗)。
pushd d:\ attrib -s -h -r boot.ini notepad boot.ini
最下行をコピー追記してセーフモード行でも作っときましょかね。
/safeboot:minimal
を追記します(選択が複数ないと起動時にメニューは出ない)。下記はあくまで私の環境での例ですけど。[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect /NoExecute=OptIn multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Mode minimal" /fastdetect /NoExecute=OptIn /safeboot:minimal
- アクティブパーティションをDドライブに変更する
-
- 「ディスクの管理」(ファイル名を指定して実行
diskmgmt.msc
)を起動 - Dドライブを右クリック
- 「パーティションをアクティブとしてマーク」をクリック
マルチブート状態では、アクティブパーティションが「システム」で稼働中のWindowsがインストールされているパーティションが「ブート」と表示されます。なんか逆なんではという気もしますが...
- 「ディスクの管理」(ファイル名を指定して実行
- 念のためブート確認
-
正常にブートできるか確認します。起動後は「ディスクの管理」でDドライブが「システム」となっているかも確認。
Dドライブからブートできない、アクティブパーティションが変更されない場合は、「Windows セットアップ」がブートできないと思われます。DOS上からフォーマットしてのインストール(winnt.exe)を試す方がいいかと。
と言いつつも...GRUBやMBMの起動フロッピーでブートして、ブートさせるパーティションを指定すれば「Windows セットアップ」のブートは可能だったりしました。ただ、不都合の起きる可能性(ドライブレターが変わってしまうとか)もあるので、あまりおすすめはできないかなと。
- winnt32.exe を実行
-
ネットワークドライブを割り当てれば、ネットワークからの直接実行も可能でした。
winnt32.exe をオプション付で実行します。
- ネットワークなどからCD内のi386フォルダをDドライブへコピー(CD丸ごとでも)
- コマンドプロンプトから winnt32.exe をnorebootオプション付で実行
pushd D:\i386 winnt32 /noreboot
- インストールの種類は「新規インストール」
- セットアップオプション→詳細オプション
- 「セットアップ中にインストールドライブ文字とパーティションを選択する」にチェックを忘れずに
- コピー終了後、Cドライブに保存された
$WIN_NT$.~LS
フォルダをDドライブへコピーする。Cドライブからは削除。 D:\boot.ini
ファイルを参照。「Windows セットアップ」があるか確認
3.のチェックをしておかないと、十分な空き領域のあるパーティションが自動選択されてしまいます。4.をしないとCドライブのフォーマットができません。
※ DドライブがFAT32の場合、NTFSへのアップグレードはスキップする
- Windows セットアップ
-
慣れてる人には言わずもがなと思いますけど。
- 「修復しないで別の新しいWindows XP のインストールを続行するには...」で Escキーで続行
- インストール先のパーティションの選択を間違えないように
- 「NTFSファイルシステムを使用してパーティションをフォーマット」
- クイックでいいかと。フォーマットしないと上書きインストールになってしまうのでご注意。
- アクティブ設定を元に戻す
-
インストールが完了したら、「ディスクの管理」にてアクティブ設定を確認しておきます。多分Dドライブが「システム」のままになってるかと。
- DドライブルートのXPブート用ファイルをCドライブのルートへコピー
- ntldr
- boot.ini
- NTDETECT.COM
- bootfont.bin
コマンド プロンプトで下記実行
pushd d:\ xcopy /h boot.ini c:\ xcopy /h bootfont.bin c:\ xcopy /h NTDETECT.COM c:\ xcopy /h ntldr c:\
- Cドライブを「パーティションをアクティブとしてマーク」
- 再起動して確認
※ここは慎重に。ミスしないように。
- DドライブルートのXPブート用ファイルをCドライブのルートへコピー
尚、winnt32.exe + /syspart オプション(本来は同一ドライブの別パーティションではなく別HDドライブへ別マシン上でセットアップするオプションかな?)では事前の操作なしに「Windows セットアップ」のブートが可能だったりするのですが、原因不明な不都合が何度かありましたのでとりあえず私的には(何)保留ということにしました。(単に私のスキル不足だったりしますが...あいすみません。)
winnt32 /noreboot /makelocalsource /tempdrive:<ドライブ名>: /syspart:<ドライブ名>:
セットアップは問題なく完了できます。ただ、ドライブレターがずれるなど(※本来Eドライブになるはずの論理ドライブが基本領域より先のDドライブになったり)、やや気分的に許せない不都合が出ることがありました。ドライブレターの強制変更は可能なので運用上は問題ないのかもしれませんけど。
- 【追記】めも
-
CDドライブ上の winnt32.exe を直接実行すると元のI386フォルダがコピーされないのでセットアップブート後もCDが必要になります(※ オプション
/makelocalsource
を付ければいけるかな)。
Windows PE上で【winnt32.exe】を実行
Windows PE ファイルの作成が必要です。この PE はCD以外に、HD, USBメモリ, ネットワークからブートできます。PE起動後にネットワークの利用も可能なのでネットワークブート + ネットワークドライブから winnt32.exe の実行なんてこともできるのです。
PEはオンメモリ起動なので、winnt32 実行前にHDのフォーマットも可。
慣れるとめっちゃ便利ですYO!
※ イメージ作成時に BootSect.exe の追加をお忘れなく!
上記ページに色々書いとりますが注意点がいくつか。
- XPセットアップファイルが SP3 でないと不具合が出る可能性が高い
- SP2 以下の場合は SP3 ファイルを統合しておきませう
- Windows PE 2.0 はXPより新しいOSなのでPE上でフォーマットするとVista以降の仕様となり、そのままwinnt32を実行するとXPセットアップは起動できない(※ winnt32 実行前に BootSect.exe で修復可)
- (※ 新規インストール時)Windows PE上の diskpart.exe でパーティションを切ると所謂1MiBアラインメントなVista以降の仕様となるので“古いPCでは”別のパーティションソフトを使ったほうが安全かもしれない(※ 逆に新目のPCではこっちの方がいいかも)
あると便利なツール類
慣れてないとめちゃシンドイかもですが、慣れると very ベンリーなツールです。
- Balder (FreeDOS)
-
HIMEM, キーボードドライバ組み込み済、FDISK, FORMAT, SYS, XCOPY コマンドあり。XP の winnt.exe 実行可能。
FDイメージがダウンロードできます。RawWrite for Windows などでFDへ書き込みませう。(※ またはFDイメージのネットワークブートでも)
FDISKは基本パーティションの複数作成も可能。NTFSな C:ドライブを削除後に 基本・アクティブ C: FAT32 として再フォーマットできました。
keyb jp
と打つとJPキーボード配列となります。 - GRUB(for DOS)起動ディスク
-
NTLDRのチェインロードとか、アクティブ・パーティションの変更とかXP起動ディスクとして使うとか
- GRUB4DOS and WINGRUB | Download GRUB4DOS and WINGRUB software for free at SourceForge.net
- 021 – Guide to Grub4Dos – RMPrepUSB
- 拙作めも:GRUB起動ディスクを作っておくの巻
「セットアップファイルのコピー終わってんけどHDからブートしよらんがな」な時はこれで $LDR$ をチェインロードすれば続行できるかもしれない
- コマンドの一例
find --set-root /$ldr$ chainloader /$ldr$ boot
- BootSect.exe
-
Windows PE (Windows AIK) や Windows 7 のシステム修復ディスクに含まれてます。XP用MBRブートストラップとXP用ブートセクタ(のIPL)の書き込みが可能なのです。
- Bootsect コマンド ライン オプション (PE 3.0)
- 拙作めも:BootSect.exe - Windows PE 2.0 めも
- GParted (parted)
-
Linuxではめちゃ代表的パーティションニング・ツールです。NTFSからFAT32への直接フォーマットとかできます(※ NTFSフォーマットでのブートセクタは BOOTMGR 仕様)。
【追記】NTFSから直接フォーマット後に winnt.exe を実行したら「Disk error」で起動できないことがありました。Balder(FreeDOS) などで再フォーマット後に winnt 実行した方がいいかも。
【注意】Vista以降の世代PCなどでは、1MiBアラインメントや4KBセクタなどにも対応している最新版を使いませう。GParted LiveCD, Parted Magic, SystemRescueCd とかがおすすめ。
※ あっと、これらのLiveCDはUSBメモリやネットワークからのブートもできるけど初めてだとチトしんどいかなぁ。
- ネットワークブート用サーバ
-
最近はFD付いてないとか持ってないとかな場合多いのでこれしとくとマジ楽になるかも。
私レベルでも結構簡単にできました!FDイメージ(※ 上記の Balder やGRUB起動ディスクとかも)や一部のisoイメージのブートも可能でござる。
- TFTPD32 : a opensource TFTP server/service for windows : TFTP server
- 拙作めも:PXEネットワークブートについてのめも
- 拙作めも:WindowsでPXEネットワークブート用サーバの設定 - TFTPD32
ネットワークブート非対応でもNICが内蔵(カード)なら起動ROM(起動ディスク)からブートできるかも?
- KNOPPIX Terminal Server
-
別PCにて KNOPPIX をCD/DVDブートしてネットワークブート用サーバを設定。ルーターのある環境ならスクリプト一発なので楽チンチン。サーバ側で Samba サーバを起動すればサーバ側からファイルのコピーもできるのだ。
- KNOPPIX Terminal Server - Knoppix Documentation Wiki
- 拙作めも:KNOPPIX Terminal Serve - Knoppixを起動する方法を試しためも
【注意】KNOPPIX の GParted はやや古いので、1MiBアラインメントや4KBセクタなどに対応してないです。Vista世代以降の新しいPCで使う場合はお気をつけあそばせ。
参考リンク
取り外したHDをUSBで別PCに接続。「HP USB Disk Storage Format Tool」でHDへDOSを直接インストールされてます。
*1:とか言いつつ、うまく行かなかった場合は状況を教えてもらえるとうれしいかなと。「後学のために」ってやつで。