web-dev-qa-db-ja.com

ファイルシステムを破壊せずにハードドライブのコンテンツをゼロにする

古い人が使用していて、おそらくマルウェアに感染していた古いコンピューターから、外付けハードドライブにたくさんの写真をコピーしました。写真を別のハードドライブに保存しました。外付けハードドライブは完全に空になりましたが、私は偏執的であり、ドライブにマルウェアや悪意のあるコードが残っていないことを確認したいと思います。

だから私はそれをゼロで埋めたいのですが、ファイルシステムやパーティションテーブルを破壊することはありません。ある意味、買ったばかりのディスクを取り戻したいのですが。

それを行うことは可能ですか?それを行うためのLinuxコマンドはありますか?

私のハードドライブは、msdos(mbr)パーティションテーブルを使用してNTFSでフォーマットされています。

9
Nicryc

簡単な答え:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

これは正確にあなたが要求したことをします:ファイルシステムのファイルに利用できるすべてのスペースをゼロで上書きします。

より複雑な答え:

  • MBRを無効にすることなく、確信が持てません。MBRウイルスはありません。
  • 空のファイルシステムには値がありません

そのため、デバイスをnuke(つまり、MBRとファイルシステムを含むデバイスをゼロにする)してから、パーティションテーブルとmkfs.ntfs -f -L LABEL -Iを再作成することをお勧めします

[〜#〜]編集[〜#〜]

@Nyosがコメントで指摘したように、NTFSドライバーが同期をマウントしない場合(デフォルトがわからない)、syncの前に余分なrmを挿入することをお勧めします。現在のバージョン(2020-05-02に完全にパッチされたUbuntu 18.04以降)では遅延ブロックが割り当てられないため、割り当てられたすべてのブロックがsyncに書き出されるため、umountは厳密には必要ありませんが、将来についても、私は完全なソースコードを読みましたか?.

同じ注意:NTFSドライバーがスパースファイルのサポートを取得した場合、(ほぼ)無限の書き込みを回避するために、/dev/urandomではなく/dev/zeroを使用する必要がある場合があります。

36
Eugen Rieck

これはあなたの質問にまったく答えませんが...それにもかかわらず:

まず、ディスクをゼロにするのは本当に、本当に悪い考えです。これは、「従来の」ディスクにも当てはまり、ソリッドステートディスクにも当てはまります。ディスクをゼロにすることは簡単です(ファイルを作成してファイルを埋めるだけで、Eugen Rieckが正確なレシピを提供します)には時間がかかり、ディスクが消耗します。どんな種類のハードディスクでも、書き込みサイクルは無限ではありません。
また、上書きが実際に意図したとおりに機能することさえ保証されていないことに注意してください。あなたの目的のために、違いは顕著ではありませんが、他の目的(機密データの安全な消去を考えてください)では、アプローチは完全に信頼できません。これは、ウェアレベリングと再割り当てのおかげで、何かを上書きしたときに何が起こるかを知る方法がまったくないためです。ドライブは、(オペレーティングシステムを含めて)だれもが変更することを知らずに、または伝える方法さえなくても、多くのことを行います。たとえば、コントローラーが再試行回数やCRCなどに満足できなかったためにセクターが再割り当てされた場合、今後は何でもやりたいことができますが、そのセクターにはアクセスできなくなります。二度と。それでも、データ、またはデータの残り(そして、あなたが知ることはできません)はそこに残り、潜在的な泥棒がそれを読み取る可能性があります。

第2に、完全なパラノイアモードで動作している場合、特にディスクが「空」の場合は、ファイルシステム(およびMBR)を保持することは非常に悪い考えです。ファイルシステムのUUID以外は、新しいファイルシステムを作成するだけでは何も失われません(おそらく可能性があります状況によっては少し厄介ですが、修正も簡単です)。ただし、予期しない場所(MBRなど)に何も残っていないことが確実になります。

第三に、実際にはまったく空ではない「空の」ファイルシステムをゼロにして再利用することは悪い考えです。代わりに新しいFS(古くなった変更ジャーナルエントリ、非表示のアイテム、忘れられたストリーム、属性、フラグメント化されたMFT ...なし)を最初から作成できる場合、パフォーマンスの点で悪いです。ゼロからすべてをより安全に再作成し、より高速になり、全体的なパフォーマンスが向上する可能性があります。

tl; dr

ほとんどのデバイスには、付属の管理ツールまたは標準のATAコマンドを介した他のツールでサポートされる専用の安全な消去または「工場出荷時のリセット」オプション(同じ)があります。ドライブは最も効率的で最も破壊的でない方法を使用します(一部のドライブは実際に機能を完全にサポートしていないため完全なディスクを上書きしますが、ほとんどは暗号化キーまたはビットスクランブルキーをダンプするだけで、ディスクサイズに関係なくほぼ瞬時に機能します)。

hdparm ほとんどすべてのLinuxディストリビューションでそのまま使用できますが、オプション--security-eraseその正確な目的のため。

これは、しばらく使用されたことを除いて、「購入したかのように」ディスクを提供します。それは(技術的に可能な範囲内で)最速かつディスクを殺害しない方法でそれを行います。その後、パーティションを作成し、ファイルシステムを作成します。

5
Damon