【Linux】任意のサイズのダミーファイルを作成する方法【dd】

Linux

とあるシステム開発の結合試験で、
試験条件として「ディスク使用量90%以上」の環境を用意する必要がありました。
すでにディスク使用量が逼迫している環境であれば、試験条件を整えるのは比較的容易かと思います。
それはそれでどうなんだ感が否めないですが……。

しかし、ディスクに十分な空きがある環境で意図的に使用量を増やそうとすると、なかなか骨が折れます。
限られた時間の中で試験を進める以上、サクッとできるならそれに越したことはありません。

そんなときに役に立つのが、ddコマンドです。
本記事では、ddコマンドを使って同じような環境をすぐに再現できる手順を解説します。

ddコマンドとは

ddコマンドは、ファイルやデバイスをブロック単位で読み書きを行うコマンドです。
読み込み元(入力ファイル)と書き込み先(出力ファイル)を指定することで、
データをそのままコピーすることができます。

この特性を利用することで、任意のサイズのダミーファイルを作成できます。

ddコマンドの基本構文

dd if=入力ファイル of=出力ファイル bs=ブロックサイズ count=ブロック数

よく使うオプション

コマンドで指定する主なオプションの詳細は、以下のとおりです。

オプション説明
if読み込み元(入力ファイル)
of書き込み先(出力ファイル)
bsブロックサイズ(Byte単位)
countコピーするブロック数

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

実例:10MBのダミーファイルを作成

例えば、約10MBのダミーファイルを作成する場合は、
ダミーファイルを配置したいディレクトリ上で次のようにコマンドを実行します。

$ dd if=/dev/zero of=test bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.168181 s, 62.3 MB/s

ポイント

  • if=/dev/zero は、常に ヌル文字(\0)を返す特殊なファイルです。
  • of=test は、作成するファイル名
  • bs=1M は、1ブロックあたり 1MB
  • count=10 で10ブロック分 → 合計 10MB のファイルが作成されます。

※ファイルサイズは bs × count で決まります。
 例えば、bs=512KB count=20 としても、同じく 10MB のファイルを作成できます。

作成後のディレクトリ例:

$ ll
-rw-r--r-- 1 user user 10485760 Jan 10 12:52 test

この方法を使うことで、「ディスク使用量が多い状態」を短時間で簡単に用意できます。

実行時の注意点(重要)

ddコマンドは指定した内容をそのまま書き込むコマンドであるため、
実行する環境やディレクトリに注意が必要です。

  • 空きディスク容量が十分にあることを必ず事前に確認してください
  • 誤って重要なディレクトリやファイルを指定しないよう注意してください
  • 大容量のファイルを作成する場合、ディスクI/Oに負荷がかかります
  • 本番環境での実行は避け、検証用の環境で使用することをおすすめします
  • 同名のディレクトリが存在する場合は、エラーとなります
  • 同名のファイルが存在する場合、ファイルが上書きされます。

まとめ

この記事では、ddコマンドを使った任意のサイズのダミーファイルを作成する方法をまとめました。

ddコマンドを利用することで、次のことが可能です。

  • ブロックサイズと回数を指定することで、任意のサイズのダミーファイルを作成できる
  • ディスク使用量を意図的に増やした試験環境を短時間で用意できる

結合試験や負荷試験など、ディスク使用量を増やす必要がある場面では、
今回紹介した方法を活用することで効率よく試験環境を整えることができます。

なお、ddコマンドは強力なコマンドであるため、
実行する環境や指定するパスには十分注意した上で利用してください。

また、個別のコマンド操作だけでなく、
Linuxコマンド全体の基本を確認したい方はこちらの記事もご覧ください。
【初心者向け】Linuxでよく使う基本コマンドまとめ|最初に覚えておきたい操作一覧

コメント