aria2 能在 Windows 分配的 NTFS 下以 falloc 模式工作吗?

2018-10-24 06:05:28 +08:00
 baskice
https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-file-allocation

这个说明里--file-allocation=<METHOD>一项写着:

NTFS(MinGW build only), falloc is your best choice.

那么 windows 格式化出来的 NTFS,不是这个 MinGW。就不能用 falloc 模式了吗?

falloc 会覆盖有用数据吗?
3558 次点击
所在节点    问与答
9 条回复
baskice
2018-10-24 06:08:22 +08:00
设置 falloc 模式时会有提示
file-allocation=falloc will use SetFileValidData() API, and aria2 uses uninitialized disk space which may contain confidential data as the download file space. If it is undesirable, --file-allocation=prealloc is slower, but safer option.

这里的 confidential data 指的是?
msg7086
2018-10-24 06:27:48 +08:00
……什么叫 NTFS 不是 MinGW ?
MinGW 是编译 Aria2 的工具链,你的 Aria2 正常情况下都是 MinGW 编译出来的。
NTFS 是谁格式化出来的有什么关系?

falloc 是预分配,和覆盖数据有什么关系?

SetFileValidData 是直接分配数据而不清零,如果你之前删除过数据,直接预分配不清零的话会把原来你删除过的数据一起分配进来。具体有多少敏感数据应该要问你删过哪些数据。
liwufan
2018-10-24 06:41:13 +08:00
什么是“ SetFileValidData() API ”?你的系统支持 posix 吗? falloc may not be available if your system doesn't have
posix_fallocate(3) function.
xenme
2018-10-24 06:42:34 +08:00
https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfilevaliddata

The SetFileValidData function allows you to avoid filling data with zeros when writing nonsequentially to a file. The function makes the data in the file valid without writing to the file. As a result, although some performance gain may be realized, existing data on disk from previously existing files can inadvertently become available to unintended readers. The following paragraphs provide a more detailed description of this potential security and privacy issue.
A caller must have the SE_MANAGE_VOLUME_NAME privilege enabled when opening a file initially. Applications should call SetFileValidData only on files that restrict access to those entities that have SE_MANAGE_VOLUME_NAME access.

其实就是默认只允许具有特定权限的应用调用,调用后果是分配磁盘但是不初始化,所以磁盘上之前的数据如果去读区的话,可能会出现安全问题,比如如果那片空间如果保存过密码啥的。但你信任 arial2,所以其实没啥问题。
xenme
2018-10-24 06:45:14 +08:00
另外覆盖的肯定是以前可能用过,但是现在没用的,没有填充过零的硬盘簇,所以才能可能看到这里以前保存过什么数据,所以才有风险,不过就你的场景,没啥好担心的
ysc3839
2018-10-24 08:34:43 +08:00
调用 SetFileValidData 需要一个权限,而默认情况下管理员才有这个权限。不过你可以调整拥有此权限的用户。
下载 BT 的时候开启了这个选项,曾经遇到过 Windows Defender 报毒,大概是检测到残留数据中的病毒吧?
ysc3839
2018-10-24 08:37:47 +08:00
可以按照这篇文章配置 https://www.cnblogs.com/gaizai/p/3516905.html
只需要配置“执行卷维护任务”那里就行了,加上你自己的用户名,后面那些不需要动。
ysc3839
2018-10-24 08:45:11 +08:00
@ysc3839 配置后要注销再登录才生效。
cz5424
2020-01-18 12:57:15 +08:00
Aria2 有可能不是 MinGW 编译出来的,例如我 nas 挂载了 ntfs 磁盘。然后就 gg 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX