[PR]今日のニュースは
「Infoseek モバイル」

boot.iniを弄ってみよう

まぁ安直な企画ですが、boot.iniの記述を色々弄るとどうなるか試してみました。
ともかく簡単に出来ることを実験するのがここのコンセプトですから
よろしかったらお付き合い下さい。こちらもやはりどうしても出て行くと言う方はしょうがないですが・・・

最初に実験環境ですが、WindowsXP Professional SP2上で行ってみました。HDDは1つでCとDにパーティションを分けてあります。
まず、boot.iniの場所ですが、通常Cドライブ直下にあります。ですが、初期状態ではこのようになにもファイルは見えません

ドライブ1

ですので、ツールメニューからフォルダオプションを選び表示タブをクリックしすべてのファイルとフォルダを表示するにチェックを入れ

フォルダオプション1

登録されている拡張子は表示しないのチェックと、保護されたオペレーティングシステムファイルを表示しないのチェックをはずします。

フォルダオプション2

その際に下図のような警告メッセージがでますが

警告メッセージ

無視してはい(Y)をクリックするとチェックが外れます。

フォルダオプション3

その後Cドライブ内を見ると今まで無かったファイルが出てきます。その中にboot.iniがあります。

ドライブ2

ではboot.iniをダブルクリックし開いて記述を見てみましょう。通常、シングルブートでCドライブにWindowsフォルダがある場合は次のようになります。
(繰り返しになりますが、あくまで実験環境は「Windows XP Professional SP2」ですのでご了承下さい。)
--------------------------------------------------------------------------------------------------------------
[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 Professional" /fastdetect /NoExecute=OptIn
--------------------------------------------------------------------------------------------------------------

それでは作業を始める前に、万が一起動できなくなるといけませんので、windows処方箋を参考に緊急修復ディスクを作成してから
作業を始めます。それと、boot.iniのARCパス名の見方は同じくWindows処方箋をご参照下さい。
それと、初期状態でboot.iniは読み取り専用になってますので、書き換えられないのですが、緊急起動ディスクを作成する時に属性変更して、読み取り専用属性と隠しファイル属性と、システムファイル属性を解除してますので、現段階では書き換えられるようになっています。

それではまず、[operating systems]のmultiの行のpartitionを(2)にしてみましょう。boot.iniの内容は下記のようになります。

--------------------------------------------------------------------------------------------------------------
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
--------------------------------------------------------------------------------------------------------------

この状態で再起動しますと起動時にOS選択画面が現れるようになります。(defaultと[operating systems]のARCパスの記述がずれるとOS選択画面が出ます。)


オペレーティング システムの選択

  Microsoft Windows XP Professional
  Windows (既定)

上矢印キーと下矢印キーを使って項目を選択し、Enter キーを押して下さい。

システムが自動的に起動するまで:30










Windows の問題解決と拡張起動オプションについては、F8 キーを押してください。

この状態で Windows (既定)を選ぶとOSが通常起動します。が先程partition(2)に変更したMicrosoft Windows XP Prefessionalを選ぶとどうなるでしょう? 
答えはご想像通りですね。下図のようになります。


次のファイルが存在しないかまたは壊れているため、Windows を
起動できませんでした:
<Windows root>\system32\hal.dll.
上記のファイルをインストールし直してください。

続いてdefaultの方のpartitionも(2)にしてみましょう。boot.iniの内容は次の通りです。
--------------------------------------------------------------------------------------------------------------
[boot loader]
timeout=30
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" /fastdetect /NoExecute=OptIn
--------------------------------------------------------------------------------------------------------------
このように変更すると、OSの選択画面も出ずに上記の画面となります。この状態になると最初に作成した
緊急起動ディスクで起動するか、回復コンソールからbootcfgコマンドでboot.iniを修復するか、または後述する方法でないと起動できません。

では、さらにHDDの無い場所を指定(partition(3以上)やmulti()、disk()、rdisk()、の()内を変更)するとどうなるでしょう?
一例としてpartition(3)に変更したもとmulti(1)とを試してみます。boot.iniの内容は次の通りです。
--------------------------------------------------------------------------------------------------------------
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
[boot loader]
timeout=30
default=multi(1)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(1)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
--------------------------------------------------------------------------------------------------------------


コンピュータ ディスク ハードウェア構成の問題のため、Windows を起動で
きませんでした。
選択されたブート ディスクを読み取れませんでした。ブート パスとディスク
ハードウェアを確認してください。
ハードウェア ディスク構成については Windows のマニュアルを、
追加情報についてはハードウェアのマニュアルを確認してください。

上記のような画面になりました。こちらの場合も、緊急起動ディスクで起動するか、回復コンソールからbootcfgコマンドでboot.iniを修復するか等
でないと起動できません。では最後にCドライブ上からboot.iniを削除、又はboot.inibak等にリネームして無効にするとどうなるでしょうか?
では例としてboot.iniをboot.inibakとリネーム後再起動してみます。

無効な BOOT.INI ファイルです
C:\windows\ から起動しています

このように上記の画面が出てその後普通に起動しました。
したがいまして、仮にboot.iniの記述の問題で起動できなくなった場合は、回復コンソールからboot.iniをリネームしてしまうと言うのもアリだと思いますし、場合によっては手っ取り早いかもしれません。その後通常起動したら、メモ帳で正しい記述に書き換えて、名前をboot.iniに戻すと次回から正常起動するハズです。
ですが、ここで述べた例はあくまでCドライブにWindowsがインストールされている場合ですので、闇雲にboot.iniをリネームしたら起動するようになる訳ではありませんのでご注意下さい。
以上、この実験室のコンセプト通り簡単に出来る実験をしてみました。最後まで付き合って下さった方、ありがとうございますm(_ _)m
(万一、試した方がいらっしゃいましたら、ntldr、boot.ini、bootfont.bin、NTDETECT.com等の属性はattrib +s +h +rで戻して下さい。)


戻りゅ