web-dev-qa-db-ja.com

実行中のLinuxサーバーでルートファイルシステムをワイプするために `dd`を確実に使用できますか?

安全に破棄したい(物理的に)リモートサーバーがあります。残念ながら、ディスクは単一の大きなルートパーティションだけでパーティション分割されています。 ddを確実に使用して、ルートファイルシステムを含むデバイスをワイプできますか?

次のような単純なもの:

$ Sudo Nohup dd if=/dev/urandom of=/dev/sda bs=1024

明らかに、ジョブの出力は表示されないため、正常に完了したことを確認できません。 ddおよびNohupプログラムは十分に小さく、この時点ではサーバー上で他に何も実行されていないため、実行中にこれらのプログラムがメモリから排出される理由はありません。それらは完了するまで実行されますか、それともddが完了する前のある時点でカーネルがパニックになる可能性がありますか?

他の可能性も考えていますが、別の質問でお伺いします。

2

はい、これは絶対に可能ですが、いくつかの作業が必要です。

答えのほとんどはStackExchangeで入手できますが、ここでは、より詳細で優れた情報を提供するに値するソースへのリンクを要約します。

  1. インメモリベースのLinux環境を構築し、pivot_rootを使用してそれに切り替えます
  2. sshを使用して外部からサーバーにアクセスできることを確認します。
  3. ルートデバイスをワイプします。

    # Nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &

  4. ddの進行状況は、通常は進行状況を示すものではないため、定期的に確認してください。

    # kill -USR1 [ddpid]

  5. 後で戻って、プロセスが完了したことを確認してください(ログファイルを確認してください)。ディスクを調べて、実際のファイルシステムではなく、ランダムなジャンクがディスクにあることを確認します。必要に応じて、2回目(または3回目)に拭きます。

  6. 次に何をするかを決定します。

    必要に応じて、ここで停止して立ち去ることができます。マシンの電源を切ると、ddが作成できると判断したのと同じくらい安全な起動不可能なデバイスができあがります。

    次にやろうと思ったのは、今までやったことのないこと、つまりLinuxベースシステムをリモートで構築することです。だから私は続けた:

  7. fdiskを使用してルートデバイスを必要に応じて再パーティション化し、mkfsを使用してそれらのパーティションにファイルシステムを作成します。

  8. debootstrap to ベースのDebian環境をインストールする を(将来の)ルートファイルシステムで使用します。
  9. chrootを新しい基本環境にインストールし、追加のパッケージ(sshdなど)、カーネル、およびブートローダー(grubなど)をインストールします。ブートローダーが実際ににインストールされていることを確認します。デバイス-パッケージをインストールするだけではありません)。
  10. 上記の手順1で行ったのと同じ方法で、root_pivotを使用して新しい環境に切り替えます。すべてのサービス(例:sshd)を起動して、サーバーにアクセスできるようにします。例: sshまで。
  11. リブート。新しいOSの準備ができているはずです。
3

エンタープライズ環境では、IPMI、iDRAC、またはその他のリモートKVMソリューションのような、ある種の帯域外管理が必要になります。そのシステムを使用して、liveCDを起動します。ワイプを実行して確認することができます。目的が安全な消去である場合は、動作を確認する必要があります。「まあ、それは機能するはずでした」とだけ言うことはできません。機能するはずでも、機能しないためです。一部のIPMIシステムでは、リモートで使用しているISOからリモートで起動できます。DBANイメージのような単純なものを使用できます。

1
HackSlash