ddとは何か?
ddは「Data Description」または「Disk Dump」の略として知られています。一般的なコピー(`cp`)とは異なり、ハードウェアデバイス(ディスク、USB)を直接操作したり、元のデータをビット単位でそのまま複製する際に使用します。
主要な構文構造
オプションの前にハイフン(-)を付けず、`キー=値`の形式で使用します。
- if (Input File): 入力元です。(元のファイル、ISOイメージ、読み込むディスクデバイスなど)
- of (Output File): 出力先です。(コピー先の場所、USBデバイス、バックアップファイルなど)**最も注意すべきオプションです。**
- bs (Block Size): 一度に読み書きするデータサイズです。(例:4M、1G)。速度に影響します。
⚠️ 警告: 使用前の確認必須
`of=`(出力先)に誤ってシステムハードディスクを指定すると、オペレーティングシステムとデータが一瞬で消去されます。`lsblk`コマンドでデバイスパス(例:`/dev/sdb`)を必ず確認してください。
主要オプション (Shell)
ddはオプションの順序が重要ではありませんが、通常は`if` > `of` > `bs` > `status`の順で記述します。
1. 入出力の指定 (必須)
2. サイズと速度の制御
3. データ変換と制御
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`dd` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用シナリオの例
実務でよく使われるddコマンドのパターンです。
起動USBの作成
sudo dd if=ubuntu-22.04.iso of=/dev/sdb bs=4M status=progress
ISOファイルをUSBデバイス(`/dev/sdb`と仮定)に書き込みます。`bs=4M`は速度向上を目的としています。
ディスク全体のバックアップ(イメージ生成)
sudo dd if=/dev/sda of=~/backup.img bs=64K status=progress
`/dev/sda`ディスク全体を`backup.img`ファイルとして作成します。
ディスクの完全消去 (Wiping)
sudo dd if=/dev/urandom of=/dev/sdX bs=1M status=progress
ディスク(`/dev/sdX`)をランダムなデータで上書きし、復元不可能にします。
特定の容量の空ファイル作成
dd if=/dev/zero of=testfile_1GB bs=1G count=1
テスト用に1GBの空ファイル(0で埋められた)を生成します。
ヒント & 注意事項
便利なヒント
- sudo 権限: ハードウェアデバイス(/dev/...)を操作する際は、必ず`sudo`が必要です。
- /dev/zero と /dev/urandom: `if=/dev/zero`は無限に0を出力し、`if=/dev/urandom`は無限にランダムデータを出力する特殊ファイルです。
- USBデバイスの検索: USBを接続する前後で`lsblk`コマンドを入力し、新しく現れたデバイス名(例:sdb, sdc)を正確に把握する必要があります。