dd コマンド
dd
コマンドは、あるファイルやデバイスから別のファイルやデバイスに指定のバイトサイズ単位で読み書きできます。
このコマンドはほかの一般的な Unix系 コマンドのオプション指定とは異なるフォーマットを使います。
dd
コマンドは cp
コマンドと同じようにファイルのコピーにも使えます。ですが、cp
コマンドはファイルを対象にしかできないのに対し、dd
コマンドはデバイスを対象にコピーができます。したがってデバイス(ハードディスク)単位のバックアップなどにも使用することが可能です。
dd コマンドの基本的な使い方
dd if=[入力ファイル] of=[出力ファイル] bs=[バイトサイズ] count=[入力ブロック数]
基本的には入力ファイルの内容を使って出力ファイルを作成します。その時、指定したバイトサイズ*入力ブロック数のデータサイズでコピーします。
入出力のファイルはファイルだけではなくデバイスを指定できます。入力をハードディスクにすれば、ハードディスクの内容をバックアップできますし、バックアップファイルを入力としてハードディスクに出力すればリストアが可能になります。
任意サイズのダミーデータファイルを作成する
dd
コマンドはダミーデータを用意したいときにも使うことができます。
任意サイズのNULLファイル
バイトサイズと入力ブロック数を指定して任意サイズのファイルを作成できます。例えば入力として /dev/zero
を使えば任意サイズのNULLデータ(0)で埋まったファイルを作成できます。
# 3MBのファイルを作成
$ dd if=/dev/zero of=null_3MB bs=1M count=3
3+0 records in
3+0 records out
3145728 bytes (3.1 MB, 3.0 MiB) copied, 0.0078694 s, 400 MB/s
# ファイル確認
$ ls -l null_3MB
-rwxrwxrwx 1 tm tm 3145728 Mar 6 22:28 null_3MB
バイトサイズは 1M
や 1K
、1G
のように単位付きで指定できます。数字だけなら単位はバイトになります。
任意サイズのランダムデータ
/dev/urandom
を使ってランダムデータを入力すれば、ランダムなデータの任意サイズファイルを作成できます。
# ランダムデータの20バイトのファイルを作成
$ dd if=/dev/urandom of=my_random bs=1 count=20
20+0 records in
20+0 records out
20 bytes copied, 0.0053017 s, 3.8 kB/s
# ランダムデータをbase64形式の文字列で確認
$ cat my_random | base64
ZYU4yMtet9tV8HRCb6K815ANmkY=
コメントを書く