介绍
我在几台机器(带有 USB 2.0 和 USB 3.0 的笔记本电脑和台式机)上使用带有最新 4.4 Linux 内核的 Ubuntu MATE 16.04.5 LTS。
在我看来,内核的 USB 驱动程序内部似乎发生了一些变化(或者可能udisks
)。或者 USB 闪存硬件变得更便宜且质量更差。
我的 USB 闪存有 LED 指示灯。它是无名礼物(ChipsBank CBM2099E 控制器)。
当我将它连接到计算机时,LED 指示灯亮起,数据传输时指示灯闪烁。
我的主要想法是:当我看到指示灯闪烁时,我猜想闪存正忙,因此我不应该断开它以防止数据损坏。
问题
预期行为
多次闪烁 - 旧款 Transcend JFV60、JF110、JF150、JF500、新款 JF790;Kingston Data Traveller G2 和 ADATA UE700、SanDisk Extreme Pro 不存在此类连续闪烁问题。它们在选择后立即停止闪烁喷射选项并显示气泡消息,表示设备可以安全移除:
有问题的闪存的行为
当我从 Caja 文件管理器或 GNOME 磁盘中弹出有问题的 USB 闪存驱动器时,请按喷射菜单选项中,闪光灯 LED 以快速速率持续闪烁。我尝试等待大约一个小时,但这段时间过后它仍然闪烁。即使我没有在驱动器上写入任何内容,也会发生这种情况。通知气泡未显示。
问题
我的问题是 - 这种闪烁问题可能是什么原因造成的?只有我一个人这样吗?断开这种闪烁的闪光灯是否安全(对于数据而言)?
说明和更新
笔记
1. 我在这里不问写入缓存和/或sync
驱动器的缓慢下降。这在很大程度上取决于 RAM 大小和闪存的实际写入速度。在没有写入数据的情况下存在上述行为。
2. 所有这些闪存在 Windows 上都没有弹出功能问题。它们在单击后 LED 熄灭喷射/安全移除.
3. 选择关闭此磁盘() 在 GNOME Disks 中强制闪存停止闪烁,但我不确定在这种情况下数据是否安全(对于这个特定的闪存;对于其他闪存和 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 熄灭。
答案1
Eject
选择后 LED 闪烁的问题鹦鹉螺,与 2013 年的 Launchpad Bug 报告非常接近:
该错误报告仅有 5 名订阅者,并且已作为 2011 年该错误报告的重复而被关闭:
后一个错误报告有 155 个订阅者,并且:
- 2017 年 10 月修复已针对 Trusty (Ubuntu 14.04 LTS) 进行分类
- Xenial(Ubuntu 16.04 LTS)2017 年 10 月修复已发布
- Yakkety(Ubuntu 16.10)的 2017 年 10 月修复已发布
仔细查看第一个错误报告(已关闭为重复报告),您会看到作者提到udisks
需要如何进行修补。然而,应用该补丁的两位用户报告没有成功。
我认为在错误报告中他们忽略了某个用户输出的一些重要方面。以下是我的系统的等效输出(有效):
$ gvfs-mount -li
Drive(3): 3SYSTEM USB Flash Disk
Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
ids:
unix-device: '/dev/sdb'
themed icons: [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
symbolic themed icons: [drive-removable-media-usb-symbolic] [drive-removable-media-symbolic] [drive-removable-symbolic] [drive-symbolic] [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
is_media_removable=1
has_media=1
is_media_check_automatic=1
can_poll_for_media=0
can_eject=1
can_start=0
can_stop=0
start_stop_type=shutdown
sort_key=01hotplug/1546789639130384
Volume(0): LIVE_USB
Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
ids:
class: 'device'
unix-device: '/dev/sdb1'
uuid: '641A-A7DB'
label: 'LIVE_USB'
themed icons: [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
symbolic themed icons: [drive-removable-media-usb-symbolic] [drive-removable-media-symbolic] [drive-removable-symbolic] [drive-symbolic] [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
can_mount=1
can_eject=1
should_automount=1
sort_key=gvfs.time_detected_usec.1546789639358749
Mount(0): LIVE_USB -> file:///media/rick/LIVE_USB
Type: GProxyMount (GProxyVolumeMonitorUDisks2)
default_location=file:///media/rick/LIVE_USB
themed icons: [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
symbolic themed icons: [drive-removable-media-usb-symbolic] [drive-removable-media-symbolic] [drive-removable-symbolic] [drive-symbolic] [drive-removable-media-usb] [drive-removable-media] [drive-removable] [drive]
can_unmount=1
can_eject=1
is_shadowed=0
sort_key=gvfs.time_detected_usec.1546789639395990
- 在我的系统上,该变量
is_media_removable
被设置为 ,1
但在错误报告者系统中,它被设置为0
。我认为这应该得到解决。 - 错误报告器有
can_eject=0
,但我的系统有can_eject=1
将您自己的gvfs-mount -li
输出与我的输出进行核对。还可以考虑订阅上面的错误报告和/或在那里发布。
答案2
只要您知道驱动器未被写入,那么您就可以将其移除。另外,根据个人经验,关闭 GNOME 磁盘中的电源不会影响数据。
答案3
我有一台 SanDisk Cruzer,也有同样的问题。当空闲时,无论是安装时没有读写,还是只是插入 USB 端口,LED 指示灯都会闪烁,但速度很慢。事实上,它会亮起然后慢慢熄灭,然后重复。
为了确保我的判断正确...我最近买了 3 个新的 SanDisk Cruzer Glide 16 GB 闪存驱动器。这 3 个驱动器都有 LED 指示灯,并且所有 3 个驱动器的功能都和您的一样。
因此需要澄清的是,我有 4 个 USB 驱动器,它们的运行方式与你描述的一样。移除它们安全吗?是的,因为驱动器在空闲或读取或写入时的行为有明显的视觉差异。
答案4
有三种可能性可以逐步检查哪些程序正在大量使用(消耗)硬盘:
1.)在终端输入:
顶部
或者
顶部
然后你就可以看到哪些进程实际上占用了你的硬盘。
2.) 您也许可以解决这个问题,以 Firefox 为例,当 Firefox 严重缩略您的硬盘时,您可以调整 Firefox 的时间间隔 - 当 Firefox 在后台写入硬盘时,如下所述:
https://www.servethehome.com/firefox-is-eating-your-ssd-here-is-how-to-fix-it/
也有可能,google-chrome 在后台执行与 firefox 类似的事情。
3.) 使用以下命令安装 fatrace 软件包:
sudo apt-get 安装 fatrace
须藤fatrace
工具 fatrace 会在终端中向您显示当前在后台运行的程序(例如 google-chrome 或 firefox 等...)。