こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Let's note R6 でWindowsXPとWindowsVistaのデュアルブート

色々なサイトを参考に、Panasonic Let's note R6でCドライブにWindowsVista、DドライブにWindowsXPをインストールし、デュアルブートを試みていますが、
Windowsブートマネージャーで「以前のバージョンのWindows」(WindowsXP)を選択すると、

Windowsを開始できませんでした。・・・・
ファイル:\ntldr
状態:0xc000000e
情報:アプリケーションが見つからないか壊れているため、選択されたエントリをロードできませんでした。
というエラーが出てしまいます。
SATA接続のハードディスクが原因だと思うのですが、対策をお願いいたします。

投稿日時 - 2007-04-14 12:36:46

QNo.2920119

困ってます

質問者が選んだベストアンサー

今度こそ良いだろうと思いましたが、別の障害もあるようですね。
NTDETECT.COMが無事に実行され、hal.dllの前まで正常に動いていることからd:\windows\system32にアクセスできており、デュアルブート設定はこれで問題なさそうです。
ひとつ気がかりなのは、先の回答でntldrをCドライブのルートに置くように言いましたが、VistaBootProをお使いなら、ntldrはDドライブのルートに置く必要があることです。
しかし、ちゃんとデュアルブート構成になっているので、Dドライブにもntldrが存在するのでしょうか。
当方もVistaBootProでCドライブのVista、DドライブのXP、KドライブのWin2kでトリプルブート構成にしていますが、Cドライブにntldrはなく、DドライブにXP起動時に使用するntldrを、KドライブにWin2k起動時に使用するntldrを置いています。
VistaBootProの設定次第で変わるのかもしれませんが。

それはそうと、デュアルブート構成に問題がないのに起動しないのはちょっとやっかいです。
まずはhal.dllをインストールCDから抽出して入れ替えてみることをお勧めします。
なお、このファイルはサービスパックで更新されているため注意してください。
参考までに、XP起動時に読むファイルと順序を書いておきます。
ntldr
boot.ini
NTDETECT.COM
ntkrnlpa.exe
hal.dll
KDCOM.DLL
BOOTVID.dll
ACPI.sys
WMILIB.SYS
pci.sys
まだまだありますが、書ききれないのでこのへんにしておきます。

投稿日時 - 2007-04-16 21:54:23

補足

ありがとうございます。今晩、試してみます。

投稿日時 - 2007-04-17 08:59:56

お礼

先ほど無事デュアルブートが成功しました。
色々と不足しているファイルがあることを教えて頂いたので、別のXPパソコンのCドライブルートフォルダのファイルをすべてコピーしてみました。
本当に色々とありがとうございました。

投稿日時 - 2007-04-18 00:04:36

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.7

Barracudaです。
だめでしたか。
エラーメッセージからは、boot.iniがVistaがインストールされているc:\windowsにアクセスするように記述されているのが原因のように見えますが、違うようですね。
> DドライブのルートにBOOT.INIをおくと、エラーが、「NTDETECT failed」だけになるのですが、
ひょっとしたら、ntldrをDドライブのboot.iniにアクセスするように書き換えていませんか。
また、CドライブのルートにNTDETECT.COMが存在しないのではありませんか。
一度WinXPのインストールCDからntldrとNTDETECT.COMを抜き出し、現在のboot.iniと共にCドライブのルートにコピーしてから試してみてください。いずれのファイルも\i386の中に無圧縮で存在します。
インストールCDがない場合はNo.4のリンクからXPSP2インストールファイルをダウンロードして抽出してください。

投稿日時 - 2007-04-16 00:04:48

補足

再三ありがとうございます。
>CドライブのルートにNTDETECT.COMが存在しないのではありませんか
試して見たところ、今度はエラーが以下のように変わりました
Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\hal.dll.
Please re-install a copy of the above file.
というエラーになってしまいます。
そもそも、CドライブのBOOT.INIを読込みに行っているのが問題でしょうか。Bootmgrの設定でしょうか。VistaBootPROを使用して設定しているので、問題ないと思うのですが。
よろしくお願いいたします。

投稿日時 - 2007-04-16 08:12:58

ANo.6

