Windows 8以降はLFSのバージョン違いでファイルが消える場合がある [OS]
Windows 10について調べている内に、「Windows 7以前とWindows 8以降のPCでハードディスク(以降HDD)を相互利用するとHDD内のファイルが消える場合がある」という問題がある事がわかった。
追記。Windows 8同士でもLFSの整合性が失われた場合(高速スタートアップが有効のままシャットダウンでHDDを外したなど)でもファイルが消える場合がある模様。

Windows 7以前とWindows 8以降のPCでハードディスクを相互利用するとHDD内のファイルが消える場合がある
もう少し具体的に書くと、Windows 7以前で利用していたHDDをWindows 8以降のWindowsが動作するPCに接続すると、※LFS(Ver. 1.1)が上書きされる。そして上書きされた状態のまま再びWindows 7のPCにHDDを接続した場合、Windows 7ではWindows 8以降の新しいLFS(Ver. 2.0)が認識出来ないためエラーが発生し、自動的にエラーの回復(chkdsk)を試みようとするので、その時にファイルシステムが破壊されるようだ。
※LFS (Log File Service)
NTFSフォーマットされたストレージ(HDD等の記録デバイス)で、ファイルシステムの不整合を修復するための仕組み。通常隠しファイルとして$LogFileというファイル名で記録されている。このファイルはNTFSにアクセスがある度に更新されていて、もし書き込みが正常終了しなかった場合はこのファイルの内容を元にエラーの修復をする。詳細はここhttp://ntfs.com/transaction.htm
この問題の発生にはHDDの付け外しが必要なので、主にUSBによる外付けHDDを利用している人が被害に遭いやすい。そして一旦被害に遭うとファイルの復旧は非常に困難であるようだ。復旧の成功率はケースバイケースで変わるだろうが、ネット上の情報を見る限りあまり高いとはいえない。
この問題に対処するにはいくつか方法があるので簡単に紹介しておく。
1.Windows 8以降のPCにHDDを接続したら正規の手段で取り外す事を厳守する
USB HDDを外す時は必ず「タスクバー右のアイコンから安全な取り外し」で外す。
使用中などのメッセージが出て取り外しが出来ない場合は、PCを一度再起動
した後に再び試みる。
2.LFSの書換えを無効にする
そもそもの問題がLFSの書換えに起因する。
なので、レジストリを操作して「LFSの書換え」が起きないようにする。
方法はregeditを起動して「HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Control\FileSystem\NtfsDisableLfsUpgrade」を開き、値を0から1に変更する。
レジストリを変更したら、必ず再起動させる事。
なおこの方法はなんらかの原因で元に戻る事があるそうなので注意が必要。
3.Windows 8以降のPCに対して「高速スタートアップを無効」にする
高速スタートアップを無効にする事でシャットダウン時にLFS 1.1に書き戻されるようだ。
この状態ならばシャットダウン後HDDを取り外しても問題が起きない。
以上。
なおこの問題はNTFS特有の仕組みであるLFSの互換性問題が原因で起きるので、FAT32やexFATでフォーマットされている事が多いUSBメモリーやSDカード等では発生しない。ただしデータの安全の為にはUSBメモリー等であってもPCからいきなり引き抜くのではなく、「タスクバー右のアイコンから安全な取り外し」を心掛ける事。
それにしても、このように重大な問題に対する情報があまりに少ない事に驚いた。
大多数の人は「Windows 7とWindows 8を同時に利用し、なおかつそれらの間でNTFSフォーマットされたストレージデバイスを使い回す」、というケースがないため問題に遭う事はない。だが少数の例とはいえこの問題で大切なデータを消失する可能性がある事を、Micro$oft社がなんの告知もしていない事に怒りを覚える。
ネットに出回っている情報も主にこの問題の被害者による発信で、Microsoft自身はITプロフェッショナル向けの「Microsoft TechNet」内にあるWikiでの情報公開に留まり、一般に知られるようにはなっていない。
私自身この問題に関しては不勉強を痛感している。
Micro$oftによる積極的な情報公開が無かったとはいえ、事故が起きてからでは取り返しが付かない。幸いにもWindows 8が登場してから2年以上、私自身がWindows 8の利用を避けていたためにこの問題の犠牲にはならなかったが。
なお、この問題についてさらに詳しい情報を求める方は、「windows8 ntfs」及び「Windows8 データ消失」等のキーワードで検索すると良い。
追記。Windows 8同士でもLFSの整合性が失われた場合(高速スタートアップが有効のままシャットダウンでHDDを外したなど)でもファイルが消える場合がある模様。
Windows 7以前とWindows 8以降のPCでハードディスクを相互利用するとHDD内のファイルが消える場合がある
もう少し具体的に書くと、Windows 7以前で利用していたHDDをWindows 8以降のWindowsが動作するPCに接続すると、※LFS(Ver. 1.1)が上書きされる。そして上書きされた状態のまま再びWindows 7のPCにHDDを接続した場合、Windows 7ではWindows 8以降の新しいLFS(Ver. 2.0)が認識出来ないためエラーが発生し、自動的にエラーの回復(chkdsk)を試みようとするので、その時にファイルシステムが破壊されるようだ。
※LFS (Log File Service)
NTFSフォーマットされたストレージ(HDD等の記録デバイス)で、ファイルシステムの不整合を修復するための仕組み。通常隠しファイルとして$LogFileというファイル名で記録されている。このファイルはNTFSにアクセスがある度に更新されていて、もし書き込みが正常終了しなかった場合はこのファイルの内容を元にエラーの修復をする。詳細はここhttp://ntfs.com/transaction.htm
この問題の発生にはHDDの付け外しが必要なので、主にUSBによる外付けHDDを利用している人が被害に遭いやすい。そして一旦被害に遭うとファイルの復旧は非常に困難であるようだ。復旧の成功率はケースバイケースで変わるだろうが、ネット上の情報を見る限りあまり高いとはいえない。
この問題に対処するにはいくつか方法があるので簡単に紹介しておく。
1.Windows 8以降のPCにHDDを接続したら正規の手段で取り外す事を厳守する
USB HDDを外す時は必ず「タスクバー右のアイコンから安全な取り外し」で外す。
使用中などのメッセージが出て取り外しが出来ない場合は、PCを一度再起動
した後に再び試みる。
2.LFSの書換えを無効にする
そもそもの問題がLFSの書換えに起因する。
なので、レジストリを操作して「LFSの書換え」が起きないようにする。
方法はregeditを起動して「HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Control\FileSystem\NtfsDisableLfsUpgrade」を開き、値を0から1に変更する。
レジストリを変更したら、必ず再起動させる事。
なおこの方法はなんらかの原因で元に戻る事があるそうなので注意が必要。
3.Windows 8以降のPCに対して「高速スタートアップを無効」にする
高速スタートアップを無効にする事でシャットダウン時にLFS 1.1に書き戻されるようだ。
この状態ならばシャットダウン後HDDを取り外しても問題が起きない。
以上。
なおこの問題はNTFS特有の仕組みであるLFSの互換性問題が原因で起きるので、FAT32やexFATでフォーマットされている事が多いUSBメモリーやSDカード等では発生しない。ただしデータの安全の為にはUSBメモリー等であってもPCからいきなり引き抜くのではなく、「タスクバー右のアイコンから安全な取り外し」を心掛ける事。
それにしても、このように重大な問題に対する情報があまりに少ない事に驚いた。
大多数の人は「Windows 7とWindows 8を同時に利用し、なおかつそれらの間でNTFSフォーマットされたストレージデバイスを使い回す」、というケースがないため問題に遭う事はない。だが少数の例とはいえこの問題で大切なデータを消失する可能性がある事を、Micro$oft社がなんの告知もしていない事に怒りを覚える。
ネットに出回っている情報も主にこの問題の被害者による発信で、Microsoft自身はITプロフェッショナル向けの「Microsoft TechNet」内にあるWikiでの情報公開に留まり、一般に知られるようにはなっていない。
私自身この問題に関しては不勉強を痛感している。
Micro$oftによる積極的な情報公開が無かったとはいえ、事故が起きてからでは取り返しが付かない。幸いにもWindows 8が登場してから2年以上、私自身がWindows 8の利用を避けていたためにこの問題の犠牲にはならなかったが。
なお、この問題についてさらに詳しい情報を求める方は、「windows8 ntfs」及び「Windows8 データ消失」等のキーワードで検索すると良い。
情報のご提供、ありがとうございます。
現在 Windows7 PCを複数台使っているのですが、無償アップグレード
期間中に、この際だからアップグレードしてみようかと思っていましたが、
本当に問題点は無いのか?と思って調べていたら、このサイトにたどり着き
ました。
私自身も Windows8 には全く関心が無かったため、このような変更が
なされているとは知りませんでした。危ないところだったかもしれません。
なお、参考になるか分かりませんが、以下のような対策ソフトも見つけました。
【新発売】Windows10レスキューキット
http://n.shop.vector.co.jp/service/catalogue/10rescue/
本当に助かりました。ありがとうございました。
by Myate (2016-05-24 18:51)
>Myate様
お役に立って幸いです。
それからWindows10レスキューキットについてですが、私はすでにテスト済みです。
個人的にはまったく役に立たないソフトウェアなので記事にはしていませんが。
by 98式軍刀 (2016-05-24 20:56)
>98式軍刀 さん
返信ありがとうございます。
一つ質問させて頂いてもよろしいでしょうか。
Windows10レスキューキットですが、ほとんどの機能は必要ないと
思ったのですが、「外付けディスクのファイル消失問題の解決」という
項目に惹かれておりました。
しかし、既に記載されておられるように、「高速スタートアップを無効」に
することで、同じ事が実現できる(消失問題は発生しないようになる)ので
不要(つまり役に立たない)という事だと理解してよろしいでしょうか。
お手数をおかけいたしますが、返信頂けますと嬉しいです。
by Myate (2016-05-25 00:26)
>Myate様
はい、そのような理解で問題ありません。
私の場合は自分で設定変更やレジストリ編集などを行いますので不要と思っただけです。
レジストリ編集などに慣れていない人の場合はツールを使った方が安全という意味では、Windows10レスキューキットは有用だと思います。
by 98式軍刀 (2016-05-25 18:55)
なるほど、納得いたしました。
ご返信、誠にありがとうございました。
by Myate (2016-05-25 22:33)