fsutilコマンド自体に新たなサブコマンドが
さらに調べると、fsutil自体に「StorageReserve」(記憶域予約の管理)というサブコマンドが新たに作られていた。
Microsoftのウェブサイトにあるfsutil(現時点では唯一の公式ドキュメント)には、このサブコマンドは記載されていないが、fsutilのオンラインヘルプ(/?オプション)では、このサブコマンドが表示される。なお、このサブコマンドは、RS5に添付されたfsutilでも有効だった。おそらく以前より準備してきたのだと考えられる。
fsutil StorageReserve queryコマンドは、記憶域予約の状態を表示する。19H1では3つの領域(ID1~ID3)が表示されるが、RS5では何も表示されない。予約済み記憶域が有効になっているとこのうちIDが1のものに2~5GB(予約済み記憶域のサイズに依存。初期値は0xA0000000=2.5GBのようである)が予約される。
しかし、予約済み記憶域が無効のPCでは、ID1の割り当てはゼロのままになる。
これに対してIDが2の領域は、予約済み記憶域の有効、無効にかかわらず、百数十MBの領域が割り当てられており、IDが3の領域は、常に割り当てがゼロになっている。
なお記憶域予約には、「領域保証」(Space Guarantee)と「使用済み領域」(Space Used)がある。「領域保証」はおそらく予約クラスターにより確保されている部分であり、「使用済み意領域」は、実際にこの記憶域予約メカニズムで管理されているファイルの合計サイズだと思われる。
動作を見ると、使用済み領域が領域保証値を超えることもある。予約済み記憶域に関するマイクロソフトのブログによれば、予約済み記憶域に一時ファイルが入らない場合には、通常領域を使うとしているため、予約クラスターを使い切ったということなのであろう。
さらにfsutil StorageReserveは、各記憶域予約を使っているファイルの一覧を得ることもできる。実際にプレビュー版のアップデート処理中にID1に含まれるファイルを表示させてみたところWindiws Updateのダウンロードフォルダー(C:\Windows\SoftwareDistribution\Download\)やアップデートの作業用フォルダー(C:\$WINDOWS.~BT\)などにあるファイルがほとんどだった。
なお、ID2には、Windowsが標準的に利用すテンポラリフォルダー(C:\Windows\Tempなど)にある一時ファイルやログファイル(やC:\Windows\System32\winevt\Logs\など)などが含まれていた。こっちは、19H1だと常に動作しているようである。また、「設定」→「システム」→「ストレージ」→「システムと予約済み」の「予約済み記憶域」に表示される容量は、ID1とID2の「領域保証」を合計したものになっているようだ。
予約済み領域は、ある意味NTFSの新しい機能といえるだろう。パーティションを使わず、一時ファイル用の領域を確保し、Windowsが通常作る一時ファイルやWindows Updateによるシステムのアップデート時に利用することで、32GBストレージのPCでも外部ストレージを利用することなく、本体のみでのアップデートを可能にするわけだ。
なお、プレビュー版であるBuild 14317へのアップデートでは、外部ストレージを使わずにアップデートが可能となったが、アップグレード後に予約済み記憶域は8.05GBとなり、Cドライブの空きスペースは5.32GB(Windows.oldなどはすべて削除)となった。
この連載の記事
-
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している -
第417回
PC
Windows 11のスマートフォン連携機能をあらためて使ってみる -
第416回
PC
Windowsセキュリティ(Defender)をコマンドラインで扱う -
第415回
PC
ConvertFrom-Stringを使って、テキストデータをテンプレートで読み込む -
第414回
スマホ
Windows Subsytem for Linux(WSL)が昨年9月のアップデートでファイアウォール対応になった - この連載の一覧へ