これにはどのAPI/インターフェースを使用できますか?私はsysfsが欲しいと思いますが、状況に応じてカーネル文書が存在します、インターフェイスは「実装の詳細は利用できません」とまとめることができ、利用可能な内容は完全に文書化されていません。
特につながったものを探したいです。詰まったデバイス(明らかに実装の詳細でその存在を知ることはできませんか?)、ブロックデバイスにどの属性があるのか(バージョン全体で既存の属性を使用できるか)、およびその内容を知りたいです。
本当に役に立つことです。使用sysfsですが、完全に文書化されていません。
答え1
この質問に誰も答えなかったが、私は解決策を見つけた。答えると次のようになります。
/sys/class/block/*
利用可能なブロックデバイス(シンボリックリンク)を含むものを使用するのが最も正しい方法だと思います。
また、無視する必要があり、partition
ファイルの存在として識別できる独自のパーティションもあります。このファイルは文書化されていないのでYMMVです。
後で必要に応じて、partition
ファイルがあるディレクトリを見つけて特定のデバイスパーティションを取得できます。たとえば/sys/devices/**/sda/*/partition
。ファイルにはパーティションも含まれています。数字。これにより、デバイス/パーティションカーネルの命名スキームについて何も知る必要がないので、お勧めします。
少なくとも/sys/block
私のシステムにはパーティションがありませんが、それに依存してはいけません。
ブロックデバイスが利用可能になったら、それを得るために何かをすることができます。デバイスファイルmajor:minor
文書化されていないファイルを読み取り、一致するdev
デバイスを簡単に検索できます/dev
。
サイズが必要な場合は、常に512をsize
含む文書化されていないファイルを使用できますdevice size / 512
。パーティションにもこのような機能があります。パーティションにはOn Diskstart
という1つのフィールドもあります。partition start / 512
これらは「記録」されています。これ忘れられたパッチは、このファイルが約20年間安定して文書化されていないことを意味します。だから..