連載
» 2022年03月16日 05時00分 公開

【Windows 11対応】巨大サイズのファイルをfsutilコマンドで簡単に作るTech TIPS

fsutilコマンドを使うと、数百GBや数TBといったサイズの巨大なファイルを非常に簡単に、素早く作成できる。こうして作成したファイルを使うと、ディスク上の領域を強制的に確保したり、ディスクやネットワークの性能測定などに利用したりできる。

[デジタルアドバンテージ,著]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

より正確なパフォーマンスを測定するために、転送完了まで時間のかかる巨大なファイルを用意したい 巨大サイズのファイルを「fsutil」コマンドで簡単かつ素早く作る

対象OS:Windows 8.1/Windows 10/Windows 11、Windows Server 2012/Windows Server 2012 R2/Windows Server 2016/Windows Server 2019/Windows Server 2022


巨大なファイルを使ってディスクやネットワークの速度を測定する

 ディスクやネットワークなどの性能(速度)がどのくらい出ているかを手っ取り早く調べるには、ある程度大きなデータファイルを用意しておいて、その読み書き速度や送受信速度を調べると簡単だ。

 厳密なベンチマークツールがなくても、ファイルをコピーさせながら、その速度をタスクマネージャーやパフォーマンスモニターで見たり、完了するまでの時間を測定したりするだけでも大まかな速度は計測できる。

ファイルのコピーによる読み書き速度の測定 ファイルのコピーによる読み書き速度の測定

 これを行うには、数十〜数百GB以上のサイズのテストファイルが必要になる。本Tech TIPSでは、「fsutil.exe」というコマンドを利用して、こうした巨大なファイルを簡単かつ素早く作成する方法を紹介する。

fsutilコマンドで巨大なファイルを作成する

 Windows OSで巨大なファイルを作成するには「fsutil.exe」というコマンドがとても便利だ。これはコマンドプロンプトなどで利用できるCUIのツールで、Windows OSには標準でインストールされているため、事前の作業なしにすぐ使える。

 fsutilには数多くのサブコマンド(オプション)が存在する。その中に「指定されたサイズのファイルを作成する」という非常に単純な機能のサブコマンドがある。

fsutil file createnew <ファイル名> <サイズ>

<ファイル名>: 作成したいファイルの名前。すでに同名のファイルやフォルダが存在しているとエラーなので、必要ならあらかじめ削除しておくこと
<サイズ>: 作成するファイルのサイズ。10進数か、「0x」で始まる16進数形式で指定する。指定可能な最大サイズは対象となるファイルシステムや空き領域サイズによる



 このコマンドでは、指定された名前のファイルを、指定されたサイズで作成する。例えば100GBちょうど(100×1024×1024×1024=107,374,182,400=0x19 0000 0000)のファイル「testfile」を作成するには、次のようにする。

※10進数指定の場合
fsutil file createnew testfile 107374182400

※16進数指定の場合
fsutil file createnew testfile 0x1900000000



fsutilで100GBのファイルを作成する fsutilで100GBのファイルを作成する
fsutil file createnewコマンドを使うと、ボリュームいっぱいになるような大きなファイルでも簡単に素早く作成できる。これはWindows 11上での実行例。Windows OSのバージョンによって、fsutilで利用できるサブコマンドは少しずつ異なる。

 このコマンドを実行する場合、基本的には管理者権限は不要である(一部のWindows OSでは必要。その場合は管理者権限でコマンドプロンプトを起動して実行すること)。書き込みが許可されていて、ボリューム上に作成のための十分な空き領域があればファイルを作成できる。

 このコマンドを使ってファイルを作成する場合、対象となるファイルがNTFSやReFSボリューム上ならば、どんなに大きなファイルでも、すぐに作成される(Tech TIPS「NTFSとReFSの違い」も参照)。ボリュームの空き領域が少なかったり、非常に低速なマシンなどを使っていたりするとしばらく待たされることがあるものの、それでもせいぜい数秒以内で作成される。

 一方、FATファイルシステムやexFAT上だと、指定したファイルサイズが大きいほど作成完了までに時間がかかる。特にFAT/exFATでフォーマットされたSDカードやUSBメモリでは、作成がなかなか終わらないこともあるので注意したい。

[注意]fsutilで作成されたファイルの内容はゼロデータのみ

 fsutilコマンドで作成されたファイルを読み出すと、全て「0(ゼロ)」ばかりが返ってくる。16進数でいうと、「0x00」というバイトデータ(ゼロデータ)ばかりが詰まったファイルに見える。ゼロ以外の値を返すようにはできない。

 また、このファイルから読み出しを行っても、実際にディスクからゼロデータ(が含まれたブロック)を読み出してくることはない。ディスク上のブロックとしては確保されているものの、その部分のデータは「無効(validではない)」という状態になっている。そのため、ディスクにアクセスすることなく、ゼロデータが直ちに返される(仕組みについては後述)。

 このような特性があるため、読み出し速度の測定などに使う場合は注意が必要である(一瞬で読み出しが完了するので、実際よりはるかに高い速度が計測されてしまう)。いったん別のファイルにコピーするか(こうすると実際にディスクに書き込まれ、以後は本当にディスクから読み出すことになる)、負荷なしでゼロデータを読み出せる特殊なファイルと割り切って、主に書き込みテストに利用するとよいだろう。なお、ネットワーク越しに読み出した場合はネットワーク部分がボトルネックになるので、実際にディスクから読み出しているかどうかは問題にはならないだろう。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。