まだ開発/ゼロ化されていないドライブの最後の部分だけを追加するにはどうすればよいですか?

まだ開発/ゼロ化されていないドライブの最後の部分だけを追加するにはどうすればよいですか?

定期的にドライブを追加し、ZFS再同期のためにドライブを消去し、読み取り/書き込みまたはチェックサムエラーの問題がある場合は、ドライブをサービス状態に戻します。通常、最初にパーティションテーブルを削除するだけでは、ZFSを作成するのに十分ではありません。いいえドライブを識別します。

最初にパーティションテーブルを削除し(既に実行する方法を知っており、よく文書化されている)、3TBドライブの終わりにあるパーティションテーブルを削除してこれが機能するかどうかをテストしたいと思います。最後のパーティションテーブル(gpt)のみを削除する方法は?

今私の主な質問に答えます。 ZFSが認識しなくなったかどうかをテストするために実行し、ある時点dd(下記参照)をキャンセルしました。これだけでは十分ではありません。 ZFSはまだそれを認識し、パフォーマンスを低下させるモードに戻します。

$ dd if=/dev/zero of=/dev/disk/by-id/scsi-35000c50084818db7
^C726443929+0 records in
726443928+0 records out
371939291136 bytes (372 GB) copied, 7997.73 s, 46.5 MB/s

さて、最初の372 GBを再実行するのに時間とハードドライブの寿命を浪費しないように、過去372 GB以降のdev / zeroを探したいと思います。

いろいろな考えもしてみましたがうまくいかなかったです。

$ dd if=/dev/zero of=/dev/disk/by-id/scsi-35000c50084818db7 seek=371G
dd: ‘/dev/disk/by-id/scsi-35000c50084818db7’: cannot seek: Invalid argument
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000238797 s, 0.0 kB/s

文書を見るのは本当に大変です。このページはほとんど役に立つようですhttps://wiki.linuxquestions.org/wiki/Some_dd_examplesしかし、私はそこで私が必要とするものを見ませんでした。

ブロックサイズがありませんか、それともこれがうまくいかないのですか?conv=notrunc上記の行に追加しようとしましたが、役に立ちませんでした。

ベストアンサー1

seekパラメーターは、dd検索する出力ブロックの数です。

bs=コマンドにまたはがない場合、デフォルトは512バイトです。obs=

726443928ブロックが書かれているのがわかります。

最も簡単な解決策は、検索で数字を使用することです。

dd if=/dev/zero of=/dev/disk/by-id/scsi-35000c50084818db7 seek=726443928

ところで、あなたがリンクした文書を見ると、この事実は非常に明確になります。

探索をたくさんスキップしました。彫刻書き込み前に出力メディアに


クリアサポートGPT

セカンダリGPTテーブルは、ディスクの最後の33セクタ(512バイトセクタ)にあります。

だからfdisk -l /dev/disk/by-id/scsi-35000c50084818db7報告すると

Disk /dev/disk/by-id/scsi-35000c50084818db7: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors

次に、5860533168 =から33を引いてください。5860533135

そして

dd if=/dev/zero of=/dev/disk/by-id/scsi-35000c50084818db7 skip=5860533135

おすすめ記事