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

解決済みの質問

システムドライブパスをOS上以外で変更するには?

(まえがき)
OS:Windows XP 32bit [SP3]
マザボ:GIGABYTE/ GA-EP45-UD3R
自作PC

PC上にSATAのHDDを5個載せています。
パーティション分けはせずにそれぞれ丸々使用しています。
以前OSを再インストールした際、システムドライブが「D」になってしまいました。
他のデータHDDに「C」が割り当てられ、残りのHDDがF・G・Hという状態です。
(DVDドライブがE)

システムがDになったので違和感こそありましたが、
使用には全く問題なくこれまで使ってきました。


(本題)
今朝、Windowsをシャットダウンし再起動を行うと、
Windows起動画面まで行かずBIOSに入れる画面のところで再起動を繰り替えしていました。
(昨夜までは全く異常はありませんでした)

「セーフモード」及び「前回正常起動時の状態で起動」を試みてもWindowsは立ち上がりませんでした。
何度か試すと、win起動前に「OSの一部が破損している可能性があります。CDを使って修復インストールを行ってください」と表示されたので、OSディスクを入れて修復インストール(回復コンソール)を試みました。

http://mikasaphp.net/winkcboot.html
こちらを参考に、

回復コンソール上で、

D:\WINDOWS>fixmbr
D:\WINDOWS>fixboot

と入力してからEXITで再起動。

すると、ようやくWINDOWSが正常に起動しました。

しかし喜んだのも束の間、ネットに繋ごうと思いブラウザを立ち上げようとすると
「システム内の○○(一瞬だったので覚えていない)に異常があるためにシャットダウンします」
というログが出て自動的に再起動されました。


ここでBIOSを開き、いったんBIOS設定をデフォルトに戻しました。

けれど今度は、WINDOWS起動前に「NTLDR is missing」と表示され起動できない。
そのエラーを調べ、改めて回復コンソールを開き修復を試みる。
(ちなみに現在、問題あるPCとは別のPCから書き込んでいます)

http://www.orange-ss.com/column/0039.html
こちらを参考に、再度コンソールを開くと、
前回コンソールを開いた際は正常に

1: D:WINDOWS

となっていたものが、今度は

1: F:WINDOWS

となっているのです。
この時点でドライブパスが変わっているので、
WINDOWSが正常に起動できない理由もわかります・・・。

もしかしたらBIOS設定をデフォルトにしたせい・・・?

ここで一端止めておけばよかったものの、とりあえずシステム内の破損ファイルを修復(コピー)だけしておこうと思い、上記URLの通りに

「 copy G:\i386\NTDETECT.COM 」、「 copy G:\i386\ntldr 」、「 copy G:\i386\bootfont.bin 」、「 bootcfg /rebuild 」を行いました。

※もともとDVDドライブは「E」だったのですが、ドライブパスがめちゃくちゃになった事に併せて
DVDドライブパスも「G」になっていました。なので上のコマンドでは「G」と記述。

これにより、システム内の目的のファイルへ、OSディスクから該当ファイルをコピーが完了しました。


さて、改めて再起動をしてみると今度は画面に
「無効なBOOT.INIファイルです。C:Windows\から起動しています。」

と表示され、一度Windows起動画面(ロゴ)が立ち上がるものの、
そのまま画面がブラックアウトしたままになります。


勝手な憶測ですが、本来のシステムドライブパス(D)が変わったために
誤作動を起こし、強制的にCから起動しようとして、その結果起動しないということなのでしょうか。


一度システムの入っているHDDとDVDドライブ以外のHDDはすべて取り外してから
起動してみましたが、結果は変わりません・・・。


恐らく、どうにかしてシステムドライブのパスをDに戻す事ができたら起動できるのは?と思うのですが、BIOS及び回復コンソールだけでHDDのドライブパスを変更する手段はあるのでしょうか?


GIGABYTEのBIOS上には「standard CMOS Features」という項目があり
そこで接続されているドライブ名が確認できますが、ドライブパスを変更できるような項目は見当たりません。

そしてそこの画面は画像のようになっています。
(システム用HDDとDVDドライブのみ接続してある状態でこの表示です)
物理的にHDDのSATAポートを差替えたとかはありません。

正常に起動していた時のここの表示(並び)がどのようになっていたかは確認していないので分かりませんが、システムHDDは一番上の「IDE Channel 0 Master」に表示されていないとダメなのでしょうか?


最終手段としては、余っているHDDにとりあえずWindowsをインストール、
そして現在のシステムHDDをサブドライブとして接続し、中身を見たりデータ救出などはできそうです。


