ゴール
私はファイルシステムを Windows に移植しており、マウンターの実行可能ファイルに対してより Windows に似たインターフェイスを作成しています。このプロセスの一部は、ユーザーがパーティションを見つけてドライブ文字を選択できるようにすることです。最終的にパーティションを選択するとCreateFile()
、 、open()
、fopen()
または同様のものを使用して開くことができます。
リード
Windows は、ボリュームの概念を中心に展開しているように見えますが、これはディスクとはまったく似ていないようで、既にマウントされているファイルシステムに対してのみ発生します。
私が持っていた有望なリードは次のとおりです。
/dev/sda1
ただし、これらはすべて、私が求めているパーティション固有のスタイルのハンドルではなく、ボリュームまたはそのオフセットで終わります。
OPがパーティションではなく物理ディスク名の後にあることに気付くまで、私は報奨金を考えました。この回答には、パーティション名をブルート フォースする方法が含まれています。それは避けたいと思います (または、可能なパスの境界を含むドキュメントを参照してください)。
質問
私は…したい:
- Windows でマウントされていないパーティションの正しい用語とドキュメント。
- 利用可能なすべてのパーティションを確実に取得するための効果的で文書化された方法。
- Linux で利用可能なパーティション ファイルの抽象化に最も近いもので、すべての IO は開かれたパーティションのディスクの適切な領域にバインドされます。
Update0
主な目的は未加工のパーティションを開くことですが、解決策としては、最初に各ディスク ドライブのハンドルを取得し、次にそれを使用して各パーティションを取得する必要があるようです。すべてのディスク ドライブ (ボリュームがマウントされていないドライブも含む) を列挙する方法が必要です。