问题标签 [apfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
file - 如何修复 APFS 损坏?
几周前,我将一些目录从旧的外置硬盘复制到我的 iMac。由于这个古老的硬盘驱动器状态不佳,我最终得到了一些损坏的文件。
我设法删除了它们,但有些仍然存在。
一开始以为只是文件权限或者字符编码的问题,没想到居然不是。我已经阅读了 stackoverflow 中关于其他 unix 系统上类似问题的每一篇文章。
这里有一些截图,你会很容易理解这个问题。
那是我的操作系统和坏文件:
即使重写后,我也无法删除任何内容:
我不能chmod。Chmod 向我展示了一些我不知道存在的幽灵文件。
我也不能 chown :
这是一个加密的 APFS 分区:
由于此 FS 损坏(退出错误代码 8),我无法运行任何磁盘工具修复。这在我的 Mojave USB 安装程序上也不起作用,错误代码相同。
我无法使用 FireVault 解密分区,它永远停留在 0%。
我从来没有见过这样的事情。你认为我们应该怎么做?
macos - rsync - 相同的大小、内容、所有者、组、权限、时间 - 但它想要复制
rsync - 相同的大小、内容、所有者、组、权限、时间 - 但它想要复制
使用 macOS 莫哈韦。在源目录(apfs
per ?)中使用默认文件系统,在目标目录( per )df
中使用 FAT32 。msdos
df
没有想法。
c++ - 在 ofstream 写入期间检测到空间不足,stream.fail() 无法工作
我目前正在编写 DOD5220.22-M 的实现。下面的代码用于将二进制零写入文件,直到磁盘完全装满。
所以问题在于使用 statvfs,它检测到 3800158208 字节(约 3.82gb)的可写空间。但是,写入过程将在 3.77gb 处停止,并且将永远停留在那里。驱动器在此操作之前被格式化为 APFS,因此它是完全空的。
如您所见,我尝试使用 stream.fail() 来检测此类错误,但这似乎根本不起作用。系统是运行 g++8 和 C++17 的 MacOS
我错过了什么?statvfs 检测到的可写空间是否比现有空间多,还是我做错了什么?
还有一种方法可以在每次迭代时不检查 stream.fail() 的情况下编写吗?
提前致谢。
macos - 在 MacOS/APFS 上使用 Dropbox Smart Sync 释放磁盘空间的延迟 - 潜伏着什么危险?
正如Dropbox 所解释的,智能同步是一项“帮助您节省硬盘空间的功能。从您的计算机访问 Dropbox 帐户中的每个文件和文件夹,几乎不使用硬盘空间。......使用智能同步,内容您的计算机可作为仅在线、本地或混合状态文件夹使用。”
昨晚和今天早上,我将大量文件从外部磁盘移动到我的 MacBook(MacOS Mojave 版本 10.14.4)上的 Dropbox 文件夹中,然后将这些 Dropbox 文件夹选择为“仅限在线”。这些文件很快与云端的 Dropbox 同步——我看到它们出现在共享 Dropbox 的台式计算机的本地文件夹中——但灰色图标(“仅限在线”)在 Finder 中显示需要很长时间。(二十多个小时后,两个较大的文件夹仍然显示蓝色图标,表示“正在同步”,尽管它们的内容早已出现在另一台计算机上。)
随着警报的增加,我看到添加到 Dropbox 的每个新目录都会将 MacBook 上使用的空间量增加到危险水平 (93%),即使标记为“仅限在线”的大型目录继续同步到 Dropbox 云。我只能通过将一些内容移回外部磁盘来恢复可用空间。
令人困惑的是,关于真正剩余多少空间的信息并不一致。 df
显示58 GB 可用:
同时About this Mac => Storage
显示232 GB 可用。
据一位消息人士称,“关于这台 Mac 中的存储选项卡......可能很有用,因为它是哪些类型的数据占用存储空间的唯一指南,但当您想知道有多少空间已使用或空闲时任何卷或磁盘,使用磁盘工具:它更有可能是准确的。” 然而,令人困惑的是,我的磁盘工具显示了两个结果:
- 已使用 433.68 GB,其他卷上 3.95 GB,免费 62.45 GB
- 容量 500.07 GB,可用:232 GB(169.55 GB 可清除),已用:433 GB
正如 Dropbox 所解释的, “将文件设置为仅在线将在几分钟内释放硬盘驱动器上的空间(只要您的计算机在线并且能够同步到 Dropbox)。但是:... macOS 10.13 (High Sierra) 使用... APFS . 使用 APFS,操作系统会拍摄文件系统和可用硬盘空间的快照。在您使用 Smart Sync 将 Dropbox 文件设置为仅在线后,这些快照可能不会更新。这意味着您使用 Smart 释放的硬盘空间如果此快照尚未更新,同步可能不会立即反映或可用。操作系统最终应释放此硬盘空间,但这需要的时间可能会有所不同。这不是 Dropbox 特有的行为,而是 macOS 的设计行为。” 在 APFS 上,“ 仅在线文件使用硬盘驱动器上的少量空间来存储有关文件的信息,例如其名称和大小。这比完整文件使用的空间更少。”实际上,标记为“仅在线”的文件继续显示其非零(在线)大小(例如,ls
和os.path.getsize()
) 就好像它们仍然在本地可用一样。
我认为这是一个 MacOS(即 APFS)问题,并非特定于 Dropbox。
我的问题:如果 Disk Utility 显示232 GB "available"但只有62.45 GB "free",后果是什么?如果我要向磁盘添加另外 100 GB 的文件,会发生不好的事情吗?
我当然不愿意仅仅“作为一个实验”添加比空间更多的内容,但看看这会如何无意中发生。
ios - iOS:[NSData writeToFile:atomically:YES] 线程安全吗?
我试图弄清楚如果我使用[NSData writeToFile:atomically:YES]
来自多个线程的方法写入同一个文件会发生什么。线程完成写入文件后,是否保证文件不会损坏?
为简单起见,您可以假设文件系统是 APFS (iOS 11+)。
这个问题也与NSFileManager
's
相关[replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:]
macos - 外部 SSD 中 APFS 卷的自定义路径
我有外部 SSD,里面有 APFS 卷,当插件这个自动挂载在/Volumes/Workspace
. 有办法定义在预定义的路径中自动挂载吗?
macos - macos 中目录重命名的意外行为(其他 posix 风格?)
基本上,在 Python 或 bash 中,我可以在该目录中将目录重命名为不同的名称:此时,在目录中,旧名称仍然显示,但实际上重命名已经发生。
在带有 APFS 的 macos 上,这发生在我正在编写的 Python 脚本中,该脚本根据我使用的特定命名约定重命名目录,我注意到了这种行为。
我将其发布为 posix/shell/macos,因为我有一半希望在 Linux 下也会发生这种情况,并且我从 zshell 中得到了相同的一般行为。
假设我有一个目录foo
:
我将其重命名为 bar withmv foo bar
但是现在,让我们 cd 进入该目录并在那里执行重命名。
所以,现在,在 内bar
,我已将其重命名为zoom
. 它没有出错。在本地,apwd
表明我仍在同一目录中。我可以做一个ls
并且我不在一个无效的目录中,某些命令有时可以让我进入。
然而,上一层的树讲述了一个不同的故事。
并且 cd 到当前目录失败
以薛定谔的名义,发生了什么?文件系统底层的 inode 方案 APFS 是否提供此功能?不同的文件系统,例如 ext4 也会表现出相同的行为吗?
更新:如果我的测试目录中有一个单独的文本文件,我可以cat
在本地重命名之前和之后的文件内容,所以它不仅仅是外壳 - 文件系统也可以协作。当前目录仍然有效且可操作(这符合@that other guy's answer)。
macos - 远程文件“存根”如何在带有 APFS 的 Mac 上工作?
iCloud Drive和 OneDrive for Mac都支持远程文件(或OneDrive 所称的“按需文件” )。
- 这些文件出现在 Finder 中,并且表现得像真实文件(具有奇怪的快速查看行为)。
- 检查员显示他们的真实大小加
(4 KB on disk)
或相似。
还:
- 终端似乎不了解 iCloud 远程大小:
- 但它理解 OneDrive 的(文件显示
0 bytes on disk
在 Finder 中):
令人失望的是,我在网上找不到有关这些文件的任何信息。官方的Apple 文件系统参考似乎没有为此显示任何明确的端点。
- 它们是如何工作的?
- 这是公共 macOS API 还是 APFS 的功能?这是否依赖于 APFS?
macos - 带有 APFS 的 macOS:终端中的写时复制
我正在编写一些将备份数据组装到一个目录中的小脚本。然后将目录内容上传到云服务,然后我们可以将其删除。我想知道如何通过cp
终端中的命令来利用 APFS 的写时复制功能。
Finder 做得很好。但是如果我运行cp Largefile LargeFileCopy
它需要永远复制文件并相应地使用空间。