質問: c:\windows\system32\ntoskrnl.exe が存在しないか壊れている 下記のエラーが表示され windows が立ち上がりません。 "c:\windows\system32\ntoskrnl.exeが存在しないか壊れているためwindowsが起動できません。上記のファイルをインストールしてください。" windows 2000/xp の緊急修復ディスク (erd) を作成し、起動試みましたが結果変わりません。 レスキュー方法を教えて下さい。 os : windows 2000 model : fmv 7000fl [追記] 色々調べているうちに、「これは実際に ntoskrnl.exe や hal.dll が破損している場合よりも、boot.ini の記述が実際の情報と食い違っている場合に発生する」というものを見つけました。 この場合の対処として「boot.ini ファイルの記述を見直してください」とありますがどういうことなのでしょうか?
回答: 一言で言えばboot.iniを書き換える必要があります。 一般的にはosはcドライブにインストールされておりboot.iniはcドライブのルートにあります。 fdでdosを起動してboot.iniを書き換えるのですがcドライブがntfsフォーマットの場合はdosからはアクセスできません。 そこで ntfsiniコマンドを使ってboot.iniをcドライブからfdにコピーし、それを修正してから ntfsini /rコマンドでcドライブに書き戻します。 cドライブがfatの場合はdosから直接アクセスできるので普通にコピーすればいいのですがboot.iniはシステム属性/不可視属性なのでattribコマンドで属性解除しないと操作できません。 手順としては以上です。 もう一つの問題として、どのように修正するのか?というものがあります。 boot.iniの中身はすでにご存知と思いますが下記のような感じです。 [boot loader] timeout=30default=multi(0)disk(0)rdisk(0)partition(2)\winnt [operating systems] multi(0)disk(0)rdisk(0)partition(1)\winnt="windows 2000" multi(0)disk(0)rdisk(0)partition(2)\winnt="windows 2000" たいていはpartition( )の数字が部分が、パーティション操作などが原因で実際の番号と一致しなくなっているはずです。ではpartition( )の正しい数字は? 気にすることはありません。 [boot loader] timeout=30default=multi(0)disk(0)rdisk(1)partition(2)\winnt [operating systems] multi(0)disk(0)rdisk(0)partition(1)\winnt="windows 2000 1" multi(0)disk(0)rdisk(0)partition(2)\winnt="windows 2000 2" multi(0)disk(0)rdisk(0)partition(3)\winnt="windows 2000 3" multi(0)disk(0)rdisk(0)partition(4)\winnt="windows 2000 4" multi(0)disk(0)rdisk(0)partition(5)\winnt="windows 2000 5" multi(0)disk(0)rdisk(0)partition(6)\winnt="windows 2000 6" multi(0)disk(0)rdisk(0)partition(7)\winnt="windows 2000 7" multi(0)disk(0)rdisk(0)partition(8)\winnt="windows 2000 8" multi(0)disk(0)rdisk(0)partition(9)\winnt="windows 2000 9" 全部指定のboot.iniを作ってしまえばいいのです。 再起動して選択画面が出たら1を選択。起動できなければ再起動して2を選択。駄目なら再起動して3を選択・・・というふうに「当り」が出るまで繰り返しwindowsを起動できたらboot.iniのデフォルトをその番号にすればいいのです。 このboot.iniはそのまま残しておけば再度同じトラブルに見舞われたときに楽に対処できます。 それよりインストールした直後にboot.iniをこのようにしておくという手もあるんです。私はそうしてます。 ディレクトリを示す\winntの部分はwindowsnt/2000の場合でwindowsxpのデフォルトは\windowsです。