「boot.ini」の編集

隠してあるだけ

「boot.ini」は、Windowsの重要なシステムファイルです。
「boot.ini」に問題があると、Windowsが起動できなくなることもあります。
そうした場合は、「boot.ini」を正しく編集、修正する必要があります。

「boot.ini」自体はテキストファイルなので、メモ帳などのテキストエディタで簡単に編集することができます。
内容もごく限られていて、そんなに複雑なものではありません。

「boot.ini」とは何か

そもそも「boot.ini」とは、
どのハードディスクの、どのパーティションから、どのように起動するかを記述した、
Windowsの設定ファイルです。

パソコンの電源が入ると、まずハードディスクのMBRの情報に従って、
アクティブなパーティションが読み込まれます。
そして、アクティブパーティションにあるブートローダ(NTLDR)が読み込まれると、
「boot.ini」に書かれている情報をもとに、Windowsを起動していくことになります。

ここで、「boot.ini」に誤った情報が書かれていると、
ありもしない設定でWindowsを起動することになり、エラーで停止してしまうというわけです。

ただ、前述のとおり、「boot.ini」はテキストファイルなので、
簡単に閲覧、編集することが可能です。
どこに何を書くべきかがわかれば、「boot.ini」を正しく編集することはできるはずです。

「boot.ini」の場所

「boot.ini」が保存されている場所は、「Cドライブ」の直下(ルートディレクトリ)です。
迷うことはないと思います。
ただし、普通は表示されていないので、気づかない人もいるかもしれません。

「boot.ini」はWindowsの重要なシステムファイルのひとつであり、
誤った操作がなされた場合、Windowsが起動できなくなります
なので、普通は表示が隠されています。

隠しファイルの表示設定は、もちろんフォルダオプションで行うわけですが、
一般的な隠しファイルと別の設定項目になっているので注意してください。

フォルダオプションの一番下に、
「保護されたオペレーティングシステムファイルを表示しない(推奨)」とありますが、
これのチェックをはずして、「OK」を選択します。

途中、警告のウィンドウが出てきますが、編集するのが目的なので、もちろん「はい」で。

「Cドライブ」直下に、普段はあまり目にすることのないファイルがずらずら出てきます。
その中に「boot.ini」もあります。

「boot.ini」はテキストファイルなので、メモ帳で開いて編集することができます。
ただし読み取り専用となっているため、編集する場合は、

  1. ファイルの「プロパティ」
  2. 「全般」タブ
  3. 「読み取り専用」のチェックをはずす
  4. 「OK」を選択

として、書き込み可能な状態にしてください。

ただし、「boot.ini」を編集し終わったら、
誤操作によるトラブルを避けるためにも、各種設定は戻しておいたほうがいい
と思います。

「boot.ini」をテキストエディタで開いて、内容を確認してみます。

上の画像ではメモ帳で開いていますが、もちろんテキストエディタであれば何でも構いません。

「boot.ini」の編集が必要ということは、Windowsを起動できない状態にあることも十分考えられます。
そんな時は、「EditBINI」というソフトを使うと便利、というかすごく楽です。
詳細は下記ページまとめてあります。

「EditBINI」の使い方

もちろん、「Windows PE」等を使って編集しても構いません。
何を使おうと自由です。
大切なのは、正しいデータに編集することなので。

「boot.ini」の編集

そして本題、「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(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect

これは、「Windows XP SP2」での、ごくごく一般的な「boot.ini」の内容を書いたものです。
上3行でひとくくり、下2行でひとくくりです。※5行目は長いですが、改行していません。
マルチブート環境とかやってると、[operating systems]の行数が増えてたりします。

「boot.ini」の中でも、
特に注意して確認する必要があるのは、「rdisk(○)partition(○)」の部分です。※○は適当な数字。
例えば、ここの数値が間違ってたりすると、
「hal.dll」とか「ntoskrnl.exe」が壊れているというエラーが出てきて、
Windowsが起動できずに停止します。
ちなみに、「multi(0)disk(0)」の部分は固定だと思っていいです。

これらはARCパスと呼ばれる書式で、
起動するWindowsがインストールされているハードディスクとパーティションを指定しているものです。
以下にまとめます。※参考: Microsoftサポート

rdisk(○) BIOSから見たハードディスクの接続順番号
プライマリマスタ → プライマリスレーブ → セカンダリマスタ → セカンダリスレーブ等。
ただし欠番とはならず、連番となる。
「0」から数え始める
partition(○) ハードディスク内の先頭パーティションからの順番
パーティションテーブルの記述内容によっては例外あり。
「1」から数え始める

つまり、よっぽど何か特殊なことをしていない限り、「rdisk(0)partition(1)」になるはずです。
Windowsがプリインストールされているパソコンはもちろん、
自作機でも単独のWindowsを普通にインストールしてある場合は、「rdisk(0)partition(1)」です。

気をつけなければいけないのは、

  • 内蔵ハードディスクが複数台接続されている
  • ハードディスクやパーティションの構成を変えた

というようなパソコンの場合です。
そんな心当たりのあるパソコンでは、ARCパスが現状と一致してない可能性が高いので、
適宜ARCパスを編集してやる必要があります。

これら以外の部分については、Windowsのバージョンに準じます。
書いてある内容も、ARCパスとWindowsのバージョン名ぐらいなので、
なんとなく意味がわかると思います。

ちょっとわかりにくい起動オプションについては、以下のとおり。

/noexecute=optin 「Windows XP SP2」からの追加機能で、
バッファオーバーフロー対策用起動オプション。
特に変更する必要はないかと。※参考: @IT
/fastdetect シリアルポートのマウス検出を無効化するオプション。
シリアルマウス(RS-232C接続のマウス)を使っていれば別ですが、
普通は検出しに行くだけ無駄な作業になります。
こちらも変更する必要はないです。※参考: Microsoftサポート

つまり、一般的な環境では、
「Windows XP SP2」の「boot.ini」は、上述の記入例とまったく同じになるということです。
基本的に、Windowsのバージョンが同じなら「boot.ini」の内容も同じになるはずです。

基本がわかっていれば、応用がききます。
例えば、もしOSが「Windows 2000」なら、

\WINDOWS \WINNT
"Microsoft Windows XP Home Edition" "Microsoft Windows 2000 Professional"
/noexecute=optin 削除

とか、置き換えて編集すればいいワケです。

インストールされているWindowsがひとつだけでも、
起動オプションを変更した記述を、[operating systems]の部分に行単位で列記しておくことで、
パソコン起動時にWindowsの起動オプションを選択することができるようになります。

「boot.ini」のカスタマイズの話になると収拾がつかなくなるので、
興味のある人は、リンク先等を参考に自己責任でやってみてください。