ソリッドステートドライブとして認識されている際、デグラグを実行すると従来のファイルのセクタ移動は行われず、Trim命令のみ実行されるためSSD機について大きな影響は発生しません。記事執筆段階での当方の勘違いにより混乱を招く結果となってしまいました。大変失礼致しました。
2020年5月27日に正式リリースとなった「Windows 10 May 2020 Update(Windows 10 2004)」。
WSL2が実装(現在は1909、1903でも利用可)され、非常に魅力的な機能更新アップデートでした。
ただ、やはりWindows 10の機能更新アップデートといいますか、記憶域の不具合があったり(8月の月例パッチで修正済み)と不具合がそれなりに目立ちました。
ですが、今になってもっと重大な、多くのユーザに影響の出る不具合が発見されたました
デフラグを実行した履歴が残らない
ストレージの断片化を解消してくれるデフラグが、Windows 10ではデフォルトで毎週実行されるようになっているのですが、この実行履歴が残らず常に「デフラグが必要です」といったステータスになります。
Windows 10は各ストレージに対し、「デフラグが必要です」というステータスになっている場合、再起動時にストレージのデフラグを行います。
本来であれば、デフラグが実行されれば「デフラグが必要です」というステータスが解消されるのですが、その実行履歴が残らないため、再起動しても「デフラグが必要です」というステータスのままになります。
となると、Windowsを再起動する度にデフラグが走ってしまうんですよね。
ストレージに影響を与える可能性
SSDはデータをOSから消去してもデータの実体は削除されませんでした。
なので、同じセクターに新しいデータが上書きされない限り、データの実体は削除されないようになっていました。
なので、もし重要なデータを削除した場合でも書き込みを一切行わず直ぐに対処すればデータを復旧できる可能性がありました。
今回の不具合でWindowsの再起動毎に毎回Trim命令が走ると、データの実体が残らず、データ復旧ができなくなるのです。(ただし、デフォルトでも1週間に1回Trim命令が発行されるのでそもそも論感はあります)
HDDに対してはSSDと違い、ファイルのセクタ移動が行われるため、高頻度にデフラグを行う事はなんとしても避けたいところ。
デフラグを実行した履歴が残らない様子

実際にWindows 10 May 2020 Updateでデフラグを実行してみますと、一見実行した履歴が残っているように見受けられます。
ですがこの状態で再起動すると・・・

2020年8月30日 3:25に実行したにもかかわらず、再起動を行うと前回デフラグした履歴が残らず「最適化が必要です」と表示されます。
今後の修正と暫定回避策
Bleeping Computerの記事によりますと、MS社としてもこの問題を認識しており、Insider Preview向けに公開しているBuild 19042.487にて修正済みとなっています。
一般ユーザ向けにも近々配信される予定ではあるものの、具体的なリリース日は決まっていない様子。
アップデートが配信されるまでの間の暫定回避策として、自動メンテナンスを停止する事が挙げられそうです。(はまd様 コメント頂きありがとうございます!)
自動メンテナンスとは

自動メンテナンス機能とは、あらかじめスケジュールされた時間(デフォルトでは午前2時)にソフトウェア更新やセキュリティスキャン、ディスク最適化などをはじめとしたシステム診断などのタスクが自動的に実行される機能です。
こちらを止めることで暫定対策を取ることができるのですが、こちらの機能を停止するにはレジストリを直接編集する必要がでてきます。
HKEY_LOCAL_MACHINEの\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenanceの「MaintenanceDisabled」の値を「1」に変更することで、自動メンテナンス機能を無効化できます。
ひとまずは、9月の第2週が終わるまでの一時しのぎとし、9月の第2週が過ぎたら再度有効化するかどうかを忘れないようにしておいてください。
恐らく、9月の月例パッチで修正される”はず”です。
修正パッチが更新されたら、本記事でも再度周知したいと思います。
コメント
SSDに対するWindows標準の最適化で寿命を縮めることはほとんどありません。従来のHDDのような断片化解消は行わないため、ほとんど書き込み量は増えないためです。
その代わり、SSDの場合、SSD内蔵コントローラーに対し、Trimコマンドの発行を行いますが、これはOSで消したファイルの領域をSSDに予め通知するだけのもので、これを受け取ったコントローラーが、予め次回すぐ書き込めるように準備します。そのため、Trimコマンドは、極端な話、10分に1回でも、1週間に1回でも大差はないのです。
そのため、この誤解を生む内容は訂正していただきたく存じます。
ありがとうございます Windowsにおけるデフラグ時の動きについて勘違いしておりました。
ソリッドステートドライブとして認識される場合は、Trim実行のみとなるのですね
修正致しました
dfrguiからのスケジュールオフは本件の暫定対処ではないかと思われます。
暫定対処は「自動メンテナンスの無効化」かと思われます。
また、みかち様のコメントも正確ではないように思われます。
SSDにもデフラグは行われます。
本件について調査確認した所以下のような事が分かりました。
・「デフラグ」は「ディスクの最適化」と「自動メンテナンス」により行われる。
・dfrguiから「ディスクの最適化」を行うとSSDに対しては基本的に「Trim」が行われるが、「デフラグ」も稀に行われる。
※SSDに対してもデフラグが行われるのは「仕様」であり、これはMSの技術者が明言している。
・「自動メンテナンス」がONになっていると、端末再起動毎に「デフラグ」+「Trim」が行われる。
※自動メンテナンスでデフラグが行われるのは、本来毎回は実行されないはずだが、今回のバグで毎回デフラグを実行してしまっている。
うまく説明できてるか分からないので、実際にログを参照すると良いかもしれません。
技術書典のautopilotから来たら見つけてしまったのでつい出しゃばりました。
私は案件の都合上毎回自動メンテナンスを切っているので本件は関係ない事がわかりましたが、
それはそれとして、変なバグが残ってるのも嫌なので早く対応されて欲しいですね・・・
本件が発覚してから数か月経ってるのに未対応のようですし・・・
それでは失礼します。
鋭いご指摘ありがとうございます!
自動メンテナンスってディスク最適化、デグラグ、ソフトウェアアップデートとか走らせてましたね・・・!
Windows 7の頃は気にしていたのですが、10ではすっかり抜け落ちていました・・・
SSDにおけるTrimとデフラグの知見についてもご共有頂きありがとうございます!
MS製品に携わってそれなりの年数が経っておりますが、まだまだ奥が深いことを痛感させられました・・・
技術書典経由でお越し頂いたとのことも非常に嬉しく思います!
じつはしょぼんブログの密かな夢の1つが、アクセスしてこられた方とディスカッションができたら最高だな、と思っていたので、お二人のコメント大変嬉しく思いました
[…] Windows 10 May 2020 Update にバグ、デフラグを実行した履歴が残らなくなる | しょぼんブログ […]