※【2009.10.5】 「回復コンソール」について追記。(最終更新 2009.10.31)
“ミニ”Linux編に続きまして超私的めも第2弾です。
GRUB for DOSを直接インストール、または、SYSLINUX + GRUB for DOSから、MS-DOS or FreeDOSをチェインロードするのが最も便利だと思っているのですが、このGRUBはUSBブートに完全対応してないのか、機種によって不安定なトコがいまいちかなぁ。(※DOSを直接インストールしてgrub.exeを起動するって手もありますが...)
- 【追記・重要】バックアップイメージ作成
-
パーティションを切りなおす場合は、事前に全体のバックアップイメージを取っておきませう。下記ツールが便利です。
- 【追記】Windows ツール
-
細心の注意を持って使う必要ありだと思いますが、Windows 上でUSBメモリをごにょごにょできるツール類。
- INDEX
BIOSの対応とか注意点とか
えーと、下記は私の個人的解釈というか、推測がかなり混じっておりますので注意ですけど、環境次第でうまくいったりいかなかったり、DOSのブートに関しては色々ありました。確認は主にFreeDOSでやってるのでMS-DOSだと違ってくるかもしれません。
私が知ってる限りでの話なのであんまり正確ではないのでしょうけど...
尚、Linux LiveCD(LiveUSB)の場合は、これらの条件による影響はほとんどないようです。あくまでDOSブートについての話。
BIOSの仕様が微妙に違うことが多いので、どんなPCでも使える汎用性を考えるとキリがなかったりして...
まずは電源オン時に、Esc や F8 - F12 キーあたりを押して所謂「ブート選択メニュー」が出ないか確認しませう。このメニューから選択してブートできるかトライしてみるべし。
- BIOSでの認識がおおまかに2種類
-
上記ページの解説にありますが、HD扱いとFD扱い(※正確には
Zipらしい)ではブートの可否が違ってきたりすることがありますね。- HD扱い - DOS上のドライブ文字は、
C:
- FD扱い - DOS上のドライブ文字は、
A:
またはB:
- 最近のPCでは、【USB Mass Storage Configulation】などの項目で【Emulation Type】を選択できるものがある
- 自動設定 - パーティションの有無、容量(512 MB以下など)により自動選択されるものもある
- (2002年頃の製品とか)USBメモリブート初期型(?)PCでは、「USB ZIP」「USB RMD-FDD」「USB LS-120」などFD扱い固定のものが多かったような
- FD扱いでの注意点
- FD扱いではフォーマットがFAT32ではだめみたい
- FAT16では、パーティションは(原則的には)最大 2 GB
- FD扱いでは2番目のパーティションはGRUB上で見えない
- HD扱いでの注意点
- USBメモリを第1HDとして設定する必要があるかも
- (USBメモリブートした際)殆どの場合、USBメモリが第1HD、内蔵HDが第2HDとなるので注意
- DOSブートでは、USBメモリがC:ドライブとなる(※ DOSは A:,B:,C: からブートしないと、config.sys などがロードできない)
尚、FD扱いのPCでも PLoP Boot Manager 経由でブートさせるとHDとして認識されました。
- HD扱い - DOS上のドライブ文字は、
- 【追記】Linux の
fdisk
でパーティションを切るのが確実なのかも... -
あくまで、私の貧しい経験上の話ですが...FD扱い固定・HD扱い固定のPC両方でほぼ確実にブートできています。
【追記】※USBメモリの容量が 8.4 GB(7.84 GiB)以下の場合ですけど...
Linuxの
fdisk
コマンドで(※C/H/Sを指定せずに)パーティションを再設定すると、C/H/Sにおけるシリンダ数が1024(0から1023)以下に設定されてブート可能になることがありました。というか、私はいつもこの方法でやってました。(※注:最初にMBRから第1パーティションの先頭セクタあたりをクリアしないと再設定になりません)- パーティションの切りなおし
$ dd if=/dev/zero of=/dev/sdx bs=512 count=64 # fdisk /dev/sdx
パーティションタイプはFAT32 -
B(0B)
、FAT16 -6(06)
で。でも...Web上では下記のツールの使用(ヘッド数が255、1トラックのセクタ数が63)での成功例が多いようなので、ホントのところは...?
【追記】USBメモリの容量が 8.4 GB(7.84 GiB)超なら
FAT32 -
ですね。すみません。C(0C)
、FAT16 -E(0E)
- HD扱いの場合、標準的な
C/H/S
を設定するべきなのかもしれない? -
標準的なHDのパーティションの構成というのはこんなかんじかな?
- (1トラックの)セクタ数が63
- ヘッド数は255(または16)
- シリンダ数は容量に合わせて設定される
USBメモリの
C/H/S
は一定ではないようです。よってUSB HDDとしてブートできない場合はこれが原因かもしれません。しかし、これを設定するとFD扱いでは逆にブートできなくなってしまうこともありました。※ Windows PE 2.0 や Vista 以降の diskpart では第1パーティションの開始位置が2049番目セクタとなるので注意。
C/H/S
を指定してパーティションを構成するには-
上記ページで紹介のツールをWindows XP上で実行すると、セクタ数63・ヘッド数255でパーティション1つ作成(アクティブ設定)されました。パーティションタイプはLBA対応。
HD扱いの場合は最も確実な方法だと思います。ただ、FD扱い(USB LS120)のPCでは逆にブートできなくなってしまいました(起動途中で停止)。
Linuxなどのfdiskコマンドでは、ヘッド数・セクタ数を指定してパーティションを作成できます。
$ dd if=/dev/zero of=/dev/sdx bs=512 count=64 # fdisk -H 255 -S 63 /dev/sdx
SYSLINUXの
mkdiskimage
(※Linuxコマンド or Perlスクリプト) を使う手も。 - HD扱い・FD扱いのどちらかしかブートできないことがある
-
多分BIOSの対応次第だと思われるので、必ずしもそうであるとは言えませんけど。
パーティションタイプがLBA非対応の場合があります。
- パーティションのタイプをLBA対応にしてみる
-
FAT32なら
C(0C)
、FAT16ならE(0E)
で。FAT32 -
B(0B)
、FAT16 -6(06)
から変更したらGRUBとかブート可能になったことがありました。LBA対応にすると、DOS + USBドライバでファイルが読めなくなったりするのでどっちがいいのか?ですけど...
(※USBメモリの容量が 8.4 GB(7.84 GiB)以下の場合)Windows上でフォーマットすると、FAT32 -
B(0B)
、FAT16 -6(06)
になるようです。 - HD扱いではMBRのブートストラップが必要
-
HD扱いでの、おおまかなブートの流れです。
- MBRのブートストラップローダ
- アクティブパーティションのブートセクタ内のIPL(DOSではDOS-IPL)
- ブートローダ IO.SYS が command.com などをロード
パーティションが切られている場合は、MBR内にブートストラップがあり、パーティションがアクティブ(bootフラッグ)に設定されている必要がある筈です。
購入時に設定済みになっているものもあるらしいです。また、(DOS上でHDとして認識できる場合)DOSのFDISKを実行した場合も自動でブートストラップが書き込まれるようです。
- MBRへブートストラップの書き込み
-
- DOS上でHDとして対象を指定できる場合
- DOS上で
fdisk /mbr
の実行
- DOS上で
- Linuxで ms-sys コマンドの実行
※USBメモリが
/dev/sdx
のMS-DOSの場合です。# ms-sys -z /dev/sdx(※既存のブートストラップをクリア) # ms-sys -s /dev/sdx(※SYSLINUXの“標準的”ブートストラップ)
ms-sys はKnoppix、SystemRescueCd、INSERT、BG-Rescue Linux(FD版もあり)などのLiveCDにも入ってます。
- Windows上なら、イメージファイルへSYSLINUXのmbr.binを dd for Windows で書き込むとか
dd if=/dev/zero of=imagefile.ddi bs=446 count=1 dd if=mbr.bin of=imagefile.ddi bs=404 count=1
※SYSLINUXを使う場合は、syslinux.exe -ma <ドライブ文字>: の実行でアクティブ化とMBRブートストラップの書き込みが可能です。
- DOS上でHDとして対象を指定できる場合
- パーティションをアクティブに設定
-
- Linux の fdisk や GParted などで設定
Windows XP/2000の「ディスクの管理」- (DOS上でHDとして認識できるなら)DOSのFDISKで設定
- (※GRUB上でUSBメモリが、
fd0,fd1,hd0,hd1 などとしてHD扱いで認識できる場合)、GRUB起動ディスク(FDなど)でブートしてmakeactive
コマンド
※SYSLINUXを使う場合は、syslinux.exe -ma <ドライブ文字>: の実行でアクティブ化とMBRブートストラップの書き込みが可能です。
- 標準的なZip形式?
-
USB Zip としてBIOSで認識される場合は、以下を試してみてもいいかも
サイズに合わせて、ヘッド数・セクタ数を指定、パーティション4を作成してアクティブにしろってことみたい。
- ※サイズ1 GBの場合
mkdiskimage -4 /dev/sdx 0 64 32
0はシリンダ数を自動設定、ヘッド数64、セクタ数32。
- 再接続しませう
-
イメージを書き込んだ後や、フォーマット時など「ハードウェアの安全な取り外し」を実行して、再接続しておいた方がいいかと思います。
ツールなど
- パーティションが切られているか確認
-
Windows XP なら【ディスクの管理】でUSBメモリのドライブに「アクティブ」表示がある
か、「アクティブとしてマーク」が可能ならパーティションありです。または、fdiskコマンドなどで確認しませう。- dd コマンドでパーティションを確認
どの起動ディスクを使うか?なのですが、一番いいのはやっぱり Windows 98 の起動ディスクだと思います。(※古いマシンは別として英語でもいいならフリーで入手可能な FreeDOS の方が履歴や補完機能あるから使いやすいかも?)。Windows XP で作成できるものはバージョンが違うので、xcopy が使えない、ドライバはキーボードのみ、外部コマンドなし、Windows 2000 のwinnt.exe が実行できなかったりなどそのままではあんまり使えません。
FreeDOS BalderのFDイメージには、fdiskなどコマンドがいっぱい入ってるので便利です。
Norton Ghost 2003 に付属の PC DOS や、Partition Magic に付属のDR-DOS などを使うのもありかと。
ちゅうか、そもそもFDドライブないねんけど、な方はこれを使いましょう。2.88MBイメージも作れます4。
【追記】拙作ですが参考に...
- Windows でフロッピーディスクイメージの作成(書き込み)
-
おなじみかと思いますが、「Write」タブでフロッピーへ書き込み、「Read」タブでイメージを作成します。
- Windows でUSBメモリイメージの作成(書き込み)
-
本来はコンパクトフラッシュ用とのことなのですが、USBメモリでも使えました。但し、「disk dump image」ということで保存時はUSBメモリの容量とまったく同じになる点は注意しておくべきかと。
- Windows で dd コマンド
-
USBメモリイメージへの書き込みなどが可能です。
単純なやり方 - FDイメージをそのまま書き込み
USBメモリがBIOSでUSB-FDUSB ZIPや所謂スーパーフロッピー(LS 120,RMD-FDDなど)として認識される、FD扱いの場合のみに有効な手段だと思われます。あくまで私の環境でできてまっせな話ですけど...
容量が1.44MB(2.88MB)に固定されてしまいますので、多少かなり?危険な方法なのかもしれません。DOS/Windows系ツール(FATフォーマットならいいのかな?)はほぼOKでした。Linuxのイメージはほぼ駄目でした(GRUB起動ディスクとか)。自己責任にてお願い致しますです。(汗)
- DDforWindows でFDイメージを直接書き込む
一時的に使うだけならこれが楽かもしれません。
DOS上でSYSコマンド
※これが正式な方法だと思うんですが、なぜかうまく行かないことも多かったり...
USB(メモリ)ブート対応PCであれば、DOS上でドライバなしでもFDかHDとして認識されるので、FDドライブ、またはFDイメージからブートして、USBメモリに対してSYSコマンドを実行。
sys X:
※注)X
はUSBメモリのドライブ文字
mkbt.exe
- 【追記】成功率低いみたいです?
-
私の環境ではほぼおkなのですが、同じコマンドを打ってるのに、フォーマット形式や容量が変わってしまったり、変わらなかったり。コマンド実行時に警告が出ず、フォーマットはFAT16のはずなのにFAT12とブートセクタに書かれたり(それでもブートできるのは不思議?)、書かれなかったりしました。
事前にFAT(16 or 32)でフォーマットしておきます。
- MS-DOS起動ディスクのイメージファイルを作っておく。
- コマンドプロンプトを起動し、mkbt.exe を実行。
<mkbt.exeの解凍先フォルダ>\mkbt -x <起動ディスクイメージのファイル名> <USBメモリのドライブ:>※ファイルシステムが違うとの警告メッセージが出ますが、問題ないようです。- 起動ディスクイメージから IO.SYS、MSDOS.SYS、COMMAND.COM の3ファイルを取り出し、IO.SYS→MSDOS.SYS→COMMAND.COM の順にUSBメモリにコピー。
mkbt.exe (web.archive) を使いブートセクタ(内のIPL)をコピーする方法ですね。-x
オプションでFDドライブ(A:,B:)以外に強制書き込み出来るようです。くれぐれもドライブ名はお間違えのなきよう!
- FreeDOS
- 上記の方法で mkbt でブートセクタを書き込み後
kernel.sys
→command.com
の順番でコピーすれば起動可能でした。
- 上記の方法で mkbt でブートセクタを書き込み後
- DR-DOS / PC DOS
- 上記の方法でmkbtでブートセクタを書き込み後
ibmbio.com
→ibmdos.com
→command.com
の順番でコピー
- 上記の方法でmkbtでブートセクタを書き込み後
ms-sysコマンド(Linux)
Linuxの ms-sys コマンドでもブートセクタの書き込みが可能でした。Knoppix、BG-Rescue Linux、INSERT などのLiveCDにも入ってます。
但し、FreeDOS のブートセクタについてはバージョン 2.1.2 以降なので Knoppix 5.1.1,5.3.1 のものではだめ。SytemRescueCd 0.4.1, BG-Rescue Linux 0.9.1 に入ってました。
- パーティションを作成してDOSを設定
-
!間違ってHDに向けてやっちゃわないようにご注意!
※USBメモリが
/dev/sdc
の場合です。- MBR(先頭セクタ)をクリア
# dd if /dev/zero of=/dev/sdc bs=512 count=1
- fdisk、または GPartedなどでパーティション作成し、bootフラッグ(アクティブ)を設定
- MBRのブートストラップ部分を念のためにクリア
# ms-sys -z /dev/sdc
- MBRへSYSLINUXの“標準的”ブートストラップを書き込み
# ms-sys -s /dev/sdc
- パーティションをフォーマット(※
/dev/sdc1
の場合)
--- ※ FAT16の場合 ---- # mkfs.vfat -F 16 /dev/sdc1 --- ※ FAT32の場合 ---- # mkfs.vfat -F 32 /dev/sdc1
- ブートセクタ(IPL)書き込み
--- ※ MS-DOS - FAT16の場合 ---- # ms-sys -6 /dev/sdc1 --- ※ MS-DOS - FAT32の場合 ---- # ms-sys -3 /dev/sdc1 --- ※ FreeDOS - FAT16の場合 ---- # ms-sys -5 /dev/sdc1 --- ※ FreeDOS - FAT32の場合 ---- # ms-sys -4 /dev/sdc1
この後、/dev/sdc1をマウントして、ファイルをコピー
- MS-DOS
- io.sys
- msdos.sys
- command.com
- FreeDOS
- kernel.sys
- command.com
- パーティションなし(FD扱い)でDOSを設定
-
※FD扱いの場合のみ?64MBなど少量サイズのメモリ向けかな。USBメモリが
/dev/sdc
+ MS-DOSの場合。# dd if=/dev/zero of=/dev/sdc bs=512 count=64 --- MBR含め念の為に64セクタクリア # mkdosfs -I /dev/sdc --- FAT(16)で全体をフォーマット # ms-sys -6 /dev/sdc --- MS-DOSのFAT16用IPLをインストール
この後、
IO.SYS
→MSDOS.SYS
→COMMAND.COM
の順でコピー
HP USB Disk Storage Format Tool
HD扱いならほぼ確実、というかめちゃ簡単!だとと思いますが、私の環境ではFD扱いだとだめでした。
- MBRへXP標準ブートストラップ書き込み?(
既にある場合は上書きしないかな?) - セクタ数63・ヘッド数255でパーティション1つ作成(アクティブ設定)
- パーティションタイプはLBA対応?
- 指定ディレクトリからシステムファイルをコピー
ブートセクタのIPLは、sysコマンドやms-sysで書き込まれるものと同じでした。
GRUB for DOSをインストール
USBメモリには完全対応というわけではなさそうなので、注意が必要ですが、GRUB for DOSからFreeDOSなどをチェインロードさせることも可能です。また、FDイメージ、Linux LiveCD、Windows PEなどのマルチブートもできます。
io.sys
(MS-DOS),kernel.sys
(FreeDOS)を直接ロード- HD扱い - Cドライブ(USBメモリ)からブート
- FD扱い - A(B)ドライブ(USBメモリ)からブート
- FDイメージからブート
- 仮想Aドライブからブート、USBメモリHD扱い - Cドライブ
- 仮想Aドライブからブート、USBメモリFD扱い - Bドライブ
Windows XP上でUSBメモリのPBR(ブートセクタ)へインストールする方法。(※MBRインストールではFD扱いでだめだったので)
USBメモリ上の kernel.sys
(io.sys
)をチェインロード
- menu.lst
default 0 title FreeDOS find --set-root /kernel.sys chainloader /kernel.sys title MS-DOS find --set-root /io.sys chainloader /io.sys
FDイメージのブート
FDイメージをAドライブとしてDOSブートする手もアリかな。USBメモリはBまたはCドライブになるはず。
- Grub4dos Guide - Map Command
- The map command - 021 - Guide to Grub4Dos - RMPrepUSB
memdisk
と balder10.img
をルートにコピーした場合・・・
menu.lst
に追記
title FreeDOS Balder find --set-root /balder10.img map --mem /balder10.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0)
menu.lst
に追記(※FD扱い)
title FreeDOS Balder find --set-root /balder10.img map --mem /balder10.img (fd0) map (fd0) (fd1) map --hook chainloader (fd0)+1 rootnoverify (fd0)
または、SYSLINUXのmemdiskで
title FreeDOS Balder (SYSLINUX memdisk) kernel /memdisk initrd /balder10.img
※ブートに失敗する場合は、memdisk raw
も試してみませう...
SYSLINUXをインストール
- 【追記】
chain.c32
を使う -
最近知りました(汗)。
chain.c32
を使うのが簡単かも?
SYSLINUX から GRUB for DOS をチェインロードすることも可能です。また、FDイメージ、Linux LiveCD、Windows PEなどのマルチブートもできます。
MBR(またはPBR)に SYSLINUX をインストール、GRUB for DOS → FreeDOSのkernel.sys をチェインロード、またはDOS FDイメージをロード。FreeDOSのブートコードなどの書き込みは不要。
環境次第かもしれませんが、0.4.2 と 0.4.3 の grub.exe で Windows XP を起動すると非常に動作が緩慢になるというバグがあるのでご注意。0.4.1,0.4.4では問題ないようです。
chain.c32
でチェインロード- HD扱い - Cドライブ(USBメモリ)からブート
- FD扱い - A(B)ドライブ(USBメモリ)からブート
- GRUB for DOSから
io.sys
(MS-DOS),kernel.sys
(FreeDOS)を直接ロード- HD扱い - Cドライブ(USBメモリ)からブート
- FD扱い - A(B)ドライブ(USBメモリ)からブート
- FDイメージからブート
- 仮想Aドライブからブート、USBメモリHD扱い - Cドライブ
- 仮想Aドライブからブート、USBメモリFD扱い - Bドライブ
chain.c32
chain.c32
をルートにコピーした場合・・・
syslinux.cfg
default freedos prompt 1 LABEL freedos KERNEL /chain.c32 APPEND freedos=/kernel.sys LABEL msdos KERNEL /chain.c32 APPEND msdos=/io.sys
grub.exe
grub.exe
と menu.lst
をルートにコピーした場合・・・
syslinux.cfg
default grub4dos prompt 1 LABEL grub4dos KERNEL /grub.exe APPEND --config-file="configfile /menu.lst" LABEL freedos KERNEL /grub.exe APPEND --config-file="chainloader /kernel.sys" LABEL msdos KERNEL /grub.exe APPEND --config-file="chainloader /io.sys"
menu.lst
default 0 title FreeDOS find --set-root /kernel.sys chainloader /kernel.sys title MS-DOS find --set-root /io.sys chainloader /io.sys
memdisk + FDイメージ
FDイメージをAドライブとしてDOSブートする手もアリ。USBメモリはBまたはCドライブになるはず。
memdisk
と balder10.img
をルートにコピーした場合・・・
syslinux.cfg
に追記
LABEL dos KERNEL /memdisk APPEND /balder10.img
またはGRUBから
menu.lst
に追記
title FreeDOS Balder find --set-root /balder10.img map --mem /balder10.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0)
menu.lst
に追記(※FD扱い)
title FreeDOS Balder find --set-root /balder10.img map --mem /balder10.img (fd0) map (fd0) (fd1) map --hook chainloader (fd0)+1 rootnoverify (fd0)
Windows XP/2000 緊急起動ディスク
- HD上の ntldr の直接チェインロードは、GRUB for DOS で可能
- HD順序のswapは、GRUB for DOS、SYSLINUX + chain.c32 で可能
- MBRブートストラップやブートセクタのNT-IPLの異常時などでは、HD上の ntldr をチェインロードすればよいはず
しかしながら、boot.ini
の異常時には正常な boot.ini
をロードして起動させる必要があります。Cドライブ上の ntldr をチェインロードした場合はCドライブの boot.ini
がロードされてしまうので、FD(扱い)上ののntldrをチェインロードし、FD(扱い)上の boot.ini
をロードさせます。
- boot.ini のサンプル
- 【追記】FD扱いの場合しか使えないかもしれないですね...
-
USBメモリが1台目のHD扱いになっちゃうことが多いので...
別のやり方ですが、GRUB for DOS でブートするなら map コマンドで
hd0
,hd1
を入れ替えたら、一応(?)使えたりします。※ でも
boot.ini
はHD上のものだったりしますので、C:\boot.ini
の異常時には使えません。map (hd0) (hd1) map (hd1) (hd0) map --hook chainloader (hd1,0)/ntldr
※ USBメモリが (hd0) で認識、USBメモリ上の ntldr から起動する場合
- FD扱いでのブート
-
- USBメモリを2000/XP上でクイックフォーマット
- システムドライブにあるファイル NTLDR, NTDETECT.COM, BOOT.INI, BOOTFONT.BIN をUSBメモリにコピー。
- Windows XP 緊急起動ディスクの作成 - 私的 Windows めも(拙作ですが。その3)
boot.iniを編集して、セーフモード起動用に使うのもありかと。
または、GRUB for DOS、SYSLINUX + grub.exe で
- GRUB for DOS
-
- USBメモリに GRUB for DOS インストール
- USBメモリに ntldr, NTDETECT.COM, boot.ini, bootfont.bin をコピー
menu.lst
を編集
titile chainload ntldr from USB(fd0) chainloader (fd0)/ntldr
FDイメージなら (※ イメージファイル名は winnboot.img として)
titile chainload ntldr from FDimage map --mem /winboot.img (fd0) map --hook chainloader (fd0)/ntldr rootnoverify (fd0)
- SYSLINUX + grub.exe
-
- USBメモリに SYSLINUX インストール
- USBメモリに grub.exe をコピー
- USBメモリに ntldr, NTDETECT.COM, boot.ini, bootfont.bin をコピー
syslinux.cfg
を編集
LABEL usb-ntldr KERNEL /grub.exe APPEND --config-file="chainloader /ntldr"
FDイメージなら (※ イメージファイル名は winnboot.img として)
LABEL winboot KERNEL /grub.exe APPEND --config-file="map --mem /winboot.img (fd0);map --hook;chainloader (fd0)/ntldr;rootnoverify (fd0)"
- HD扱いでのブート
-
めちゃややこしいです。。。
HDの順序をswapさせることは可能ですが、(原則的に)Windowsは第1HD(のntldrなど)からでないとブートできないので、FDイメージを使います。
GRUB for DOS、または SYSLINUX + grub.exe を使います。
- Windows起動ディスク(または GRUB for DOS起動ディスク)を作成し、イメージファイルを保存
- 設定ファイル編集
※ Windows起動ディスクFDイメージファイル名は winboot.img にしてます。
- GRUB for DOS
-
- USBメモリへ GRUB for DOS をインストール
- winboot.img をUSBメモリへコピー
- USBメモリ上の
menu.lst
を編集
- GRUB for DOS -
menu.lst
titile Windows XP/2K bootdisk (fdimage) map (hd0) (hd1) map (hd1) (hd0) map --mem /winboot.img (fd0) map --hook chainloader (fd0)/ntldr rootnoverify (fd0)
- SYSLINUX + grub.exe
-
- USBメモリへ SYSLINUX をインストール
- grub.exe, winboot.img をUSBメモリへコピー
- USBメモリ上の
syslinux.cfg
を編集
- SYSLINUX + grub.exe -
syslinux.cfg
LABEL winboot KERNEL /grub.exe APPEND --config-file="map (hd0) (hd1);map (hd1) (hd0);map --mem /winboot.img (fd0);map --hook;chainloader (fd0)/ntldr;rootnoverify (fd0)"
- SYSLINUX + memdisk + GRUB for DOS起動ディスクイメージ
-
- GRUB for DOS起動ディスク内の
menu.lst
を編集
titile chainloader (fd0)/ntldr map (hd0) (hd1) map (hd1) (hd0) map --hook chainloader (fd0)/ntldr rootnoverify (fd0)
- GRUB for DOS起動ディスクに、ntldr, NTDETECT.COM, boot.ini, bootfont.bin をコピーしてイメージファイル作成(ファイル名は grub.img にして)
- USBメモリへ SYSLINUX をインストール
- SYSLINUX の memdisk、grub.img をUSBメモリへコピー
- USBメモリ上の
syslinux.cfg
を編集
- USBメモリ上の
syslinux.cfg
LABEL grub4dos KERNEL /memdisk raw APPEND initrd=grub.img
- GRUB for DOS起動ディスク内の
ちなみに、回復コンソールについては、起動ディスクのすべてのファイルをコピー、disk1のブートセクタ書き込みでブートはするのですが、最後の最後にブルーバックで止まります。SPのバージョンもすべて試したのでやはり無理なのでしょうか...
Windows XP/2000 回復コンソール
【注意】一応確認はしておりますが、確実に動くかどうかは保証ありませぬ。あくまで“バックアップを取った上で”「だめもと手段」として使いませう。
- 回復コンソールのインストール時の注意点
-
Service Pack のバージョンを合わせないとだめなのでした。インストールファイルが SP 3 じゃないなら統合セットアップファイルの作成が必要になりまする。HDにインストールしない場合でも作っておくべし。
Windows CD、または I386フォルダから
- GUIツール系
-
適当にやったらできてしまいましたが、機能が多すぎてよくわかりませぬ。(滝汗)
【注意】USBメモリが
D:
になってたのでC:
以外のHDのドライブ文字がズレるかも。【追記】Windows インストーラーを丸ごとUSBメモリに入れちゃうって手もありますね。ただ、少し不安定な気もしますが...
- HDにインストールしてから
-
※ 但し、これって別PCでは使えないかもしれませぬ。ってか、使う機会あるかなぁ?
- Windows XP 上で「回復コンソール」をインストール
C:\cmdcons
ディレクトリ(※隠しフォルダになってるので注意)をUSBメモリルートにコピー- USBメモリへSYSLINUXをインストール
grub.exe
をコピーsyslinux.cfg
作成
syslinux.cfg
DEFAULT cmdcons PROMPT 0 LABEL cmdcons KERNEL /grub.exe APPEND --config-file="chainloader /cmdcons/setupldr.bin;write 0x7C03 0x63646D63;write 0x7C07 0x00736E6F"
起動ディスクから
これも非絶賛(何)無保証ですが、Windows CD も I386 フォルダも無い場合は起動フロッピーで挑戦してみませう。されど、バージョンは現在 Service Pack 2 まで なので注意をば。
- ダウンロード
- FDイメージ取り出し
- コマンド -
WindowsXP-ほげほげ.exe /q /c /t:"%cd%\xpsp2"
- コマンド -
cmdcons
ディレクトリへFDイメージ内のファイルをすべて展開cmdcons
ディレクトリをUSBメモリへコピー- USBメモリへSYSLINUXをインストール
grub.exe
をコピーsyslinux.cfg
作成cmdcons\winnt.sif
作成
syslinux.cfg
DEFAULT cmdcons PROMPT 0 LABEL cmdcons KERNEL /grub.exe APPEND --config-file="chainloader /cmdcons/setupldr.bin;write 0x7C03 0x63646D63;write 0x7C07 0x00736E6F"
cmdcons\winnt.sif
[data] msdosinitiated="1" floppyless="1" CmdCons="1" AutoPartition="0" UseSignatures="yes" InstallDir="\WINDOWS" EulaComplete="1" [regionalsettings] ; Language=00000413 LanguageGroup=1 [unattended] unused=unused
【注意】USBメモリが D:
になってたので C:
以外のHDのドライブ文字がズレるかも。
- An unexpected error (769)
-
PLoP Boot Manager 経由では、このメッセージが出て止まることがありましたが、続行後にUSBメモリが認識されて起動しました。