そこまでしなくても、以上の情報から他に復旧できるような手段はあるでしょうか?
OSをクリーンインストールでなく上書き再インストールをするべきでしょうか?


分かる限りの情報は記述しましたが、
復旧法をどうにかご教示ください。

他に必要な情報があれば、補足欄にて書いていきます。


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

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2011-11-24 12:59:38

QNo.7151894

すぐに回答ほしいです

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

失礼な表現、記載、誤記等ありましたら済みません。

>システムドライブパスをOS上以外で変更するには?

ご指摘の相談内容は「任意の物理的に異なるHDDを起動Diskにするには」でよければ
BIOSに設定メニューがあると思います。
BIOSにはメーカーの吸収、合併でその前後など種類が多いのですが現在はほぼ2系統です。
BIOSによっては時期やVersion等で少し違う可能性はありますが

AMI(American Megatrends)の場合
BootメニューのBoot Device Priorityサブメニューで複数台のHDDが接続されていれば
Hard Disk Drivesのサブメニューが出ます。

Award(Phoenix Technologies)の場合
Advanced BIOS Featuresサブメニューで
Hard Disk Boot Priorityサブメニューで設定できます。

BIOSの該当のメーカHPなどで確認してください。
「Award BIOS」や「AMI BIOS」検索でもそこそこヒットします。

===あとがき(以下ご参考)===
周知の内容であればご容赦ください。

全体的に、やっている内容がちぐはぐな気がします。
PCはBIOS(フラッシュROM)でC-MOSのデータに従い、PCハードを初期化してOSに渡します。
BIOSそのものもソフトですがROMなので電源に関係ないのはご存知と思います。
BIOS(C-MOS)セットアップユーティリティでPCに必要な初期化設定をC-MOSに書き込みます。
この省電力のメモリー用バッテリーがボタン電池でここまでは問題なさそうです。
起動時はC-MOSデータを読み込み設定します(S-RAM=C-MOS)
その後、起動順位の設定で指定された順にFDDやCDD、HDDを見にいってそこにシステムボリュームがあれば起動に行きます。
BIOSで設定出来ない限りハード的に一番とされるHDDにその領域が存在する必要があります。
そこにはNTLDRやBOOT.INIなど基本的なシステムが必要です。
現在、そこのデータが破損しているようです。

うまく起動出来たのは他のHDDを起動HDDに無理やり設定し一次的にWindowsが立ち上がったにすぎません。
そして、Windows本体はというとWindowsのブートボリュームですがBOOT.INIのコーディングに依ります。

WindowsXpではシステムボリュームとWindowsのブートボリュームが(C:)に共存するケースが普通でそのやり方を質問上のリンクは説明しているのでそのためややこしくなっている様に思います。

Windows7でのシステムパーティション(ボリューム)、ブートパーティション(ボリューム)と独立していてそのPCはこの状態に近い可能性がある。
↓↓
http://windows.microsoft.com/ja-JP/windows7/What-are-system-partitions-and-boot-partitions

BIOSの初期化→HDDシステムボリュームの処理→「boot.ini」にコーディングされた位置の例えば(H:)にあれば「H:Windows\System32」に存在するシステムファイルを元にWindowsを構築します。
おそらく、WINDOWS98など比較的少容量HDDは「config.sys」と云うファイルを探してAUTOEXEC.BATを処理するのにそんなに掛からなかったがHDD大容量化にともないその中から「config.sys」を探し出す作業そのものに時間がかかるため大容量のNTFSではこのようになったと思います。

速い話、システムボリュームがHDDの定位置に存在すればBoot.iniのコーディング次第では「Windows」本体は場所が分かればどこでもいい訳です。
ただし、このBoot.iniの編集はなれないと危険です。
また、自動インストールでコーディングされたものをマニュアル(手動)で編集するのは大変です

このPCの場合はパーティションで作った訳でないそれぞれ、独立したHDドライブなので理論的にはどのHDDにもシステムボリュームが作成できます。ただ、それが有効かどうかです。
BIOSに設定が出来れば動くのではないでしょうか?
理論上作成出来る理由は、HDDの1丁目1番地に書き込めればそれでいいからであり、どのHDDにもとりあえず存在します。
CDD/DVDマルチドライブで説明すれば、CD,DVDに関係なくメディアを挿入すれば判定してくれます。
それは、トラックの一番内側に何のメディアであるか情報があるからです。
それと同じようにBIOSがHDDを見に行った時に最初に確認できるHDDにシステムボリュームが正しく存在し、これからインストールするOSの種類やフォーマット、OS本体の位置するドライブなど認識できれば問題ないはずです。
そして、fixmbrはここの修復を意味するのですが、本来の位置のmbrを修復していないようです。
他の、HDDに新しく生成したようです。

