ブートローダーを知っている人ができること

今日はVerilogでいろいろなものを書いてみてた。

論理合成の結果見るとおもしろいですね。

FPGAに載ってる加算回路やマルチプレクサを呼び出して使ったり使わなかったり。

賢いですなぁ。


今日、研究室でVerilogやってたら、クラスメイトがやってきた。

どうも彼の研究室のPCが立ち上がらんらしい。

行ってみると、「NTLDR is missing」と表示されて起動しない。

NTLDRに問題があるようだ。

Webで調べるとNTLDRがないという意味らしい。なんでだろうね。

起動ディスクでとりあえず立ち上げて、NTLDRをコピーするという方法をよくとっていたが、

残念ながらそれはできない。というわけで修復コンソールで直すことに。


修復コンソールを起動して、こういう操作をする。

> cd C:\
> copy E:\i386\ntldr .
> copy E:\i386\ntdetect.com .
> copy E:\i386\bootfont.bin .
> bootfix /rebuild

NTLDR関係のファイルを転送して、bootfixでboot.iniを生成する。

これで完了。無事起動するようになった。


しかし、これだけで済まなかった。その後、またやってきた。

今度はMBRがぶっ壊れたらしい。なんかいろいろあったらしい。

これも修復コンソールでなおす。

> fixmbr

これで、NTLDRを呼び出すように仕向けることはできたが、OSが壊れてたらしく結局無理だった。


こういうブートローダーまわりを理解している人は少ないようです。

OSが起動すると言うことは、BIOSがMBRを読み取ってブートローダーを呼び出して、これがOSを起動させるというのが実際です。

しかし、BIOSからOSまでの間になにが起きているか理解している人は少ないと。

まぁマルチブートとかやったことある人なら知ってるかもしれないが、そうでもなければ知らんで済むからね。

そんなのだから画面を見ても、何が起きてるかもわかってないというのが実情のようです。

この点においても理解が進めば解決すべきことがわかってくるんでしょうけどなかなか。