fsutil - ファイルシステムを調べる・操作する
目次
fsutilコマンドは、NTFS などのファイルシステムの情報を調べたり、低レベルな操作を行ったりするコマンドです。ドライブの空き容量の確認、指定サイズのファイルの作成、ハードリンクの確認、ボリュームの状態確認など、通常のコマンドでは扱いにくい作業をまとめて行えます。
fsutilは、fsutilの後ろに「サブコマンド」と「さらに細かい指示」を続けて使います。
fsutilのサブコマンドの多くは、管理者として実行したコマンドプロンプトでないと「アクセスが拒否されました」などのエラーになります。本記事のサンプルも、管理者として実行したコマンドプロンプトで試してください。実行方法は関連記事を参照してください。
fsutilコマンドの基本構文
fsutil <サブコマンド> [<さらに細かい指示>] [<引数>]
主なサブコマンドは次のとおりです。
| サブコマンド | できること |
|---|---|
volume | ボリュームの空き容量の確認など |
file | 指定サイズのファイルの作成など、ファイル単位の操作 |
hardlink | ハードリンクの作成・一覧表示 |
dirty | ボリュームの「ダーティ」状態の確認 |
fsinfo | ドライブの一覧、ボリュームやファイルシステムの情報 |
behavior | ファイルシステムの動作設定の確認・変更 |
引数を付けずにfsutilだけを実行するか、fsutil <サブコマンド>のように続きを省略して実行すると、使い方の一覧が表示されます。
fsutil
fsutil file
ドライブの空き容量を確認する
fsutil volume diskfreeにドライブ名を付けると、そのドライブの空き容量をバイト単位で表示します。
fsutil volume diskfree C:
表示される項目名や、数値の区切り文字、項目の数は、Windows の表示言語やバージョンによって変わります。上の出力は一例です。
エクスプローラーの表示と違って、fsutilは GB ではなくバイト数をそのまま表示します。1 GB は 1,073,741,824 バイトなので、表示された数値を約 10 億で割ると、おおよその GB 数が分かります。
空き容量をバッチファイルで確認する
空き容量の数値は 32 ビット整数の上限(約 2 GB)を大きく超えるため、set /aでは計算できません。この用途では、PowerShell で計算するのが確実です。
@echo off
rem C: の空き容量を GB 単位で表示する
powershell -NoProfile -Command "[math]::Round((Get-PSDrive C).Free / 1GB, 1)"
fsutilの出力は項目名が表示言語によって変わるため、バッチファイルで文字列として加工するのはおすすめしません。
dirコマンドの最終行にも、そのフォルダーがあるドライブの空きバイト数が表示されます。管理者権限が不要で手軽なので、確認だけが目的ならdirでも十分です。
指定したサイズのダミーファイルを作成する
fsutil file createnewを使うと、指定したバイト数のファイルをすばやく作成できます。ファイルの中身はすべて 0(ヌル文字)で埋められます。
fsutil file createnew <ファイル名> <サイズ(バイト)>
fsutil file createnew dummy.bin 1048576

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
アップロードの上限サイズを試したいときや、空き容量が少ない状態を再現したいときなど、テスト用にサイズが決まったファイルが必要な場面で役立ちます。
| 作りたいサイズ | 指定するバイト数 |
|---|---|
| 1 KB | 1024 |
| 1 MB | 1048576 |
| 100 MB | 104857600 |
| 1 GB | 1073741824 |
同名のファイルが既に存在する場合、fsutil file createnewはエラーになります。ファイルは上書きされないので、既存のファイルが壊れる心配はありません。
空のファイル(0 バイト)を作る方法は、関連記事を参照してください。
ハードリンクを調べる・作成する
ハードリンクとは、1 つのファイルの実体に、複数の名前(パス)を付ける仕組みです。fsutil hardlink listを使うと、指定したファイルに付いているすべての名前を確認できます。
fsutil hardlink list sample.txt
パスはドライブ名を除いた形で表示され、同じボリューム上の名前だけが対象です。ハードリンクを作成するにはfsutil hardlink createを使います。
fsutil hardlink create <新しい名前> <既存のファイル>
fsutil hardlink create C:\backup\sample-link.txt C:\work\sample.txt
ハードリンクの作成だけなら、mklink /Hでも同じことができます。mklinkではシンボリックリンクやジャンクションも作成できます。詳しくは関連記事を参照してください。ハードリンクは同じ NTFS ボリューム内でしか作成できません。
ボリュームの状態を確認する(dirty)
fsutil dirty queryは、ドライブがダーティ(不整合の疑いがある)状態かどうかを確認します。強制終了や停電などでファイルシステムが正常に閉じられなかった場合に、ダーティ状態になります。
fsutil dirty query C:
ダーティになっているドライブは、次回の起動時などに自動でチェックされます。手動でチェックしたいときは、chkdskを使います。
ドライブの一覧やボリュームの情報を表示する
fsutil fsinfoでは、接続されているドライブやボリュームの詳細を確認できます。
fsutil fsinfo drives
fsutil fsinfo volumeinfo C:
fsutil fsinfo ntfsinfo C:
ntfsinfoは、クラスターあたりのバイト数など、NTFS の内部情報を確認したいときに使います。
ファイルシステムの設定を確認する(behavior)
fsutil behavior queryでは、ファイルシステムの動作設定を確認できます。
fsutil behavior query disablelastaccess
fsutil behavior query disable8dot3
fsutil behavior setで設定を変更すると、システム全体の動作に影響します。多くの設定は再起動後に反映されます。確認(query)だけなら安全ですが、変更する場合は内容を理解したうえで行い、可能であれば事前に復元ポイントを作成しておきましょう。
まとめ
| やりたいこと | コマンド |
|---|---|
| ドライブの空き容量を確認する | fsutil volume diskfree C: |
| 指定サイズのダミーファイルを作る | fsutil file createnew dummy.bin 1048576 |
| ハードリンクの一覧を表示する | fsutil hardlink list sample.txt |
| ハードリンクを作成する | fsutil hardlink create 新しい名前 既存のファイル |
| ダーティ状態を確認する | fsutil dirty query C: |
| ドライブの一覧を表示する | fsutil fsinfo drives |
| ボリュームの詳細を表示する | fsutil fsinfo volumeinfo C: |