このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】ダミーファイルを作成する:ddコマンド

ダミーファイルをddコマンドで作成するメリット

 Linuxシステムやストレージの管理において、ダミーファイル(仮のデータファイル)の作成は、テストやベンチマーク、ディスク領域のシミュレーションなど、さまざまな場面で役立ちます。ddコマンドを使用することで、任意のサイズや内容のダミーファイルを簡単に作成することができ、システム管理者や開発者にとって貴重なツールとなります。

カスタマイズ可能なサイズ

 「dd」コマンドを使用すると、ファイルのサイズを正確に指定してダミーファイルを作成できます。これにより、特定のサイズのファイルを簡単に生成できます。

高速性

 「dd」コマンドはシステムのパフォーマンスを最大限に活用して、大容量のファイルを短時間で作成できます。

シンプルさ

 「dd」コマンドはシンプルな構文を持ち、必要なオプションを指定するだけで簡単にダミーファイルを作成できます。

柔軟性

 「dd」コマンドは様々な入力ソースを使用してダミーファイルを作成できます。例えば、「/dev/zero」や「/dev/urandom」などを使用して、ゼロフィルまたはランダムデータでファイルを作成できます。

ddコマンドを使用したダミーファイルの作成方法

基本的な使用例

ゼロフィルのダミーファイルを作成する

dd if=/dev/zero of=dummyfile bs=1M count=100

 このコマンドは、「/dev/zero」からデータを読み取り、100MBのゼロフィルされたダミーファイルを作成します。

dd if=/dev/zero of=dummyfile bs=1M count=100
オプションの説明
オプション説明
if入力ファイル(input file)。例:/dev/zeroはゼロバイトを生成します。
of出力ファイル(output file)。作成するダミーファイルの名前を指定します。
bsブロックサイズ(block size)。データを読み書きする単位を指定します。例:1Mは1メガバイト。
countコピーするブロックの数を指定します。これにより、ファイルのサイズが決定されます。
オプションの説明

ゼロバイトの無限ストリームとは

 ゼロバイトの無限ストリームとは、終わりのないゼロバイト(0x00)を生成し続けるデータストリームのことです。LinuxおよびUnix系オペレーティングシステムでは、これは通常、特殊ファイルである「/dev/zero」を介して提供されます。

 「/dev/zero」は、読み取り時に無限にゼロバイトを返す特殊ファイルです。これにより、ゼロで埋められたダミーファイルやバッファを簡単に作成することができます。

ランダムデータの無限ストリームとは

 ランダムデータの無限ストリームとは、終わりのないランダムなデータを生成し続けるデータストリームのことです。LinuxおよびUnix系オペレーティングシステムでは、これは通常、特殊ファイルである 「/dev/urandom」や 「/dev/random」を介して提供されます。

具体的な例と解説

1.100MBのダミーファイルを作成する

dd if=/dev/zero of=dummyfile bs=1M count=100

・「dd if=/dev/zero of=dummyfile bs=1M count=100」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ dd if=/dev/zero of=dummyfile bs=1M count=100
100+0 レコード入力
100+0 レコード出力
104857600 bytes (105 MB, 100 MiB) copied, 0.0561691 s, 1.9 GB/s
user01@ubuntu-vm:~$ ls -l
合計 1151020
-rw-rw-r-- 1 user01 user01  104857600  6月  1 22:33 dummyfile
drwx------ 4 user01 user01       4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 公開
オプション説明
if=/dev/zeroゼロバイトの無限ストリームを入力ソースとして使用します。
of=dummyfile作成するファイルの名前をdummyfileとします。
bs=1M1メガバイトのブロックサイズを使用します。
count=100100ブロック分のデータをコピーします。合計で100MBのファイルが作成されます。
オプションの説明

2.1GBのランダムデータのダミーファイルを作成する

dd if=/dev/urandom of=randomfile-1G bs=1M count=1024

・「dd if=/dev/urandom of=randomfile-1G bs=1M count=1024」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ dd if=/dev/urandom of=randomfile-1G bs=1M count=1024
1024+0 レコード入力
1024+0 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.80844 s, 382 MB/s
user01@ubuntu-vm:~$ ls -l
合計 1151020
-rw-rw-r-- 1 user01 user01  104857600  6月  1 22:33 dummyfile
-rw-rw-r-- 1 user01 user01 1073741824  6月  1 22:34 randomfile-1G
drwx------ 4 user01 user01       4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 公開
オプション説明
if=/dev/urandomランダムデータの無限ストリームを入力ソースとして使用します。
of=randomfile-1G作成するファイルの名前をrandomfile-1Gとします。
bs=1M1メガバイトのブロックサイズを使用します。
count=10241024ブロック分のデータをコピーします。合計で1GBのファイルが作成されます。
オプションの説明

3.100MBのランダムデータのダミーファイルを作成する

dd if=/dev/urandom of=randomfile-100M bs=1M count=100

・「dd if=/dev/urandom of=randomfile-100M bs=1M count=100」コマンドを実行し、「ls -l」コマンドで確認します。

user01@ubuntu-vm:~$ dd if=/dev/urandom of=randomfile-100M bs=1M count=100
100+0 レコード入力
100+0 レコード出力
104857600 bytes (105 MB, 100 MiB) copied, 0.225623 s, 465 MB/s
user01@ubuntu-vm:~$ ls -l
合計 1253420
-rw-rw-r-- 1 user01 user01  104857600  6月  1 22:33 dummyfile
-rw-rw-r-- 1 user01 user01  104857600  6月  1 22:39 randomfile-100M
-rw-rw-r-- 1 user01 user01 1073741824  6月  1 22:34 randomfile-1G
drwx------ 4 user01 user01       4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ダウンロード
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 テンプレート
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 デスクトップ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ドキュメント
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ビデオ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ピクチャ
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 ミュージック
drwxr-xr-x 2 user01 user01       4096  1月  1 10:51 公開
オプション説明
if=/dev/urandomランダムデータの無限ストリームを入力ソースとして使用します。
of=randomfile-100M作成するファイルの名前をrandomfile-100Mとします。
bs=1M1メガバイトのブロックサイズを使用します。
count=100100ブロック分のデータをコピーします。合計で100MBのファイルが作成されます。
オプションの説明

作成したファイルの削除

この演習で作成したファイルを削除します。

・「rm dummyfile randomfile*」コマンドを実行して、「ls」コマンドで削除されたかを確認します。

user01@ubuntu-vm:~$ rm dummyfile randomfile*
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 「dd」コマンドは、ダミーファイルを迅速かつ簡単に作成するための強力なツールです。正確なサイズを指定してファイルを生成することができ、テストや検証、バックアップの目的で広く利用されています。必要に応じて様々なオプションを駆使し、効率的にダミーファイルを作成しましょう。