ddコマンド

ddコマンド

データのコピーや変換「dd」コマンド

ddコマンドは、LinuxおよびUnix系オペレーティングシステムで利用される強力なデータ転送ツールです。このコマンドは、データをコピーおよび変換するために使用され、ディスクイメージの作成、バックアップ、データの復元など、さまざまな用途で役立ちます。ddコマンドの概要と基本的な使い方について解説します。

ddコマンドの概要

ddコマンドは、ブロックデバイスやファイル間でデータをコピーおよび変換するためのツールです。ddは、データを読み込み、指定された形式で出力します。このコマンドは、特定のバイト数やブロック数を操作する際に非常に有用です。

基本構文

dd if=<入力ファイル> of=<出力ファイル> [オプション]
  • if: 入力ファイル(input file)
  • of: 出力ファイル(output file)

ddコマンドの基本的な使い方

1. ディスク全体のバックアップを作成する

ディスク全体を別のディスクにコピーする場合に使用します。例えば、/dev/sdaの内容を/dev/sdbにコピーする場合:

dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync
  • bs=64K: ブロックサイズを64KBに設定
  • conv=noerror: 読み取りエラーが発生しても処理を続行
  • conv=sync: 入力ブロックが完全でない場合は、出力ブロックを補完

2. ディスクイメージファイルの作成

ディスクの内容をイメージファイルに保存します。例えば、/dev/sdaの内容をイメージファイルdisk_image.imgに保存する場合:

# dd if=/dev/sda of=disk_image.img bs=64K

3. ディスクイメージファイルをディスクに復元

作成したディスクイメージファイルを元のディスクに復元します。例えば、disk_image.imgの内容を/dev/sdaに復元する場合:

# dd if=disk_image.img of=/dev/sda bs=64K

4. ファイルのコピーと変換

テキストファイルの文字コードを変換しながらコピーする場合に使用します。例えば、input.txtを大文字に変換してoutput.txtに保存する場合:

# dd if=input.txt of=output.txt conv=ucase
dd if=input.txt of=output.txt conv=ucase

特定サイズのランダムデータを生成する場合に使用します。例えば、1GBのランダムデータファイルrandom_data.binを作成する場合:

# dd if=/dev/urandom of=random_data.bin bs=1M count=1024
  • if=/dev/urandom: ランダムデータを入力として使用
  • bs=1M: ブロックサイズを1MBに設定
  • count=1024: 1024ブロック(1GB)を作成

まとめ

ddコマンドは、データのコピーや変換、ディスクのバックアップや復元など、多用途に使用できる強力なツールです。基本的な使い方を理解することで、システム管理やデータ処理が効率的に行えるようになります。ddコマンドの使用時には、誤った指定がデータの損失を招く可能性があるため、慎重に操作することが重要です。正確なコマンド構文とオプションの理解に努め、必要に応じてman ddで詳細なドキュメントを参照してください。