本題に戻して、HDDをBIOSが最初に見に行くHDDの1丁目1番地にシステムブートが存在しなかったり、そこが壊れていれば当然

>けれど今度は、WINDOWS起動前に「NTLDR is missing」と表示され起動できない。

となる訳です。
一応、構築した訳ですから、BIOSがHDD1→HDD2→HDD3と見に行っていれば起動できるはずです。
出来ないと云う事は見に行っていないかもしくは、そこをシステムボリュームと認識して壊れていると判断しています。
BIOSでその設定が可能ならば「起動順位」などでHDDの1~4など設定できればそこが正常なら動くと思います。

正しく、システムボリュームに対し、fixmbr等を実行し
正確にオリジナルのboot.iniにコーディングがしてあれば問題は無くなります。

対処としては
MAPで正しく、HDDの状態を認識してそこ「システムボリューム」に対してfixmbr,他実行することが大事です。
通常はC:に存在しその場合の操作を参考にしたためぐちゃぐちゃになっているようです。
リンク先はあくまでも、普通の設定のWindowsXpの操作です。
MAPコマンドでデバイス名を確認して動作を理解して適切に仕切り直してください。

MSサポート:回復コンソール
↓↓
http://support.microsoft.com/kb/314058/JA

偉そうに回答した割に小生、MAPを実行したことがありません。
←必要が無かったためなので上記リンクや回復コンソール上で書式を確認してください。
回復コンソール上で書式確認は

c:\>help[Enter]

でコマンドを確認

c:\>help map[Enter]

でMAPコマンドの書式を確認できます。

参考程度に間違いを数点指摘しておきます。

回復コンソールのコマンドのオプションを省略した形になていて何処に対して実行されるかが問題で重要です!!

D:\WINDOWS>fixmbr ←デバイスを指定していないデバイス名は「map」コマンドで確認

D:\WINDOWS>fixboot ←ドライブを指定していない→実際の「システムボリューム」に適用する

>「 copy G:\i386\NTDETECT.COM 」←コピー先が指定されていない。
「C:」にシステムボリュームが存在する場合
copy G:\i386\NTDETECT.COM c:\*.*
←Cのルート(通常Xpのシステムボリューム)へコピーの場合

すべての作業がおわったら、chkdskで修復した方がいいと思います。

また、Windows中のSystem32フォルダーの位置を正確にコーディングしなければなりません。
「Xpの場合、OSの実働部隊(メインシステムソフト)はこのSystem32フォルダーの中です」

以下のマルチブートの例で微妙にDISK()やPERTITION()の()が異なることが解ります。
このコーディング先のWINDOWSフォルダーの存在場所に「system32」フォルダーがあってその中に必要なWindosシステムファイルがあればOKです。

Windows XP で Boot.ini ファイルを編集する方法
↓↓
http://support.microsoft.com/kb/289022/ja

通常は、WINDOWS\PASSの中に「boot.ini.backup」等云うバックアップがあります。
実際のハードにあっているか検証する必要がありますが他の.iniファイルは解りませんがこの「boot.ini.backup」をboot.txtとすればメモ帳で見れます。
←Windowsの「C:」「D:」「E:」と異なり物理的な位置の1,2,3の様です。
この事もややこしくなっている要因です。

注意)バックスラッシュ(/の反対向き)=¥
上記ご理解いただいた上で正常化が必要です。

1.システムボリュームの正常であること。←BIOSで指定できるならそこのHDD
2.boot.iniのコーディングに正しくWindows本体(System32)の位置を示していること。
3.WindowsフォルダーやSystem32フォルダーに必要なシステムファイルが存在すること。

が大事です。

以上

投稿日時 - 2011-11-25 01:46:47

お礼

綿密に教えて頂き誠にありがとうございます。とても勉強になりました。
実は回復コンソールを使用したのは今回が初めてだったので、
焦って参考サイトの通り無理矢理やったのが失敗だったのかもしれません。

せっかく回復手段をご教示して頂いたのにも関わらず、
急いでいたので諦めて結局クリーンインストールし直してしまいました。
今回はちゃんと(C)にシステムが入るようにしました。
(これから環境再構築にもの凄く時間がかかりますが覚悟してます)


もし次回、同じようなトラブルが起こった場合は、教えて頂いた内容を是非是非参考にさせていただきたいと思います。

ありがとうございました。

投稿日時 - 2011-11-25 07:36:00

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

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

回答(1)

あなたにオススメの質問