smartdにデータベースが必要ですか?
または
smartctlにデータベースが必要ですか?
Smart Tool githubがデータベースを継続的に更新しているのを見てください。
https://github.com/smartmontools/smartmontools/labels/drivedb
私が理解したように、smartdはすべてのディスクをスキャンするためにデータベースがなぜ必要なのでしょうか? smartd / smartctlでデータベースを使用する機能/目的は何ですか?
答え1
smartmontools
ドライバーに見せてくれますねここ。その目的は、デフォルト設定(データベースで定義されている)が不十分なドライブに追加のコマンドラインフラグを提供するか、ドライブに警告を提供することですsmartctl
。smartd
多くのドライブには、特定のカウンターまたは特定の方法で解釈する必要があるカウンターがあります。デフォルト以外の最初の項目データベースから。
一部のドライブには、ユーザーに知らせる必要がある重要な機能障害があります。m4 SSDとカウンタエラー。
USBドライブには指定されたアクセス方法が必要です。ここから始まる項目。
データベースはそうではありません。必要、定義されているすべての設定はコマンドラインパラメータを使用して指定できるため、各ユーザーはこれらのコマンドラインパラメータを直接決定する必要はありません。
答え2
lspciやlsusbと同様に、これらのツールは短い数字(通常は16進数)を受け入れ、それを文字列にマップします。モニターEDIDはまた、これらの短い数字を含む非常に短いバイナリブロックを送信し、一種の一致テーブルを使用して文字列に変換されます。
https://pci-ids.ucw.cz/v2.2/pci.ids- これは、 lspci およびその他のツールでベンダー 4 16 進 ID と製品 4 16 進 ID を文字列値に変換するために使用される物理マッチのリストです。その一致テーブルにエントリがない場合は、製品とベンダーIDのみが表示されます。
Smartctlははるかに複雑ですが、多数のフィールドには文字列値を生成するためにこれらの一致テーブルが必要であり、ツールから読み取られた任意の文字と数字だけである他の種類の値と範囲も必要です。
ドライブがsmartctlに送信できるブロックのサイズがどれだけ大きいかはわかりませんが、他のnixディスクユーティリティが通常アクセスするよりも多くのブロックがマップされていることを知っています。これは、少なくとも部分的に一致するテーブル、いくつかのバイナリが原因で発生することがほぼ確実です。特定の文字列値にマップされた値。
ハードウェアが実際にシステムに通知する内容は、これらのツールが人間が読める文字列形式でエンドユーザーに報告するものとは大きく異なります。私はこれらのツールの1つ以上を作成し、これらの一意の識別子と時々文字列値を高度に圧縮するために非常に賢い方法でどれだけのバイナリビットが使用されたか覚えていません。ただし、これが直接送信された生データを含む一致テーブルが必要な理由です。デバイス固有の2進数または16進数のデータ。
とにかく大まかに言えば。私はsmartctlがこれを正確に行う方法を知りませんが、一致テーブル(別名データベース)を使用するこれらのツールの1つを見るたびにこれが理由です。
たとえば、ドライブはSamsung Electronics Corporationという文字列を送信する可能性が低いですが、CE00hを16進数の4文字IDに送信してから、Samsungの文字列IDにマッピングする可能性が高くなります。もちろん、smartctlはそれを行うことができますが、これはおおよそのアイデアです。ドライブがインテリジェンスを介して送信する他の値はそれ自体には意味がなく、その値が何を参照しているかを知る前に、特定のベンダー、時には特定の製品にマップする必要があります。単位は一定ではなく、サプライヤーとドライバーによって異なります。
また、CPUは、16進数の拡張ファミリ、拡張モデル、ファミリ、モデル、およびステップIDを含む小さなチャンクをエクスポートします。次に、これが何であるかを確認するには、CPUベンダーやその他の既知の情報に再マップする必要があります。
一致テーブルが間違っているか不完全な場合は、smartctlが特定のフィールドに誤った値を表示できることに注意する価値があります。たとえば、私はこれを何度も見ましたが、時にはこれらのことはNDAの下でのみ公開されます。またはまったくそうではないので、smartctlは正しい一致値を見つけようとしますが、必ずしも成功するわけではありません。つまり、このツールは純粋な生データを表示するのではなく、解釈され処理されたデータを表示します。