Linuxのddコマンドを使いこなす!(応用編)

ddコマンドの使い方を整理します。

任意のファイルサイズのファイルの作成

ddコマンドを使用して任意のファイルサイズのファイルを作成できます。 テストなどで重宝するでしょう。以下は、10MBのファイルを作成する例です。

$ dd if=/dev/zero of=10mb bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.00783086 s, 1.3 GB/s
$ ls -l 10mb
-rw-r--r-- 1 sysadm001 sysadm001 10485760 Jan 29 15:46 10mb

外部デバイスへの書き込み

外部デバイスへの書き込みに使用するケースの例になります。

接続したメディアのデバイスファイルの確認

dfコマンドを使用して接続したメディアのデバイスファイルを確認します。
まず、接続しない状態を確認します。

$ df -h

メディアを接続し、再度dfコマンドを使用して増えた行を確認し、接続したデバイスファイルを確認します。

$ df -h

ファイルシステムがマウントされている場合は、アンマウントします。
<コマンド例>
デバイスファイルが"/dev/sdX1"の場合

$ umount /dev/sdX1

ファイルシステムがアンマウントされたことを確認します。

$ df -h

ddコマンドで外部デバイスの内容をコピー

ddコマンドを使用して、外部デバイスの内容をコピーできます。

【パラメータ】
・入力デバイス(例:/dev/sda)
・出力デバイス(例:/dev/sdb)
・ブロックサイズ(例:1M)

<コマンド例>

$ sudo dd if=/dev/sda of=/dev/sdb bs=1M

ddコマンドで外部デバイスの内容を消去

ddコマンドを使用して、外部デバイスの内容を0で埋めで消去できます。
【パラメータ】
・内容を消去するデバイス(例:/dev/sda)
・ブロックサイズ(例:1MB)

<コマンド例>

$ sudo dd if=/dev/zero of=/dev/sda bs=1M

ddコマンドの進行状況を確認

進行状況を確認したい場合は、プロセス番号を確認して"USR1"シグナルを送ります。
<コマンド例>

$ ps -ef | grep "dd if" | grep -v grep | grep -v sudo
$ sudo kill -USR1 <process number>