3DCGで何をどう作るか考え中

ZbrushとBlenderの使い方、ヒント、コツなど。たまにZbrushプラグイン開発も。

Windowsの仮想メモリの設定ドライブの空き領域・容量が一致しない!?

(約 3,200文字の記事です。)

Windows PCで仮想メモリの置き場所(pagefile.sysが作成されるドライブ)をSSDではなくて大容量のHDDに設定したい場合がある。

f:id:yamato-tsukasa:20220129001940p:plain

だがその仮想メモリ設定アプリ上のドライブの空き領域と実際のエクスプローラでの空き容量とが一致しない!?

大パニック。なぜ実際には2TB以上も空き領域があるのに数百GBしか認識されないの?

何度も1.4TBのデータをバックアップしては復元させて体当たりして検証しました。(1回のバックアップや復元に片道4時間の長旅です。。。)

対象読者は仮想メモリの設置ドライブの空き領域が実際の空き容量と一致しなくて気分が悪い読者、あるいは空き領域が小さく認識されて実際に欲しい仮想メモリ容量を設定できずに困っている読者。

Windows 10 Proで解説。

原因はWindowsのバグ(笑)

マジかよ!と思うのだが、マジだった。この結論を得るのに半日かかった。

(実際に、○○が怪しいと思って調べたら10分で辿り着けたのだが、そこに至るまでの試行錯誤のヒントがなければ○○という検索キーワードすら思いつかなかった。

docs.microsoft.com

では何がどうバグっているのか解説。

f:id:yamato-tsukasa:20220128234206p:plain

上記URLによれば、仮想メモリを割り当てるGUIアプリにバグがあるそうで。どういうバグかというと「空き領域が2TBを超えていると実際の空き容量から2TBを引いた残りの容量を示す」というバグ。アンビリバボーである……。

2TBの壁を思い出すが、今は2022年だぞ?Windows XP時代にあった壁が未だに修正されておらずにWindows 10まで?

実際に試した結果、そうだった

試しにDドライブのHDDのバックアップを取り、一度ボリュームを削除して新品状態に戻す。そしてクイックフォーマットして試した結果、

  1. パーティション容量が2TB未満の場合には仮想メモリで正しい空き領域が表示
  2. パーティション容量が2.22TB(つまり2TB+220GB)の場合には空き領域が200GB台

f:id:yamato-tsukasa:20220129012100p:plain



f:id:yamato-tsukasa:20220129012115p:plain



ってことは偶然に空き領域が2TB+1MBだった場合には空き領域が1MBと認識されるわけw ありえない……。

ではもし4TB以上空き領域があった場合には、2TB×2=4TBが引かれるのか、それともシンプルに2TB引かれた残りが表示されるのか、わからんw 何にしても少なくとも2TB引かれることは間違いない。

対処方法はコマンドラインで仮想メモリを設定する

まさか2022年になってコマンドラインUIでWindowsを操作することになろうとは……。詳細はこちらをご覧下さい。

docs.microsoft.com

上記手法だと一応は自由に仮想メモリ容量を指定できる。ただコマンドラインになるのでタイピングが苦手な人には苦痛だろう。

【裏技】要するに空き容量を一時的に2TB以下にすればいい

例えば動画ファイルなどのファイルサイズが大きいファイルを探し出して一時的に何個もコピーして「空き容量を2TB以下」にすればいい。そうすればGUIアプリ上で仮想メモリ容量を約2TBまでなら設定可能になる。十分な容量だろう?そして設定が終わってPC再起動後に、一時的にコピーしたファイルを削除すればいい。それだけ。コマンドライン操作不要。

Windowsは実際の空き容量を把握している

そもそも必要な仮想メモリ容量以上の空き領域が仮想メモリアプリに認識されていればそれでOKなのだ。仮想メモリアプリのバグで空き領域が誤って認識されているだけなことは分かってもらえたと思う。

で、このバグ、そもそも現在認識されている空き領域よりも少ない仮想メモリ容量を設定するつもりだったならば、実は何の問題もない(笑)空き領域の誤りは仮想メモアプリのバグだ!と分かってしまえば気にする必要すらない。

私のように「あ~気になる!」と思って原因を探る旅に出たい人は除くw

ま、バグだと分かればスッキリだ。HDDの空き容量はWindowsに正しく認識されているのだから、自分のこれまでの操作ミスやインストールミスということはない。これが分かっただけでもスッキリだ。

【結論】仮想メモリアプリの表示バグ

仮想メモリアプリに現在認識されている空き領域よりも少ない仮想メモリを設定するつもりならば、バグがあっても何の問題もない。設定してPCを再起動して指定容量のpagefile.sysがそのドライブに設定されていればそれで正常だ。

この結論を得るのに半日無駄にした。

新規で自作PCを組み上げ、OSやソフトは旧PCから移植したのでイレギュラーなやり方(自己責任)だから、それが原因か?と思って調べたわけ。そして動作検証中にサブスタンス3Dペインター(Substance 3D Painter)の仮想メモリ容量の警告を受けてページングファイルの設定を見直したのが運の尽きで、この罠にはまった。そして今もHDDのデータバックアップの復元中……。ずいぶんと時間を無駄にした。

2台目のPCを組んでいる最中だったから助かった。なので旧PCでこの記事を書いてます。。。

もしこの記事に助けられたと思った読者の皆様は、以下のリンクを経由してAmazonでお買物をして、数十円~数百円を筆者に恵んで下され!





今回の創作活動は約7時間30分(累積 約2,680時間)
(780回目のブログ更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
上記リンクを経由してAmazonで何かお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます(笑)