特定のセクタまたはブロックにデータを書き込む

特定のセクタまたはブロックにデータを書き込む

より適切かどうかはわかりません。~のサーバー障害ボード、教えてください。

パーティションを分割したドライブがありますfdisk。最初は1つの大きなパーティションしかありませんでしたが、今は複数のパーティションがあります。カーネルは、次回再起動するまで新しいパーティションテーブルを考慮しません。

要点は、NFSを介して共有されるデータの一部がドライブにあり、再起動時にドライブに存在する必要があることです。また、一時的であっても設定ファイルを変更しないでください。したがって、これらのデータが/dev/sdb1前のパーティションに対応する最初のパーティションにあることを確認して、次回の起動時にすぐに使用できるようにしたいと思います。

それでは、ドライブの特定のセクタまたはブロックにデータを書き込む(簡単な)方法はありますか?これがdd「探索」オプションの目的ですか?これにより、新しいパーティションが考慮されると、次回の再起動時にデータを読み続けることができます。そうですか?

FWIW、データサイズは2.1MBと大きくはありませんが、/dev/sdb182MBに過ぎず、ドライブは160GBです。

ありがとうございます。

編集:レコード全体とパーティションテーブルを再ロードできない理由(最良の解決策)については、以下を参照してください。この問題存在するサーバー障害

Edit2:さて、NFSを設定する前にコンピュータを再起動した後、別の場所からファイルをコピーする解決策を見つけたかもしれません。

Edit3:大丈夫です。 Edit2は/dev/sdb1まだフォーマットされていません...

編集4:実際、この最後の編集はすべての状況に適用されるため、質問全体を放棄できます。もう少し早く考えなければなりませんでした...

答え1

NFSを処理し、古いドライブのエクスポートを停止する必要があります。 「オプションではない」と否定することはできません。

つまり、カーネルパーティションに依存せずにデバイスの特定のブロックに直接アクセスしたい場合は可能です。これで対応ddするオプションseekskip機能します。いろいろな分野に近づきたいならブロックデバイスlosetup、特定のオフセットとサイズ制限を持つように設定されたループデバイスを使用できます。最後に、デバイスに接続されている仮想マシンでいつでも新しいカーネルを起動できます(たとえば、次をlibguestfs使用)。/dev/sdb

答え2

カーネルがパーティションテーブルを再度読み取るようにする技術を見てみませんか?たとえば、以下の説明のようにpartprobeを使用できます。ここ

別のオプションは-Rフラグを指定することです。フロッピーディスク

別のオプションは、上記のようにblockdevです。ここ

関連情報