当我尝试转移大文件(1GB 或更大)保存到 USB 驱动器(2.0、3.0,无论是 HDD 还是“笔式驱动器”)一切正常,文件传输正确(尝试了原始文件和传输文件的 md5 总和并且它们确实匹配)...
然而都在命令行上 (mv *bigfile* /media/*username*/*name_of_the_drive*/)
并使用 GUI(目前在 Ubuntu 15.10 的 MATE 桌面上运行,但在其他版本上也会发生这种情况)在传输结束时对话框中的进度条冻结(使用控制台时它会冻结)。因此,当我“认为”传输已完成时,我必须手动关闭对话框/终端。
另外,当我尝试使用以下方法写入可启动 USB 驱动器时制作启动盘实用程序,应用程序面临同样的问题并冻结,仍然保持“写入会话”打开,即使我关闭它也不允许我卸载 USB。在尝试其他版本的 Ubuntu 15.10(我尝试了几个)时,它实际上显示了一个对话框错误,内容如下:
“文件已正确传输至 USB 驱动器,但程序无法向内核传达写入已完成的信息。”
我很抱歉没有报告确切的警告,但我确实记得我读到的内容的含义。
当前在安装了 GTX960M 和专有 Nvidia 驱动程序的 x64 笔记本电脑上运行 15.10 MATE、内核 4.4.1。
附言:我更新了内核到 4.4.1,看看是否可以解决这个问题,因为在 4.2.0_27 上仍然会出现同样的问题。但显然没有。
提前感谢您的帮助,
F。
答案1
我确实找到了答案这里事实上,问题是由于安装了 16GB RAM 造成的。写入缓冲区实际上太大了。我已通过以 root 身份登录解决了此问题:
su root
然后将脏字节设置为一个固定的数字(我猜默认设置 0 实际上并没有限制写入缓存的大小),通过输入:
echo $((16*2048*2048)) > /proc/sys/vm/dirty_background_bytes
echo $((48*2048*2048)) > /proc/sys/vm/dirty_bytes
我选择这个尺寸作为一个很好的折衷方案,现在问题已经解决。