USB 随身碟:复制大约需要 3 分钟,但卸载需要很长时间:10 到 12 分钟

Seb*_*bMa 12 usb ntfs unmount fat32

我正在使用 Ubuntu 17.10。

我将 USB 笔式驱动器格式化为 NTFS 以准备 Windows7 USB 安装程序。

我在这个笔式驱动器上设置了可启动标志并将文件复制到其中。

编辑 1:USB 笔式驱动器由 udev 自动安装。

umount /dev/sdb1 需要 10 到 12 分钟才能完成。

以下是安装选项:

$ mount | grep sdb
/dev/sdb1 on /media/mansfeld/Win7_USB_Installer type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
Run Code Online (Sandbox Code Playgroud)

编辑 2: cp操作根本不是即时的,将文件复制到 USB 笔式驱动器需要 3 分钟。

编辑 3:sync操作(在 之后cp立即完成)需要 12 分钟才能完成!但随后umount将是瞬间的。

对于 FAT32,(在装载期间同步也被禁用),我注意到相同的行为。

任何想法为什么卸载 NTFS USB 随身碟需要这么长时间?

Per*_*uck 9

您可能正在遭受缓冲缓存的困扰。为了加快写入 USB 记忆棒(以及一般的硬盘)的速度,Linux 使用文件系统缓存:

当你(认为你)写一些东西到棒然后它首先被写入缓存(在 RAM 中)和 cp命令(例如)立即返回,假装一个非常快速的写入操作。当你做其他事情时,缓存的内容会在后台写入到棒中。您可能会注意到棒上的 LED 仍然闪烁以显示写入操作(取决于您的棒),尽管没有任何明显的反应。

当您umount在写操作后不久发出时,请umount等待直到所有文件系统的缓存内容都写入到棒中以确保没有数据丢失。

随着sync您可以手动强制清空缓存并把数据写入棒。但是,这不会加快总经过时间,因为那样您将不得不等待sync完成(而不是等待umount)。但是umount会立即返回,因为缓存已经被刷新。

总之,将大文件或许多文件复制到棒后,您有三个选择:

  • umount 并等待 10 分钟让它完成
  • sync, 等待 10 分钟完成,然后umount(几乎会立即返回)
  • 只需等待 10 分钟(也许多一点)什么都不做(或与棒无关的事情),然后发出umount. 因为缓存是在后台自动写入的,所以umount也会几乎立即返回。

  • 或者在启用 -o 同步标志的情况下挂载文件系统,禁用写缓存。 (2认同)

Pas*_*nen 5

当您将文件复制到您的随身碟时,它们不会直接写入其中。文件系统同步发生在 unmount 命令上,在您等待卸载时写入实际数据。如果您sync之前执行umount,则umount是即时的。