我正在使用 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)
编辑 2:cp
操作根本不是即时的,将文件复制到 USB 笔式驱动器需要 3 分钟。
编辑 3:sync
操作(在 之后cp
立即完成)需要 12 分钟才能完成!但那umount
将是瞬间的。
对于 FAT32,(在挂载期间同步也被禁用),我注意到相同的行为。
任何想法为什么卸载 NTFS USB pendrive 需要这么长时间?
您可能正遭受
缓冲缓存的困扰。为了加快写入 USB 记忆棒(以及一般的硬盘)的速度,Linux 使用文件系统缓存:当您(认为您)向记忆棒写入内容时,首先将其写入缓存(在 RAM 中),然后
cp
命令(例如)立即返回,假装非常快的写入操作。当你做其他事情时,缓存的内容会在后台写入记忆棒。您可能会注意到摇杆上的 LED 仍然闪烁显示写入操作(取决于您的摇杆),尽管没有明显的反应。当您
umount
在写操作后立即发出时,umount
等到所有文件系统的缓存内容都写入记忆棒,以确保没有数据丢失。sync
您可以手动强制清空缓存并将数据写入记忆棒。但是,这不会加快总运行时间,因为您将不得不等待sync
完成(而不是等待umount
)。但是umount
会立即返回,因为缓存已经被刷新。总之,在将大文件或许多文件复制到记忆棒后,您有三种选择:
umount
并等待 10 分钟完成sync
, 等待 10 分钟完成,然后umount
(几乎立即返回)umount
. 因为缓存是在后台自动写入的,所以umount
也会几乎立即返回。当您将文件复制到您的 pendrive 时,它们不会直接写入它。文件系统同步发生在卸载命令上,实际数据是在您等待卸载时写入的。如果你在
sync
之前执行umount
,那umount
是即时的。