Linuxコマンド辞典 ddコマンド(ファイル・ディレクトリ)

ファイルを変換してコピーするコマンド ddの概要や基本的な使用方法を記載。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

使用方法

ファイルをブロック単位でコピーします。実際にはファイル変換のために使われることはあまりなく、直接ディスクに書き込んだり、任意のサイズのファイル作成したり、ディスクを丸ごとコピーしたりする際に使われます。簡単なファイルコピーやデバイスファイル(HDD,CD-ROM)からファイルへのコピー、ディスクイメージをデバイスに出力際に使用します。また、KVMやXenの仮想マシンのイメージ作成などにも作成にも利用できます。

書式

$ dd [オプション] 

オプション

if=入力ファイル入力側ファイルを指定する(デフォルトは標準入力)
of=出力ファイル出力側ファイルを指定する(デフォルトは標準出力)
ibs=バイト数指定したバイト数ずつ読み込む(デフォルトは512バイト)
obs=バイト数指定したバイト数ずつ書き込む(デフォルトは512バイト)
bs=バイト数1回に読み書きするブロックサイズを指定する(デフォルトは512バイト)
count=回数回数分の入力ブロックをコピーする
conv=オプションファイル変換方法を指定する。
オプション一覧

指定可能な主なオプション(「,」で複数指定可能)

オプション説明
lcase大文字を小文字に変換する
ucase小文字を大文字に変換する
nocreat出力ファイルを作成しない
noerrorエラーが出ても無視する
seek=ブロック数指定ブロック数スキップしてから出力する
skip=ブロック数指定ブロック数スキップしてから入力する
status=[noxferinone]noxferの場合はI/O状態を表示しない、noneはすべて表示しない

サンプル

サイズが5MiB(1Mib×5)のファイルswapを作成する

$ dd if=/dev/zero of=/tmp/swap bs=1M count=5

/dev/zero

ゼロデータ(特殊文字\D)を出力し続ける特殊ファイル

1024の累乗の場合はK,M,Gという単位。1000の累乗の場合はKB,MB,GBという単位で指定します。

ディスクを丸ごとコピーする

サンプル

$ dd if=/dev/sdb of=/dev/sdc

ISOイメージファイルをUSBメモリに書き込む

インストーラーが起動するブートイメージをUSBメモリ等に書き込む

サンプル

$ dd if=/tmp/image.iso of=/dev/sdb bs=512k

ディスクイメージを作成してマウントする

サンプル

#ブロックサイズを1MB、1024回カウントして1GBのイメージを作成
$ dd if=/dev/zero of=/xen/disk01.img bs=1M count=1024
#イメージにext4ファイルシステムを作成
$ mkfs.ext4 -j -F /xen/disk01.img
#ループバックマウントオプションを利用してマウントする。
$ mount -o loop /xen/disk01.img /mnt/xen

ファイルを大文字から小文字に変換する

$ dd conv=lcase if=sample1.txt of=sample2.txt

サンプル

[test@ ~]$ cat sample1.txt 
ABCDEFG
1234567

[test@ ~]$ dd conv=lcase if=sample1.txt of=sample2.txt
0+1 records in
0+1 records out
17 bytes (17 B) copied, 0.00025454 s, 66.8 kB/s
[test@ ~]$ cat sample2.txt 
abcdefg
1234567

[test@ ~]$