介绍
我在几台机器(带有 USB 2.0 和 USB 3.0 的笔记本电脑和台式机)上使用带有最新 4.4 Linux 内核的 Ubuntu MATE 16.04.5 LTS。
对我来说,内核的 USB 驱动程序内部似乎发生了一些变化(或者可能udisks
)。或者 USB 闪存硬件变得更便宜和低质量。
我的 USB 闪存有 LED 指示灯。是杂牌礼物(ChipsBank CBM2099E控制器)。
当我将它连接到计算机时 - 它的 LED 指示灯亮起,传输数据时它会闪烁。
我的主要想法:当我看到闪烁的指示灯时,我认为闪存很忙,所以我不应该断开它以防止数据损坏。
问题
预期行为
许多闪光灯 - 老创见 JFV60、JF110、JF150、JF500、现代 JF790;Kingston Data Traveler G2 和 ADATA UE700、SanDisk Extreme Pro 都没有这种持续闪烁的问题。他们在选择弹出选项后停止闪烁,并显示设备可以安全移除的气泡消息:
有问题的闪存的行为
当我通过按弹出菜单选项从 Caja 文件管理器或 GNOME 磁盘中弹出有问题的 USB 闪存驱动器时,闪存 LED 持续快速闪烁。我试图等待大约一个小时,但在这段时间之后仍然闪烁。即使我没有在驱动器上写任何东西,也会发生这种情况。通知气泡未显示。
问题
我的问题 - 这种闪烁问题的原因可能是什么?只有我吗?断开这种闪烁的闪光灯是否安全(对于数据)?
注释和更新
笔记
1. 我不在这里询问写缓存和/或sync
驱动器的缓慢下降。它在很大程度上取决于 RAM 大小和闪存的实际写入速度。在没有写入数据的情况下存在上述行为。
2. 所有这些flash 在Windows 上都没有弹出功能的问题。在点击Eject / Safely remove后,它们会关闭 LED 。
3. 在 GNOME Disks 中选择Power off this disk ( ) 会强制 flash 停止闪烁,但我不确定在这种情况下的数据安全性(对于这个特定的 flash;对于其他 flash 和 USB HDD 或 SSD,它是安全的,我知道它)。
4. 我知道,例如 WD MyPassport USB 硬盘驱动器在安全移除后会将闪烁速度从快速变为慢速消光,但这是另一回事,因为它之前已经减速并停放,所以之后拔掉它是安全的. 所以我不认为USB闪存的闪烁表明他们正在轮询并强制用户将其分离......
更新
1.下面是实时输出tail -f /var/log/syslog
Nov 11 23:37:35 hostname kernel: [32596.101403] scsi 7:0:0:0: Direct-Access General UDisk 5.00 PQ: 0 ANSI: 2
Nov 11 23:37:35 hostname kernel: [32596.102526] sd 7:0:0:0: Attached scsi generic sg2 type 0
Nov 11 23:37:35 hostname kernel: [32596.104745] sd 7:0:0:0: [sdc] 31129600 512-byte logical blocks: (15.9 GB/14.8 GiB)
Nov 11 23:37:35 hostname kernel: [32596.107594] sd 7:0:0:0: [sdc] Write Protect is off
Nov 11 23:37:35 hostname kernel: [32596.107611] sd 7:0:0:0: [sdc] Mode Sense: 0b 00 00 08
Nov 11 23:37:35 hostname kernel: [32596.107792] sd 7:0:0:0: [sdc] No Caching mode page found
Nov 11 23:37:35 hostname kernel: [32596.107805] sd 7:0:0:0: [sdc] Assuming drive cache: write through
Nov 11 23:37:35 hostname kernel: [32596.109561] sdc:
Nov 11 23:37:35 hostname kernel: [32596.110621] sd 7:0:0:0: [sdc] Attached SCSI removable disk
Nov 11 23:37:35 hostname udisksd[2294]: Mounted /dev/sdc at /media/username/FLASHDEVICE on behalf of uid 1000
Nov 11 23:37:52 hostname udisksd[2294]: Cleaning up mount point /media/username/FLASHDEVICE (device 8:32 is not mounted)
Nov 11 23:37:52 hostname udisksd[2294]: Unmounted /dev/sdc on behalf of uid 1000
请注意此处的最后几行,在 23:37:35 设备已从文件管理器中卸载/弹出,在 23:37:52 udisks 将其删除,但其 LED 仍在闪烁。
2. 遵循@WinEunuuchs2Unix 的想法,我尝试了 UDisks(旧版,由于从 12.04 升级而保留在我的系统上)和 UDisks2(现代和实际)来执行安全删除过程 - 两者
#udisks1 (legacy)
udisks --unmount /dev/sdc1 && udisks --detach /dev/sdc
#udisks2 (modern)
udisksctl unmount -b /dev/sdc1 && udisksctl power-off -b /dev/sdc
仅用我的一个闪光灯结束了相同的 LED 闪烁问题。
3. 在我的旧 Ubuntu 12.04.5 LTS 上重复上述方法,此处 LED 在有问题的闪存上闪烁。所以这是一个USB闪存硬件问题。
结论
我的基于 ChipsBank CBM2099E 的无名闪存与 Linux 和/或 Udisk 之间存在一些软硬件不兼容。其他闪烁(在上面的预期行为中列出)没有问题。
在同一台笔记本电脑上运行的 Windows 8.1 中,它的安全删除成功并且 LED 熄灭。
在Nautilus
Eject
中选择后 LED 闪烁的问题与 2013 年的此 Launchpad 错误报告非常接近:该错误报告只有五个订阅者,并且已作为 2011 年此错误报告的副本关闭:
后一个错误报告有 155 个订阅者,并且:
浏览第一个错误报告(作为副本关闭的那个),您会看到作者
udisks
提到了如何制作补丁。然而,两名应用补丁的用户报告说没有成功。我认为在错误报告中他们错过了一个用户输出的一些重要方面。这是我系统的等效输出(有效):
is_media_removable
设置为1
,但在错误报告系统上设置为0
. 我认为这应该得到解决。can_eject=0
,但我的系统有can_eject=1
检查你自己的
gvfs-mount -li
输出到我的。还可以考虑订阅上面的错误报告和/或在那里发布。只要您知道驱动器没有被写入,那么您就可以将其删除。另外从个人经验来看,GNOME 磁盘中的断电磁盘不会影响数据。
我有一个 SanDisk Cruzer 可以做同样的事情。空闲时,无论是安装时没有读/写,还是只是简单地插入 USB 端口,LED 指示灯都会闪烁,但速度较慢。事实上,它会亮起并慢慢消失,然后重复。
只是为了确保我是对的……我最近购买了 3 个新的 SanDisk Cruzer Glide 16 GB 闪存驱动器。所有 3 个都有 LED 指示灯,并且所有 3 个都与您的相同。
因此,澄清一下,我有 4 个 USB 驱动器,它们的操作方式与您描述的一样。删除它们是否安全?是的,因为当驱动器空闲或被读取或写入时,行为存在明显的视觉差异。
可以通过三种方式逐步检查哪些程序正在大量使用(吃掉)硬盘:
1.) 输入终端:
或者
然后你可以看到,哪些进程实际上需要你的硬盘。
2.)你可能会解决它,如果是firefox,当firefox严重缩略图你的硬盘时,你可以调整firefox的时间间隔 - 当firefox在后台写入硬盘时,如下所述:
https://www.servethehome.com/firefox-is-eating-your-ssd-here-is-how-to-fix-it/
谷歌浏览器也可能在后台做类似的事情,比如 Firefox。
3.)安装包fatrace:
Fatrace 工具会在终端中向您显示当前在后台运行的程序(例如 google-chrome 或 firefox 等...)。