【Win10】 A2Uでレジストリ『NtfsDisableLastAccessUpdate』の値が仕様変更?不具合?SSD勢は要注意 [Update 3: 回避策判明]
ファイルのプロパティを見ると『アクセス日時』というのがあります。
これは文字通り、そのファイルにアクセスした日時を示すものですが、SSDを使用している場合、アクセスしただけでむやみに更新されるとSSDの寿命を縮めることになるため、無効が望ましい設定となっています。
この設定はWindows7以降はデフォルトで無効になっているので、基本的にはノータッチで問題ありません。
後述しますが、SSDにWin10A2Uをインストールした人は要注意です。A2Uではデフォルトで有効になっている場合があり、アクセス日時の更新が行われてSSDが無駄に消耗されているかもしれません。ちょっと長いですが、最後までご覧いただければと思います。理屈抜きでサクッと対策をしたい場合はコマンドプロンプト(管理者)を起動して『fsutil behavior set disablelastaccess 1』と入力してください。これで無駄に消耗されることはありません。 |
逆に有効にしたい場合は、レジストリエディタを開いて、
『HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem』の『NtfsDisableLastAccessUpdate』の値を変更することで無効/有効が切り替えられます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisableLastAccessUpdate 0 → 有効 / アクセス日時を更新する |
Windows10 v1709 Fall Creators Updateまではこの設定方法でした。
ここからが本題ですが、Windows10 v1803 April 2018 Update(以下、Win10A2U)ではこのレジストリ項目の値に変化がありました。
HDDにインストールしたWin10A2Uでは16進数で80000003がデフォルト値になっていました。調べてみたところ、下記の結果となりました。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisableLastAccessUpdate 80000000 → 有効 / アクセス日時を更新する |
ちなみに、これまで使われていた値の0(有効)を入力して再起動した場合、再起動後は自動で80000000(有効)になり、1(無効)を入力して再起動した場合、こちらも自動で80000003(無効)として反映されました。
新しい値(80000000(有効) / 80000003(無効))でもこれまでの値(0(有効) / 1(無効))でも使用できますが、再起動後に反映されるのは新しい値となります。
基本的にはデフォルトで無効なので特に気にする必要はありませんが、変わったことを知らずに見たりいじったりしたら 「んん? なんぞこれ??」 ってなりそうです。なりました/(^o^)\
< Update 1 >
で、ここまではデフォルト値が80000003だった場合の話です。環境によってはデフォルト値が80000002の場合があります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisableLastAccessUpdate 80000000 → 有効 / アクセス日時を更新する |
自環境ではSSDにインストールすると80000002、HDDにインストールすると80000003になりました。同じPCで、SSDに2回、HDDに2回インストールしてみましたが、結果は同じでした。しかし、SSDにインストールした場合でも80000003になるとの報告も出ており、どういった条件でレジストリ値が決まるのかは不明です。
そしてデフォルト値が80000002だとアクセス日時の更新をしてしまいます。80000000でも同じく更新されます。Win10FCU、Win10A2U(HDD)、Win10A2U(SSD)での各挙動をメモったので参考程度にどうぞ。
[ Windows10 v1709 FCU(HDD) ]
アクセス日時の更新無効 (レジストリ: 1(デフォルト値)) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | なし | なし | なし |
exeファイルを開く | なし | なし | なし |
mp3ファイルを開く | なし | なし | なし |
txtファイルに書き込み | なし | なし | なし |
アクセス日時の更新有効 (レジストリ: 0) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | あり | あり | なし |
exeファイルを開く | あり | あり | あり |
mp3ファイルを開く | なし | あり | なし |
txtファイルに書き込み | あり | あり | あり |
[ Windows10 v1803 A2U (HDD) ]
アクセス日時の更新無効 (レジストリ: 80000003(デフォルト値)) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | なし | なし | なし |
exeファイルを開く | なし | なし | なし |
mp3ファイルを開く | なし | なし | なし |
txtファイルに書き込み | なし | なし | なし |
アクセス日時の更新有効 (レジストリ: 80000000) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | あり | なし | なし |
exeファイルを開く | あり | なし | なし |
mp3ファイルを開く | なし | あり | なし |
txtファイルに書き込み | あり | あり | あり |
[ Windows10 v1803 A2U (SSD) ]
アクセス日時の更新無効(になるべきなのになってない) (レジストリ: 80000002(デフォルト値)) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | あり | なし | なし |
exeファイルを開く | あり | あり | あり |
mp3ファイルを開く | あり | なし | なし |
txtファイルに書き込み | あり | あり | あり |
アクセス日時の更新有効 (レジストリ: 80000000) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | なし | あり | あり |
exeファイルを開く | あり | あり | あり |
mp3ファイルを開く | なし | あり | なし |
txtファイルに書き込み | あり | あり | あり |
アクセス日時の更新が有効のとき、PC起動ごとに日時の更新が反映されたりされなかったりしたので3回ずつ試しました。反映されないときがある理由は謎です。無効のときはFCU(HDD)もA2U(HDD)もアクセス日時の更新は行われませんでした。しかし、80000002のWin10A2U(SSD)ではデフォルトでアクセス日時を更新してしまっています。
なお、デフォルト値が80000002だと、80000003に変更しても再起動後に80000002に戻されてしまいます。1(無効)にしても80000002に戻ります。
はたしてこれは仕様変更でしょうか、それとも不具合でしょうか。どう見ても改悪なので、おそらく不具合かと思われます。
SSD環境で80000002になっている人はご注意くださいませ。どれほどの影響があるかはわかりませんが、少なからず無駄に消耗されることになります。
< Update 2: 回避策判明 >
80000002の場合、80000001に設定することでアクセス日時の更新を無効にできることが判明しました。80000001に設定した場合は他の値に戻されることはありません。この値はデフォルト値が80000002でも80000003でも使用できました。
[ Windows10 v1803 A2U (SSD) ]
アクセス日時の更新無効 (レジストリ: 80000001) | |||
アクセス日時の更新 | PC起動1回目 | PC起動2回目 | PC起動3回目 |
txtファイルを開く | なし | なし | なし |
exeファイルを開く | なし | なし | なし |
mp3ファイルを開く | なし | なし | なし |
txtファイルに書き込み | なし | なし | なし |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem NtfsDisableLastAccessUpdate 80000000 → 有効 / アクセス日時を更新する |
デフォルト値が80000002の場合は80000001に設定することで無駄な消耗を回避できます。SSD勢は80000001にしておいた方が良いでしょう。
コマンドプロンプト(管理者)から『fsutil behavior set disablelastaccess 1』と入力することでもレジストリに80000001と反映されます。どちらの方法でも結果は同じなのでお好みでどうぞ。
更新履歴 ① デフォルト値80000002について加筆。 ② 80000001について加筆。 ③ 環境によってはSSDでも80000003の場合があるそうなので全体的に微修正。 |