- 締切済み
BIOSでの外部機器の認識
BIOSはパソコンの電源を入れたときに16進数の「EC」と言うコマンドコードを外部機器に送ることでその外部機器が存在しているかどうかを認識する。そして、その外部機器内のデータが読み取られるのはその機器からブートした時で、その機器をブートしなければその機器のデータは読み込まれないと教えてもらいました。 これは、内蔵HDDだけではなくパソコンのUSBポートに接続した外付けHDDやUSBメモリに対しても該当しますでしょうか? つまり、パソコンのUSBポートに外付けHDDまたはUSBメモリを接続した後、パソコンの電源を入れると BIOSはUSBポートに外付けされたHDDまたはUSBメモリに対して「EC」のコマンドコードを送り その存在を認識するが、外付けHDDまたはUSBメモリからブートしなければ外付けHDDまたはUSBメモリのデータが読み込まれることはない。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- umamimi
- ベストアンサー率39% (144/362)
No.3です。 >どのデバイスからブートするかを決定する前の段階で、そのUSB機器のブートブロックも >自動的に読み込むのでしょうか? >発行してUSB機器を認識するだけ(その後にUSB機器のブートブロックは読み込まれない)で >終わるのでしょうか? わかりません。 一覧に出す前に、各々のデバイスがブート可能か、まで調べるような丁寧な作りなら 「ブート領域にブートプログラムが用意されている」事まで確認したデバイスだけが 一覧に現れるでしょうし、 逆に、 デバイスが存在すれば一覧に出す→選択されればかまわずブートしようとする→ ブート領域が用意されていなければそこで初めてエラーとする。 そのデバイスを繋いだのはオペレータなのでBIOSは関知しない。 という作り方もありえますので。 質問者さんが言われるPCのBIOSがどのような考えで作られてるかはわかりません。
- umamimi
- ベストアンサー率39% (144/362)
横からすみません。 >どのデバイスからブートするかを決める前(USBポートにつなげた外付けHDDまたは >USBメモリにブート順で順番が回ってくる前)に、BIOSは外付けHDDまたはUSBメモリに対して >「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行して >認識しているのではないでしょうか? そりゃ<F10>なり<F12>なりのキーを押して選択メニューを表示させた場合はそうでしょうが、 質問文には書かれてなかったし、 この機能を全PCの全BIOSが持ってるわけではないのですから >>機器の存在チェックが行われるのは「USBにブート順が回ってきたときだけ」になっている。 という回答は、質問文に対する回答としては合ってるといえます。 また、この機能を持つBIOSであっても、特定キーを押さずメニュー表示しない時は 「予めチェック」も必要もなく行われてないでしょう多分ですが。 つまり実施した条件を書かずに質問した方が説明不足なので 期待する回答とちがったということです。
- chie65536(@chie65535)
- ベストアンサー率44% (8759/19873)
>BIOSはパソコンの電源を入れたときに16進数の「EC」と言うコマンドコードを外部機器に送る この「EC」は「IDE機器」または「SATA機器」のみに限った話。 IDE、SATAインタフェースの機器は、IDE規格で制定されている「IDEコマンド」と言うコマンドコードを理解するように作られている。 この「IDEコマンド」のうち「EC」と言うコード番号が「お前さんの機器名は何ですかいな?」と言うのを問い合わせるコードになっているのだ。 なので、このコードは、IDE機器、SATA機器でしか意味がない。 >USBポートに接続した外付けHDDやUSBメモリに対しても該当しますでしょうか? USBは「USB規格」と言う、まったく別の規格だから「似たような機能を持つコマンドがあるかも知れないし、無いかも知れない」のだ。 そういうのが有るか無いかは「USBの規格書を読めば判る事」なので、自分で調べよう。 余談だけど、質問者さんには「なんでもかんでも一緒くたにしてゴッチャにしちゃう癖」があるようだ。前回の質問でも、その傾向が非常に強く「ゴッチャになって、まったく整理が出来てなかった」と感じられた。 味噌も糞も一緒にしちゃうのは、質問者さんの「悪い癖」だと思う。 質問者さんの頭の中から「IDE/SATA機器と、USB機器は、まったく別の物」って言う意識が抜け落ちてると思う。 IDE/SATA機器と、USB機器は、規格も違えば、方式も違えば、使用方法も使用目的も違う。 「全然違う物」ではあるけれども、ある程度は「共通項」もあるので、その共通項を使えば「どっちもHDDを繋げられる」と言う結果を生む。 質問者さんは「どっちもHDDだ」と言う表面しか見て無い(見えてない)から、味噌も糞も一緒にしちゃって、訳が判らない状態に陥ってしまってる。 まずは「表面だけ見ないで、本質を見る」と言う習慣を付けよう。 前回の質問も同じ。表面しか見てなくて本質が見えてなかった。 >BIOSはUSBポートに外付けされたHDDまたはUSBメモリに対して「EC」のコマンドコードを送り まず「BIOSがUSBブートに対応している事」が大前提。 古いBIOSはUSBブートに対応していない。 BIOSがUSBブートに対応しているなら、USBからのブートが必要になった時だけ、機器に「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行して、機器からどういう反応が返されるか待つ。 そして、規格通りの反応があれば、 >その存在を認識する と言う事になる。 「USBからのブートが必要になった時だけ」ってのは、ブートの優先順位の順で各機器を見て行って「USBに順番が回ってきた時」の事を意味する。 USBにブート順が回ってこなかった時は(他の機器からブートしちゃった時は)、USBは無視され、機器の存在チェックどころか、USBポートへのアクセスさえ行われない。 >が、外付けHDDまたはUSBメモリからブートしなければ外付けHDDまたはUSBメモリのデータが読み込まれることはない。 これは間違い。 BIOSがUSBブートをサポートしていたとしても、起動時には、何にもしない。 BIOSがブートの優先順位に従ってIDEやSATAやLANを見に行って、USBの順番になった段階で、初めてUSBポートへのアクセスが行われる。 USBにブート順が回ってきたら、USBの先にどんな機器が繋がってるか問い合わせて、問い合わせの結果、何か機器が繋がってたら、「お前さんはどんな機器だい?」って問い合わせて「記憶装置だよ~」って返って来たら、その時点で、USB機器のブートブロックを読み込もうとする。 なので「USBからブートしなかった時は、BIOSは、一切、USBポートにアクセスしない」ので、機器の存在チェックなど行わない。 機器の存在チェックが行われるのは「USBにブート順が回ってきたときだけ」になっている。 なんでこうなっているかと言うと「自分以外の、他のUSB機器同士が通信し合っているかも知れないので、極力邪魔しないようにする」と言う理由と「USBブート機能が、後から追加された機能」だから。
補足
>なので「USBからブートしなかった時は、BIOSは、一切、USBポートにアクセスしない」の>で、機器の存在チェックなど行わない。 >機器の存在チェックが行われるのは「USBにブート順が回ってきたときだけ」になっている。 USBポートに外付けHDDまたはUSBメモリをつなげた状態でパソコンの電源を入れたときに、F10またはF12を押して、どのデバイスをブートするかを選択する画面を表示させると、CD-ROMやハードディスクと並んで、外付けHDDまたはUSBメモリの項目があります。 外付けHDDまたはUSBメモリの項目があるということは、BIOSが外付けHDDまたはUSBメモリの存在チェックをして、その存在を認識しているものと考えられます。 どのデバイスからブートするかを決める前(USBポートにつなげた外付けHDDまたはUSBメモリにブート順で順番が回ってくる前)に、BIOSは外付けHDDまたはUSBメモリに対して「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行して認識しているのではないでしょうか?
- akiomyau
- ベストアンサー率43% (555/1280)
BIOSの種類によるのではないでしょうか。 古いPCのBIOSではUSB接続のハードディスクからの起動も出来ないものもありますし。 BIOSによってはUSBのハードディスクを接続した時と接続しないときでBIOSで出てくるブートの項目が異なるものもあります。
お礼
umamimiさん、教えてくださりありがとうございます。 USBにブート順が回ってきたときは、 BIOSはUSBポートにつなげた外付けHDDまたはUSBメモリに対して「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行して、機器の存在チェックの後、USB機器のブートブロックを読み込もうとする。 それでは、 <F10>なり<F12>なりのキーを押して選択メニューを表示させた場合、 BIOSはUSBポートにつなげた外付けHDDまたはUSBメモリに対して「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行してUSB機器を認識した後、どのデバイスからブートするかを決定する前の段階で、そのUSB機器のブートブロックも自動的に読み込むのでしょうか? それとも<F10>なり<F12>なりのキーを押して選択メニューを表示させただけ(その後にどのデバイスからブートするかを決定しない)では、「IDEコマンドの『ECコマンド』に相当する、何らかのコマンドみたいな物」を発行してUSB機器を認識するだけ(その後にUSB機器のブートブロックは読み込まれない)で終わるのでしょうか?