BIOSのプログラムでINT 0x13などでフロッピーディスクなどを操作できますが、USBのデータを読み書きするものは無いのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
なんのためにそのようなことが必要なのでしょうか。別な手段のほうが最終目的を達成できる可能性が高いかもしれません。
回答1件
0
USBのデータを読み書きするものは無いのですか?
無いです。UEFIではない、INT 13h(DISK I/O)などをハンドリングする古いBIOSはインテルCPUが16ビット時代からのものであり、USBドライブのようなマスストレージ、そもそもUSBインターフェースすらなかった時代のものですので。ただし、PCのBIOS自身がUSBをホスティングできて、USBドライブを通常のディスクドライブとして扱えるようにしたものがあれば、普通のディスクとして扱えるものもあるいはあるかもしれません。一部のPC BIOSではUSB 1.1くらいまでのインターフェースをサポートして、USBドライブから起動できるものもあります。そういったものは、INT13hでUSBドライブをあたかも普通のハードディスクドライブのようにアクセスできるかもしれませんが、ディスク容量の問題などで様々な制限がある可能性もあります。
投稿2019/11/02 19:38
総合スコア9427
usbを使って仮想のHDDを作るということですか?その場合、シリンダーやヘッドの設定はどうなりますか?
そんなBIOSでは、BIOSがUSBドライブのインターフェースを意識し、仮想のHDDとしてふるまえるようにしています。シリンダーやヘッド、セクターのマッピングがUSBドライブと合致しなければ、うまく動かないでしょう。
せいぜいUSBドライブからの起動のみしかサポートできていない可能性もあります。INT13hが動いているBIOSのx86 リアルモードでは、16ビットしか扱えません。大容量のUSBドライブの全領域は、LBAでもカバーしきれないかと。32ビットUEFI下で旧BIOSのエミュレーションを行っているかもしれませんが(<これはちょっと分かりません)、様々な制限がありそうなのは、想像に難くありません。古いディスクI/Oの指定方法であるCHSアクセスでは限界がありそう、ということです。
USBの16GBをセクタに分割して、丁度16GBになるようにすればいいですか?
パソコンは結構最新ですよ
それはBIOSやUEFIに依存します。つまり、PCやBIOSメーカーによる造りに依存します。プログラミングインターフェースとしてはサポート外だと思います。
最新のPCなら尚更です。今のPCは電源が入ると16ビットの古いBIOSではなく、速やかに32ビットのUEFIに移行してOSの起動への処理を行います。INT13hのサポートは範囲外だと思います。
今、バージョン調べます。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11215750131
ここにバージョンの画像載せてので見ていただけませんか?
OS 名 Microsoft Windows 10 Home
バージョン 10.0.17763 ビルド 17763
OS の他の説明 利用不可
OS 製造元 Microsoft Corporation
システム名 LAPTOP-SU17B1NM
システム製造元 FUJITSU
システムモデル FMVA77B1BK
システムの種類 x64-ベース PC
システム SKU
プロセッサ Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz、2801 Mhz、4 個のコア、8 個のロジカル プロセッサ
BIOS バージョン/日付 FUJITSU // Insyde Software Corp. Version 1.12, 2017/10/16
SMBIOS バージョン 3.0
埋め込みコントローラーのバージョン 0.18
BIOS モード UEFI
ベースボード製造元 FUJITSU
ベースボード製品 FJNBB51
ベースボード バージョン 730569-01R6Z00038
プラットフォームの役割 モバイル
セキュア ブートの状態 無効
PCR7 構成 表示するためには昇格が必要です
Windows ディレクトリ C:\WINDOWS
システム ディレクトリ C:\WINDOWS\system32
ブート デバイス \Device\HarddiskVolume1
ロケール 日本
ハードウェア アブストラクション レイヤー バージョン = "10.0.17763.737"
ユーザー名 LAPTOP-SU17B1NM\FMV
タイム ゾーン 東京 (標準時)
インストール済みの物理メモリ (RAM) 8.00 GB
合計物理メモリ 7.86 GB
利用可能な物理メモリ 2.96 GB
合計仮想メモリ 9.11 GB
利用可能な仮想メモリ 2.66 GB
ページ ファイルの空き容量 1.25 GB
ページ ファイル C:\pagefile.sys
カーネル DMA 保護 無効
仮想化ベースのセキュリティ 無効
デバイス暗号化のサポート 表示するためには昇格が必要です
Hyper-V - VM モニター モード拡張機能 はい
Hyper-V - 第 2 レベル アドレス変換拡張機能 はい
Hyper-V - ファームウェアで仮想化が有効 はい
Hyper-V - データ実行防止 はい
アップロードしていただいた知恵袋の画像は小さくてぼけて見えませんでした。(<ちなみにこの行為はマルチポストではないのですか?)
どうも誤解があるようですが、バージョンを調べて私に伝えられても私の方では判断はできません。あくまでBIOSを造ったメーカーが、INT13hを処理するプログラムをUSBドライブに対してどこまでサポートするようにプログラミングをしたか、に依存しています。
今のものは知りませんが、過去、BIOSのハードディスクアクセスの設定事項に「CHSアクセスを使用するか」「LBAを使用するか」を選択するようなものがありました。これは、古いHDDではCHSしか扱えないし、LBAをサポートしているHDDではBIOSがLBAの仕様を意識して、適切にマッピングしていたのでしょう。USBドライブはさらに事情が異なるでしょうから、単純にディスク容量をCHSに割り当てても、動作しなくておかしくありません。
ありがとうございます。知恵袋は消しました。製造会社に直接聞きたいと思っています。
あるいはINT13Hなど全く関係なく、本当にBIOSがUSBドライブをUSBインターフェース仕様に基づいてアクセスし、USBドライブからの起動をサポートしてるのかもしれません。そんな場合はもう、INT13HでのUSBアクセスは有り得ません。これもあくまでBIOSを造ったメーカーの思惑と仕様に依存します。外部プログラムからアクセスすることはできません。
> 製造会社に直接聞きたいと思っています。
そうですね。それが正当かと思います。ただ、よっぽど特殊用途(工場の特定用途PCとか)のものでもない限り、INT13Hなどと言う部分の仕様を
教えてくれる(あるいはサポート部門が責任持って対処してくれる)とは思えませんが。BIOSのソフトウェアは、ほとんどが海外製のはずです。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。