写入时如何关闭USB设备的缓存?

txw*_*ger 9 usb

使用 ubuntu/kubuntu 通过 USB 安装板时,我在将二进制程序传输到微控制器原型板时遇到问题。使用 MacOS 和 Windows 没有问题。我发现来自 Ubuntu 的写作肯定会改变所写的文件。我怀疑写缓存是问题所在。我怎样才能禁用它,或者还有什么问题。

Nig*_*Fan 9

请先阅读:http : //groups.google.com/group/linux.kernel/msg/8d1591196c0ae15e?pli=
1 我不确定这是否属实。

您可以尝试使用 hdparm 在运行时将写入缓存功能设置为关闭。(您可能需要在每次启动后或每次移除并重新插入设备时运行此程序)

sudo hdparm -W 0 /dev/devicename
Run Code Online (Sandbox Code Playgroud)

请确保您知道正确的设备名称(sdbsdc等等)。

您可以通过运行来找出设备名称:

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

您还可以编辑/etc/fstab和添加安装选项,sync,dirsync但是我对/etc/fstab可移动设备的工作方式不是很熟悉。我认为他们需要一个永久的挂载点。

  • 有没有办法为可移动设备设置默认的“fstab”选项? (2认同)

tuk*_*k0z 5

感谢@NightwishFan 使用 hdparm 开关来设置驱动器的写入缓存功能。

请注意,sync安装选项会使速度降低一个数量级(超过 10 倍)。flushmount 选项可确保有效写入且不会影响性能。此外,我在我使用过的所有 FAT 设备(基于旋转或闪存的)上使用它已经没有任何问题了几年:实际上,整套安装选项是noauto,users,noatime,flush,umask=111,dmask=000手动设置或在 /etc/fstab 中设置的。