Ubuntu でデータ消去(USBメモリ,ディスク,SSDなど)
【極めて重要:警告】この記事で紹介するコマンドは、指定したデバイス上のデータを完全に、かつ復元困難な方法で消去します。操作対象のデバイス名を誤ると、OSを含むシステム全体や他の重要なデータが回復不能な形で失われる可能性があります。コマンド実行前には、対象デバイス名を複数回確認し、ご自身の責任において細心の注意を払って操作してください。少しでも不安がある場合は実行しないでください。
事前準備:デバイス名の確認
データ消去を行う前に、対象となるデバイスの正確な名称(例: /dev/sda
, /dev/sdb
, /dev/nvme0n1
など)を特定することが不可欠です。GUI環境が利用可能な場合は、「ディスク (gnome-disks
) 」ユーティリティ(ターミナルで sudo gnome-disks
と入力して起動)で確認できます。CUI環境では、lsblk
コマンドや sudo fdisk -l
コマンドなどを実行し、表示されるディスクサイズやパーティション構成情報を基に、消去対象のデバイスを慎重に特定してください。特に、OSがインストールされているシステムディスクや、他のデータ保存用ディスクと絶対に混同しないよう、繰り返し確認することが極めて重要です。
データ消去コマンド (主にHDD向け): shred
HDD(ハードディスクドライブ)に対しては、以下の shred
コマンドでデータを上書き消去できます。
sudo shred -n 1 -v -z /dev/<デバイス名>
このコマンドは shred
ユーティリティを使用しています。各オプションの意味は以下の通りです。
sudo
: コマンドを管理者(スーパーユーザー)権限で実行します。デバイスへの直接書き込みアクセスには通常、管理者権限が必要です。shred
: ファイルやデバイスの内容をランダムなデータで複数回上書きし、元のデータの復元を困難にするためのコマンドです。(ファイルを削除するrm
コマンドはファイルシステム上の参照情報を消すだけで、データ自体はディスク上に残存している場合があります)-n 1
: データの上書き回数を1回に指定します(shred
のデフォルトは通常3回です)。回数を増やすほど復元は困難になりますが、処理時間が増加します。-v
: 詳細表示(verbose)モードを有効にし、処理の進行状況を表示します。-z
: 上書き処理の最後に、デバイス全体をゼロ(0x00)で上書きします。ランダムデータが書き込まれた痕跡を隠す効果が期待できます。/dev/<デバイス名>
: データ消去の対象となるデバイスファイルを指定します。この指定を絶対に間違えないでください。
SSDのデータ消去:shred
の限界と推奨される専用コマンド
前述の shred
コマンドは、SSD(ソリッドステートドライブ)に対しては効果が限定的です。これは、SSD内部のコントローラ (FTL: Flash Translation Layer) が行う「ウェアレベリング」(書き込み負荷分散)や「ガベージコレクション」といった動作により、OSからの上書き命令が物理的なデータブロックに意図通り適用される保証がないためです。古いデータがすぐに消去されず、別の場所に一時的に残存する可能性もあります。
そのため、SSDのデータをより確実に消去するには、shred
ではなく、SSDのファームウェアレベルで動作する専用のコマンドを用いることが強く推奨されます。
SATA SSDの場合: Secure Erase (hdparm
コマンド)
SATA接続のSSDでは、多くの場合 hdparm
コマンドを用いて Secure Erase 機能を実行できます。
コマンド例 (実行には細心の注意が必要):
# 【注意】以下のコマンドは一例です。実行前に必ずSSDの仕様を確認してください。
# 1. (必要な場合) セキュリティパスワードを設定 ( 'password' の部分)
# sudo hdparm --user-master u --security-set-pass password /dev/sdX
# 2. Secure Erase を実行 (上記で設定したパスワードを使用)
# sudo hdparm --user-master u --security-erase password /dev/sdX
/dev/sdX
は対象のSATA SSDデバイス名に置き換えてください (例:/dev/sda
)。- 【極めて重要】 このコマンドは非常に危険です。実行前にSSDがSecure Eraseに対応しているか、パスワード設定が必要かなどの仕様を必ず確認し、手順を完全に理解してください。対象デバイス名を絶対に間違えないでください。誤った操作は回復不能なデータ損失を引き起こします。自己責任において慎重に実行してください。
NVMe SSDの場合: nvme-cli
ツール (format
/ sanitize
)
NVMe接続のSSDでは、nvme-cli
ツールを用いた format
または sanitize
コマンドを使用します。
コマンド例 (実行には細心の注意が必要):
方法1: NVMe Format (一般的なユーザーデータ消去)
# ユーザーデータ領域をセキュアに消去する設定 (SES: 1)
sudo nvme format /dev/nvmeXnY -s 1
方法2: NVMe Sanitize (より強力な消去オプション、ブロック消去の例)
# ブロック消去を実行する Sanitize Action (2)
sudo nvme sanitize /dev/nvmeXnY -a 2
/dev/nvmeXnY
は対象のNVMe SSDデバイス名に置き換えてください (例:/dev/nvme0n1
)。nvme format -s 1
は一般的なユーザーデータ消去に適しています。nvme sanitize
はより多様で強力な消去方法を提供します。詳細はman nvme-format
やman nvme-sanitize
で確認してください。- 【極めて重要】 これらのコマンドも非常に危険です。対象デバイス名を絶対に間違えないでください。誤った操作は回復不能なデータ損失を引き起こします。実行前にSSDの仕様やコマンドのマニュアルを確認し、自己責任において慎重に実行してください。
その他の代替手段・事前対策
- 製造元提供のツール: 一部のSSDメーカーは、専用のデータ消去ツールを提供しています。メーカーのウェブサイト等で確認してください。
- ディスク全体の暗号化 (事前対策): OSインストール時にディスク全体をLUKSなどで暗号化しておけば、将来的にデータを破棄する際に、暗号化キーを破棄・消去するだけで、データ全体の復号が極めて困難になります。これはデータ漏洩に対する強力な事前対策となります。