Barracudaです。
No.5の内容を訂正させてください。
お使いの機種がHDD1台のノートPCであることに気づきませんでした。
ということは、No.4で披露した私の環境のboot.iniがそのまま使えます。
Win2kの記述がありますが、アクセスすることはないので問題ありません。気になるのならこの行だけ削除してください。

結果:
No.4で示したboot.iniをコピーして、現在のboot.iniと置き換えてください。
これで確実に起動すると思います。

投稿日時 - 2007-04-15 19:53:50

補足

ご回答ありがとうございます。
しかし、下記のように同じ結果になってしまいます。
invalid BOOT.INI file
Booting from C:\windows\
NTDETECT failed

DドライブのルートにBOOT.INIをおくと、
エラーが、「NTDETECT failed」だけになるのですが、
何か関係があるのでしょうか?

幾度もすいませんが、よろしくお願いいたします。

投稿日時 - 2007-04-15 20:49:08

ANo.5

Barracudaです。

> invalid BOOT.INI file
> Booting from C:\windows\
> NTDETECT failed

これを見ると、DドライブにインストールしたWinXPを起動するのに、CドライブのVistaにアクセスしようとしているので、当然エラーとなってしまいます。
おそらく、boot.iniのパーティション(ドライブ?)指定が間違っています。
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

boot.iniには上のような記述があると思いますが、環境に合わせて以下のように変更してください(XPはDドライブと仮定します)。

rdisk(0)のゼロ:
HDDを1台接続しているならゼロ、2台以上接続しており、Vistaと物理的に違う、2台目のHDDにインストールしているなら1とする。
2台以上接続していても、1台目にXPをインストールしている場合はゼロとする。

partition(2)の2:
HDDが1台の場合は2、2台以上の場合は1にする

これで起動すると思います。

投稿日時 - 2007-04-15 19:25:21

補足

何度もすいません。
やはり同様なエラーが発生します。

ちなみに、boot.iniは以下のようになっています。
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

ちょっと試しに、CドライブにもおなじBOOT.INIを置いてみました。
すると、エラーが下記のように変わりました。
NTDETECT failed
なにかわかりますでしょうか?よろしくお願いいたします。

(追伸、パーティションの数字は1から3まで試してみましたが同じでした)

投稿日時 - 2007-04-15 19:44:07

ANo.4

Barracudaです。
ntldrはバイナリーエディターで書き換える必要はありません。
そのままのntldrをDドライブにコピーしてください。
それと、ntldrはWinXPに適用したサービスパックで内容が異なるため、必ず合わせる必要があります。
サービスパック2のntldrなら、参考リンクからダウンロードした物に含まれています。
このファイルは自己解凍キャビネットファイルなのでntldrを抽出することが可能です。
次に、boot.iniです。boot.iniは起動ドライブにコピーしてください。
参考までに、私の物を披露します。
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(2)partition(2)\WINNT="Microsoft Windows 2000 Professional" /FASTDETECT

この中のrdisk(n)とpartition(n)がミソです。
rdisk(n)のnは、ゼロから始まる、ntldrが認識したPCに接続されたHDDの台数番号です。
この例では、WinXPは第一HDDのn=0、Win2kは第三HDDのn=2にインストールされています。
partition(n)のnは、1から始まる各HDDのパーティション番号です。
この例では、WinXPは第一HDDの2番目のパーティションに、Win2kは第三HDDの2番目のパーティションにインストールしています。
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS は、デフォルトで起動させるOSの指定で、timeoutをゼロにすればこのOSがメニューを表示することなく起動します。

これを参考にして、boot.iniを編集してください。

あと、ntldrの編集が必要になる(意味がある)のはトリプルブート以上の場合だけです。
VistaBootProを使ったときの、OSごとに違う場所のntldrを使用することと、参照する「boot.ini」の文字列はntldrの中に書き込まれていることを利用すれば、各ntldrで違うboot.iniを参照させることが可能になります。
上のboot.iniは、VistaのブートメニューでWinXPを選択したときにだけ参照されるboot.iniなので、WinXPが待ち時間ゼロで起動するように記述されています。
これとは別に、Win2kを選択したときに使用するntldrは、バイナリーエディターでboot.iniをboou.iniに書き換えられているため、Win2kが待ち時間ゼロで起動する「boou.ini」を参照します。
boou.iniは、boot.iniの3行目を
default=multi(0)disk(0)rdisk(2)partition(2)\WINNT
に変更します。

