概要
低水準でデータを複写、変換します。ディスクイメージ作成や復旧で強力ですが、誤用時の破壊力も大きいコマンドです。
基本構文
dd if=入力元 of=出力先 [オプション]...詳細解説
ddは、入力元から出力先へブロック単位でデータを読み書きするコマンドです。ファイル同士の複写だけでなく、デバイス、イメージファイル、ゼロ埋め、ブート領域の退避など、低水準の操作に使われます。
実務では、ディスクイメージ取得、USBメディア作成、バックアップ、検証用の大きなファイル作成で役立ちます。一方で、出力先を誤ると既存データを上書きしてしまうため、Linuxコマンドの中でも特に慎重さが必要です。
実行前には if と of の向き、対象デバイス名、bs、count の意味を必ず確認します。status=progress で進捗表示を出すと、長時間処理でも状況を把握しやすくなります。
このコマンドを使う場面
ディスクイメージ作成、USBメディア書き込み、ゼロ埋め、低水準バックアップ、性能検証用ファイル作成に使います。
まず安全に試す方法
1. dd if=/dev/zero of=test.img bs=1M count=10 status=progress
2. ls -lh test.img
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
/dev/zeroから通常ファイルへ書き出し、bsとcountの意味を理解します。
資格試験との関連
-
LinuC レベル1
範囲: 1.02.2 基本的なファイル管理の実行根拠: officialLinuCレベル1では、ddの基本理解が重要です。
-
LinuC レベル2
範囲: 2.02 ストレージ管理根拠: officialLinuCレベル2でも、低水準複写や障害対応でdd理解が役立ちます。
-
LPIC-1
範囲: 103.3 基本的なファイル管理の実行根拠: officialLPIC-1では、ddは基本ファイル管理の一部として扱われます。
-
LPIC-2
範囲: ストレージ管理根拠: editorialLPIC-2相当の運用でも、ddは復旧や移行で重要です。
実行結果サンプル
-
dd if=/dev/zero of=test.img bs=1M count=10 status=progress10MiBのファイルが作成される
戻り値コード
- 0 正常終了。処理に成功しました。
- >0 対象不存在、権限不足、不正な引数などで処理できませんでした。
使用例
dd if=/dev/zero of=test.img bs=1M count=100 status=progresssudo dd if=image.iso of=/dev/sdb bs=4M status=progress conv=fsync
よくあるエラー
-
ディスクを壊してしまった 原因: of指定を誤りました。対処: 実デバイスへ書く前にlsblkで対象を確認し、可能なら読み取り専用やテスト環境で試します。
-
処理が止まって見える 原因: 進捗表示なしの長時間処理です。対処: status=progressを付けるか、I/O状況を別手段で確認します。
導入・互換性情報
POSIX系で広く使えますが、status=progressなどはGNU系で便利な拡張です。低水準複写ゆえに環境差よりも対象指定ミスのほうが大事故要因になりやすいです。
注意点 / セキュリティリスク
危険度は非常に高いです。特にof指定の誤りは既存データの即時破壊につながります。実行前に対象を三回確認するくらいが適切です。
FAQ
-
Q. cpでは駄目ですか。 A. 通常ファイル同士ならcpで十分ですが、低水準の生データ複写やイメージ操作ではddが必要な場面があります。
-
Q. 一番危険なのは何ですか。 A. ofに誤ったデバイスを指定することです。
関連用語
参照リンク
- カテゴリー: Storage And Filesystems
- レベル: Practical
- 対応試験: LinuC, LinuC レベル1, LinuC レベル2, LPIC, LPIC-1, LPIC-2, 共通基礎