4

デバッグの目的で、特定の定義済みブロックでファイルを開きたいと考えています。たとえば、特定のブロックが破損していると思われる場合、そのブロックに対して書き込みと読み取りを行いたいのですが、パーティションがマウントされている間にユーザー モードでそれを実行したいと考えています。

Linux に「この新しいファイルが空いている場合は、ブロック 4579 でこの新しいファイルを開いてください」と伝える方法はありますか。

はい、ブロックデバイスを直接編集できますが、ドライブがマウントされている場合、ファイルシステムが破棄される可能性があります。

一般的な回答は歓迎されますが、ext ファイルシステム ファミリに対する回答でも十分です。

4

1 に答える 1

2

たとえば、特定のブロックが破損していると思われる場合は、そこから読み書きしたいのですが... Linux に「ブロック 4579 にあるこの新しいファイルが空いていれば開いてください」と伝える方法はありますか?

はい、基礎となるブロック デバイスをファイルとして使用し、ファイル上のその場所をシークできます。「デバッグ」のユースケースを考えると、これは適切なようです。このブロックへの書き込みは、上記のファイルシステムの整合性を破壊する可能性があることに注意してください (読み取った内容を書き戻す場合でも)。

そうでなければ、いいえ、ファイルシステムは、デバイスのレイアウトの基礎となる実際のジオメトリを隠すように設計されていることが多いため、ファイルを作成する場所に関するヒントを提供するメカニズムはありません。

于 2012-07-04T17:52:51.460 に答える