ホーム > パッケージ・システム管理 > dd

dd: ファイルの変換とコピー

ddコマンドは、ファイルを変換およびコピーするために使用される強力なユーティリティです。主にディスクイメージの作成、パーティションのバックアップと復元、起動可能なUSBドライブの作成、ファイル内容の消去など、低レベルのデータ操作に利用されます。誤った使用はデータ損失を招く可能性があるため、細心の注意が必要です。

概要

ddは「disk dump」または「data duplicator」の略として知られており、ブロック単位でデータを読み書きする方式で動作します。入力ファイル(if)からデータを読み取り、出力ファイル(of)にコピーし、この過程で様々な変換(conv)やブロックサイズ(bs)オプションを適用できます。

主な機能

  • ディスク/パーティションイメージの作成と復元
  • 起動可能なメディアの作成
  • ファイルサイズの調整と内容の初期化
  • データ変換(例:大文字・小文字変換)

主なオプション

ddコマンドは、さまざまなオプションを通じて精密なデータ操作を可能にします。特に、入力(if)と出力(of)ファイルの指定が重要であり、ブロックサイズ(bs)とコピーするブロック数(count)によって操作範囲を制御します。

入力/出力の指定

ブロックサイズと数

変換とステータス

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`dd` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

ddコマンドは強力ですが、誤った使用は深刻なデータ損失を招く可能性があります。以下の例は一般的な使用法を示していますが、実際のシステムディスクに適用する際は、必ずバックアップを実行し、慎重に操作してください。

100MBのダミーファイルを作成

dd if=/dev/zero of=dummy.img bs=1M count=100

/dev/zeroから1MBのブロックを100個読み込み、「dummy.img」ファイルを作成します。

ディスクパーティションのバックアップ(注意が必要)

dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress

/dev/sda1パーティションの全体内容を「sda1_backup.img」ファイルにバックアップします。「status=progress」で進捗状況を表示します。**対象デバイスのパスを非常に慎重に確認してください。**

ファイル内容を0で上書き(セキュア削除)

dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc

既存の「myfile.txt」ファイルの内容を0で上書きします。「conv=notrunc」はファイルサイズを維持します。

ISOイメージから起動可能なUSBドライブを作成(非常に注意)

dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync

「ubuntu.iso」ファイルを「/dev/sdb」USBドライブにコピーして起動可能にします。**「of」に指定するデバイスパスを必ず確認してください。誤って指定するとシステムディスクが破損します。**「conv=fsync」は全てのデータをディスクに完全に書き込むようにします。

ファイルの特定部分をコピー

dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0

「input.txt」ファイルの51番目のバイトから100バイトを読み込み、「output.txt」ファイルの先頭にコピーします。(bs=1なのでskip/seekはバイト単位)

ヒントと注意点

ddコマンドは非常に強力なため、使用時には特別な注意が必要です。特に`if`と`of`オプションに誤ったデバイスやファイルを指定すると、システムデータが破損する可能性があります。

主な注意点

  • **対象の確認**: `if`と`of`に指定するパスを複数回確認してください。特に`/dev/sda`のようなデバイスファイルは致命的となる可能性があります。
  • **進捗状況**: `status=progress`オプションを使用して、操作の進捗状況をリアルタイムで確認してください。大容量の操作時に役立ちます。
  • **ブロックサイズ**: `bs`オプションはパフォーマンスに大きな影響を与えます。一般的に1M、4M、8Mなどが効率的です。
  • **データ損失のリスク**: `dd`は警告なしにデータを上書きできるため、重要なデータが含まれるディスクやパーティションに使用する際は、必ず事前にバックアップを実行してください。

pvコマンドとの併用

`dd`コマンド自体は進捗表示が限定的です。`pv` (Pipe Viewer) コマンドを併用すると、より詳細な進捗率、転送速度、完了予定時間などを確認できます。`pv`がインストールされていない場合は、まずインストールする必要があります。(例: `sudo apt install pv` または `sudo yum install pv`) **使用例:** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`


同じカテゴリのコマンド