exFat 上的文件/目录在 Windows 中不可见

exFat 上的文件/目录在 Windows 中不可见
  • Ubuntu 18.04 LTS
  • exfat-fuse / exfat-utils 1.2.8-1(运行 sudo apt-get update 后将安装的最新版本。)

Linux 正在将文件写入 Windows OS 磁盘上的 Windows exFat 分区,而这些文件对 Windows 是不可见的。如何让这些文件对 Windows 可见?(更新 - 下文中,Linux 随后删除了这些文件,共 400GB,而正如您将看到的,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 ...) 目录的权限 - 在 Windows 内部这些目录是不可见的(并且 100% 的空间可用 !!!)。该文档位于此处:https://www.cgsecurity.org/wiki/PhotoRec_FAQ

如何让这些文件在 Windows 中可见?

谢谢你的帮助。

更新

我尝试了 TestDisk 文档中的建议,尽管我无法从 Windows 中看到任何文件夹。(文档假设 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。

lsblk 输出,显示已安装的分区

exfat 分区中的目录列表

GParted,显示已使用 400GB

现在,让我们重新启动并看看 Windows 显示什么。

Windows 显示该分区的使用率为 0%。

WINDOWS 报告该分区是空的 !!!

现在,运行 chkdsk,而无需选择修复分区。

chkdsk 的输出,没有文件,没有错误。

现在,选择修复。(因为我无论如何都要放弃,然后使用格式化为 NTSF 的此分区重新运行 PhotoRec)

Windows 提示分区已被锁定,我拒绝强制重新挂载

Windows 说分区已锁定。现在我要返回 Linux。

一些 Linux 命令的输出。

文件不见了。有 400GB 了。

我曾在 Windows 和 Linux 之间来回切换过几次,试图解决这个问题,但 Linux 仍然能够看到这些文件。

exfatfsck 报告没有错误,分区是空的 - 除了可能 1 个文件。我在我创建的新 exfat 分区上运行了 exfatfsck 进行测试,它报告空分区有 3 个目录和 2 个文件。因此那里可能有一个文件,但它没有显示在目录列表中。

我在该分区上运行了 testdisk。它报告
Bad GPT partition, invalid signature. Trying alternate GPT Bad GPT partition, invalid signature.

我运行了扫描(testdisk),让它运行了一会儿(这需要几个小时)。它发现了一些非 exfat 的文件(我猜是残留的,在我为此切出那个分区之前。我做了快速格式化。)。我本可以让完整扫描运行,但我没有这么做。我可以再次运行 PhotoRec。

解决方法

我研究了几个小时。我发现两篇帖子描述了非常非常相似的问题,还有许多帖子说 exfat 很危险,而 linux 对 NTFS 的支持要好得多。此外,与 NTFS 相比,exfat 分区很容易损坏。

因此,我将此分区重新设为 NTFS,并再次运行 PhotoRec。

我认为这是关于不要使用 exfat 的非常重要的教训。幸运的是,就我而言,它只是浪费了我很多时间。

问题
有人知道如何让共享的 exFAT 分区工作吗,或者这里发生了什么?也许这是 Ubuntu 18.04 LTS 的问题。如果能够使用 exFAT 来实现这一点就好了,因为使用 NTFS 我必须关闭快速启动,并避免让 Windows 休眠。(也许有解决方法……这是另一个问题。)

答案1

有人知道如何让共享的 exFAT 分区工作吗,或者这里发生了什么?

这可能是一个错误。L​​inux exfat 仍然很新,而 ntfs-3g 花了好几年才真正稳定下来。

如果能够为此使用 exFAT 就好了,因为使用 NTFS 时我必须关闭快速启动,并避免 Windows 休眠。

那么这可能就是你的问题。

ntfs-3g 不会阻止您挂载挂起/休眠的 Windows 分区,而是试图阻止您进行一些非常危险的操作,因为这些操作不可避免地会导致文件系统损坏。

如果您想在两个操作系统之间共享一个文件系统,则必须在两端禁用挂起/休眠/快速启动/watchamacallit。无论是 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]

因此,这不是文件系统特定的问题,而是一个普遍的问题。

挂起到磁盘(休眠)实际上并不会关闭系统。它会将内存状态转储到磁盘,而内存状态包括已安装的文件系统等。因此,即使机器“关机”,文件系统仍会处于安装状态。

在此状态下您唯一可以做的事情是“恢复”。如果您执行任何其他操作,则很可能会丢失数据。

暂停一个操作系统,然后启动另一个操作系统(而不是恢复),并更改磁盘上的数据……然后重新启动第一个操作系统并恢复。内存状态被加载并及时设置,系统继续运行,就好像它从未关闭过一样,它不知道在此期间另一个操作系统对磁盘所做的更改。

这与写入已挂载文件系统分区的原理相同dd。一个文件系统一次只能由一个实体使用,如果你将它分成两个(Linux 内核和 dd、Linux 内核和另一个 Linux 内核、Linux 和 Windows,反之亦然),它们最终会相互破坏。

答案2

对我来说,我认为这个问题可能是文件系统休眠/锁定问题。我之所以这么说,是因为我多次启动和退出 Win10 和 Ubuntu 18.04,检查 msftdata 标志是否正常,情况相同,然后我使用 Ubuntu 将一个文本文件添加到“对 Win10 不可见”文件夹中,刚才我重新启动到 Win10,然后 bam!,一切都出现了。

所有复制和安装都是通过 Ubuntu 18 的标准文件资源管理器完成的……其实没什么特别的,就是即插即用。干杯

答案3

我在将 exFat 分区从一个 Ubuntu 20.04.1 LTS 盒子移动到另一个 Ubuntu 20.04.1 LTS 盒子时遇到了麻烦。在决定不保存可能变得很大的档案后,我使用简单的 cp 命令进行了备份。

    cp -p -u -r -v Data/ /media/username/Backup 
    cp -p -u -r -v datamodeler.log/ /media/username/Backup 
    cp -p -u -r -v Desktop/ /media/username/Backup 

由于这是我的所有数据、项目和文档的备份,所以我让它运行了一整夜。早上我恢复了机器,卸载了磁盘并在新机器上试用了它。

现象和上面报告的一样,出现了目录和文件结构,但是没有出现文件内容。

我重复了几次,删除并重新创建 exFat(类型 07)分区,使用 fdisk 命令行、磁盘实用程序对其进行检查。我开始怀疑媒体或设备是否坏了,但现在在仅使用 20GB 进行了有限测试并且源机器没有机会休眠后,我得到了文件。媒体文件播放等。

我认为这是由于挂起/休眠/恢复问题。我认为格式没问题。

请注意,Windows 操作系统从未触碰过我的文件。

答案4

如果有人觉得有用,我会发布它。我的设置/行为几乎与 OP 报告的完全相同;唯一明显的区别是 exFAT 分区是用 Windows 而不是 Linux 创建的。

在我的例子中chkdsk /f,确实使文件对 Windows 可见

相关内容