Linuxは、Windowsからは見えないWindows OSディスク上のWindows exFatパーティションにファイルを書き込んでいます。これらのファイルをWindowsで表示するにはどうすればよいですか? (更新-さらに下で、Linuxはその後ファイルを削除しましたが、そのうちの400 GBでした。また、ご存じのように、Windowsは明らかにそうしていません。)
LinuxのPhotorecを使用して、このexFatパーティションにファイルを復元しました。
ExFatパーティションは62%使用されていますが、Windowsはそれが空であり、すべてのスペースが空いている(!!!)と報告します。
Linux(Linuxを搭載した外部SSD)で再起動し、exFatパーティションを再度マウントして、ファイルが実際に存在することを確認しました。 (これは700GBのパーティションであり、そのデータを保持できる場所は他にありません)。 Linuxは、そのexFatパーティション上のファイルを参照します。
私は走ったchmod 777 FOLDER/ -R
、Windowsに再度チェックインします。 Windowsはまだパーティションが空(!!!)であると報告します。
PhotorecのTestDiskドキュメントには、Windowsがファイルにアクセスするためにファイルの所有権を取得する必要がある可能性があると記載されていますが、それらが与えるリンクは、Windows内からrecup_dir.1(.2 ...)ディレクトリの権限を変更する方法を示しています-ここで表示できません(スペースの100%が使用可能です!!!)。そのドキュメントはここにあります: https://www.cgsecurity.org/wiki/PhotoRec_FAQ
これらのファイルをWindowsで表示できるようにするにはどうすればよいですか?
助けてくれてありがとう。
[〜#〜]更新[〜#〜]
Windowsのフォルダが表示されない場合でも、TestDiskのドキュメントで提案を試しました。 (このドキュメントでは、recup_dir.1がWindowsから表示可能であると想定しています。)ディレクトリではなく、Windowsでパーティションの所有権を取得しようとしました。
[Administrator command Prompt]
C:\WINDOWS\system32>takeown /f e: /r /d y
ERROR: File ownership cannot be applied on insecure file systems;
there is no support for ACLs.
C:\WINDOWS\system32>
したがって、exFatには関係がないため、これは問題ではありません。
Windowsがこのパーティションを空であると認識しているため、Windowsからこのパーティションに何かを書き込んだり、他の操作をWindowsから行うことはしません。 Photorecは5時間実行され、復元されたファイルを作成しました。
[〜#〜]更新[〜#〜]
別のテストを実行しました。通常のユーザーアカウント(rootやPhotoRecではない)で作成されたテキストファイルをexfatパーティションにコピーしました。 Windowsはまだそこにファイルを見ません。
[〜#〜]更新[〜#〜]
これは問題を示すいくつかの画像です。また、chkdskを実行した後に何が起こったかを示しています。修復を行わずに修復を実行しません。
sdaは内部(Windows)ディスクです。
sdbはLinuxを搭載した外部SSDです。
ここで、再起動してWindowsの表示内容を確認してみましょう。
WindowsはパーティションがIS EMPTY !!!
ここで、パーティションの修復を選択せずにchkdskを実行します。
次に、修復を選択します。 (とにかくあきらめようとしているので、このパーティションをNTSFとしてフォーマットして、PhotoRecを再実行します)
Windowsはパーティションがロックされていると言います。 Linuxに戻ります。
ファイルはなくなりました。それらの400GB。
私はWindowsとLinuxを何度か行ったり来たりして、この問題を解決しようとしていましたが、Linuxはまだファイルを見ることができました。
exfatfsckはエラーがないことを報告し、パーティションは空である-おそらく1つのファイルを除いて。テストとして作成した新しいexfatパーティションでexfatfsckを実行したところ、空のパーティションに3つのディレクトリと2つのファイルがあることが報告されました。そのため、ファイルが1つある可能性がありますが、ディレクトリリストには表示されません。
パーティションでtestdiskを実行しました。報告するBad GPT partition, invalid signature. Trying alternate GPT Bad GPT partition, invalid signature.
私はスキャン(testdisk)を実行し、letを少し実行しました(数時間かかるでしょう)。それはnon-extatであるいくつかのファイルを見つけました(私はこれのためにそのパーティションを切り取る前から残っていると思います。私は簡単なフォーマットをしました。)。フルスキャンを実行することもできましたが、気になりませんでした。 PhotoRecをもう一度実行できます。
回避策
私はこれを数時間研究しました。非常によく似た問題を説明する2つの投稿と、exfatは危険であり、LinuxはNTFSをより適切にサポートしているという投稿がたくさん見つかりました。また、NTFSとは対照的に、exfatパーティションが破損するのは非常に簡単です。
そこで、このパーティションをNTFSとして再作成し、PhotoRecを再度実行しています。
これはexfatを使用しないことについての非常に重要なレッスンだと思います。幸い、私の場合、それは私の時間の多くを無駄にしました。
質問
誰かが共有exFATパーティションを機能させる方法を知っていますか、またはここで何が起こりましたか?多分それはUbuntu 18.04 LTSの問題です。 NTFSでは高速ブートをオフにし、Windowsを休止状態にしないようにする必要があるため、このためにexFATを使用できるのはいいことです。 (たぶんそのための回避策がある...それは別の質問です。)
誰かが共有exFATパーティションを機能させる方法を知っていますか、またはここで何が起こりましたか?
バグかもしれません。 Linux exfatはまだ新しく、ntfs-3gが本当に安定するまでに何年もかかりました。
NTFSでは高速ブートをオフにし、Windowsを休止状態にしないようにする必要があるため、このためにexFATを使用できるのはいいことです。
それはおそらくあなたの問題です。
ntfs-3gは、一時停止/休止状態のWindowsパーティションをマウントすることを妨げるものではありません。それは、ファイルシステムの破損に必然的につながる非常に危険なことからあなたを救おうとしています。
2つのOS間で単一のファイルシステムを共有する場合は、両方の側でサスペンド/ハイバネート/ファストブート/ウォッチアマコールを無効にする必要があります。 WindowsとLinux、またはLinuxと別のLinuxのどちらでもかまいません。
参照 https://www.kernel.org/doc/Documentation/power/swsusp.txt
* BIG FAT WARNING ********************************************************* * * If you touch anything on disk between suspend and resume... * ...kiss your data goodbye. * * If you do resume from initrd after your filesystems are mounted... * ...bye bye root partition. * [this is actually same case as above]
したがって、これはファイルシステム固有ではなく、一般的な問題です。
ディスクへのサスペンド(ハイバネート)がシステムを実際にシャットダウンすることはありません。メモリ状態をディスクにダンプし、そのメモリ状態にはマウントされたファイルシステムなどが含まれます。そのため、マシンの電源がオフの場合でも、ファイルシステムはマウントされたままです。
この状態で実行できるのは「再開」だけです。他のことをすると、データを失う可能性が非常に高くなります。
1つのOSを一時停止してから、再開する代わりに別のOSを起動し、ディスク上のデータを変更します。次に、最初のOSを再起動して再開します。メモリの状態が読み込まれ、元の状態に戻されます。システムは、最初からシャットダウンされなかったかのように動作し続けます。その間に別のOSによって行われたディスクの変更は認識されません。
マウントされたファイルシステムパーティションにdd
を使用して書き込むのと同じ原則です。ファイルシステムは、一度に1つのエンティティでのみ使用できます。2つ(Linuxカーネルとdd、Linuxカーネルと別のLinuxカーネル、LinuxとWindows、またはその逆)にすると、お互いが破損するだけです。