長くなりましたが、ご参考までに。

参考URL:http://www.microsoft.com/downloads/details.aspx?FamilyID=049c9dbe-3b8e-4f30-8245-9e368d3cdb5a&displaylang=ja

投稿日時 - 2007-04-15 11:47:54

補足

丁寧にありがとうございます。
しかし、残念ながらうまくいきません。

invalid BOOT.INI file
Booting from C:\windows\
NTDETECT failed

とエラーが出て、再起動してしまいます。
BOOT.INIの読み込みまでも言っていないような感じです。
ntldrの編集が必要なのでしょうか?

よろしくお願いいたします。

投稿日時 - 2007-04-15 17:34:10

ANo.3

おそらく、VistaBootProを使ってVistaの後にXPをインストールし、Vistaのブートメニューが出るようにされてると思います。
VistaBootProを使えば、Vistaの後にXPをインストールしてもデュアルブートできるようになりますが、重要な注意点があります。
それは、Win2k/XPが使用するntldrは起動ドライブの物ではなく、Win2k/XPがインストールされたドライブのルートディレクトリーに存在するntldrを使用するようになることです。
このため、pe-oeさんの場合はDドライブのルートディレクトリーにntldrをコピーしておく必要があります(boot.iniは起動ドライブに置いておく必要があります)。

boot.iniは起動ドライブのルートの物が使用されますが、ntldrをバイナリーエディターで書き換えれば、違うファイルにアクセスさせることが可能です(boou.iniなど)。
これらを利用して、ntldrがアクセスするboot.iniの名前を起動OSごとに変更しておけば、Vista/XP/2kのトリプルブートでも従来のブートメニューを経由することなくVistaのブートメニューから三種のOSを直接選択・起動できるようになります。
もちろん、各boot.iniは目的のOSが選択待ち時間ゼロで起動するように記述しておきます(私の環境です)。

投稿日時 - 2007-04-14 19:37:55

補足

回答ありがとうございます。どうやらBarracuda様の言われるところが原因ぽいです。さらに分かれば教えて頂きたいのですが、
ntldrとboot.iniを起動ドライブに置きました(ファイルがなかったため、他のパソコンから持ってきました)が、
無効(Invaid)なboot.iniをなってしまいます。
boot.iniファイルは、テキストエディタで書き換えたのですが、
ntldrもバイナリエディタで書き換える必要が有るのでしょうか?
また、バイナリエディタでの書換のポイントが分かれば教えて頂きたいと思います。(Cドライブを指定している部分は書き換えて見ました)

よろしくお願い致します。

投稿日時 - 2007-04-15 10:04:18

ANo.2

デュアルブート環境を構築する場合、
旧バージョンのOS>新バージョンのOSの順番でインストール
これが基本です。

質問者さんのケースの場合、新しいバージョンのOSであるVistaが最初からインストールされていたのでこのような結果になったと思います。

ポイントはOSの切替を認識させる機能である「ブートローダー」です。
「旧バージョンのOS>新バージョンのOS」
この順番を守ればVistaのブートローダーがXPを認識してくれるはずです。

とはいえ、「逆の順番でデュアルブートは不可能か?」というと、実は不可能ではないらしいです。
「とある方法」で出来るみたいですよ(私は試したことがないので自己責任でやってみてください)。
下記URLを参考にしてやってみてください。
ただしメーカー製PCに違うOSをインストールした場合、それが元で故障・ハードの破損が発生してもメーカーのサポートは当然ながら受けられません。
くれぐれも「自己責任」で行ってください。

参考URL:http://www.corso-b.net/itaya/TIPS/Vista/Vista02.html

投稿日時 - 2007-04-14 16:26:02

ANo.1

WindowsXp,WindowsVistaの順番にインストールすれば問題ないと思いますが、どういう順番だったでしょうか。

投稿日時 - 2007-04-14 12:45:26

補足

Vistaのプレインストール版なので、xpをインストールしたあとにVistaをいれてもブート認識してくれません。
VistaのCDが付属していれば良いのですが、あいにくリカバリしかありません。

投稿日時 - 2007-04-14 13:30:07

あなたにオススメの質問