SDカードの空き領域を 0で埋める(Raspberry Pi 上)

ユースケース: SD カードのイメージファイルを作成する前に空き領域を 0 で埋めておくことで,圧縮後のイメージファイルのサイズを小さくする.

空き領域を 0 で埋める操作は,ファイルシステム上の未使用領域を上書きするものである.SD カードは内部で ウェアレベリング を行うため,この操作によって過去のデータが物理的にすべて消去されるとは限らない.データの消去を目的とする場合は,カード全体の上書きや物理的な破壊を行う.

【サイト内の Raspberry Pi OS 関連ページ】

小型コンピュータ Raspberry Pi について: 別ページ »にまとめ

  1. ファイルシステムの確認

    空き容量を確認する.

    df -h
    
  2. 空き領域を 0 で埋める.

    ダミーファイルを作成する.ファイル名は何でも良い.

    書き込みは空き容量がなくなるまで続く.しばらく待つ.完了時に「デバイスに空き領域がありません」(No space left on device)というメッセージが表示されるのは,想定どおりの動作である.

    sudo dd if=/dev/zero of=/home/mydummy bs=1M
    
  3. ファイルシステムを再度確認

    使用率が 100% になっている.

    df -h
    
  4. ダミーファイルの削除

    削除後,df -h で空き容量が元に戻っていることを確認する.

    sudo rm /home/mydummy
    df -h