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 ユーティリティを使用しています。各オプションの意味は以下の通りです。

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

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

その他の代替手段・事前対策