内核 3.2.0 至 4.4.0 - 使用 USB2.0 端口上的 USB3.0/2.0 读取器从 CF 启动时系统变为只读

内核 3.2.0 至 4.4.0 - 使用 USB2.0 端口上的 USB3.0/2.0 读取器从 CF 启动时系统变为只读

我在使用 Ubuntu 16.04.1 时发现了此错误。它也发生在 Ubuntu 12.04.5、14.04.5、16.04.3、debian 9.1.0 以及 3.1.10 之后的任何内核版本上。

当我将操作系统放在紧凑型闪存上,将 CF 插入支持 USB 2.0 和 3.0 的读卡器,并将卡插入 PC 的 USB2.0 端口时,就会发生错误。在启动期间或启动后,将发生错误并使整个系统变为只读。它有时在启动期间发生;通常在启动后几分钟到几小时内发生;有时需要 24 小时左右才会发生;有一次需要 48 小时左右才会发生。我一发生就知道,因为终端(因为我使用的是服务器版本,所以我没有 GUI)会突然显示错误。启动后发生错误时,如下所示:

blk_update_request: I/O error, dev sda, sector 2624440[this number can change]
Buffer I/O error on device sda1, logical block 275975[this number can change]
Aborting journal on device sda1-8
JBD2: Error -5 detected when updating journal superblock for sda1-8.
EXT4-fs error (device sda1): ext4_reserve_inode_write:5146: Journal has aborted
EXT4-fs (sda1): Remounting filesystem read-only

前两行可能在其他行出现之前重复多次。这是可变的。

如果系统在启动完成之前就变成只读状态,登录后我会看到以下错误:

Unable to setup logging. [Errno 30] Read-only file system: 
‘/var/log/landscape/sysinfo.log’
run-parts: /etc/update-motd.d/50-landscape-sysinfo exited with return code 1
/usr/lib/update-notifier/update-motd-fsck-at-reboot: 33: /usr/lib/update-notifier/update-motd
oot: Read-only file system

在 journalctl 中我看到以下内容:

usb 1-1: reset high-speed USB device number 2 using ehci-pci
sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 0:0:0:0: [sda] tag#0 Sense Key : Unit Attention [current]
sd 0:0:0:0: [sda] tag#0 Add. Sense: Not ready to ready change, medium may have changed
sd 0:0:0:0: [sda] tag#0 CDB: Write(10) 2a 00 00 28 0b e8 00 00 10 00
blk_update_request: I/O error, dev sda, sector 2624440[this number can change]
Aborting journal on device sda1-8.
EXT4-fs error (device sda1): ext4_journal_check_start:56: Detected aborted journal
EXT4-fs (sda1): Remounting filesystem read-only
EXT4-fs (sda1): ext4_writepages: jdb2_start: 6144 pages, ino 34333; err -30

重新启动会导致系统再次变为 rw 但不可避免地会出现错误并且它会再次变为只读。

在USB3.0口上运行不会出现错误,用只支持USB2.0的读卡器运行也不会出现错误。

发生错误的读卡器:Transcend TS-RDF8K、Delkin DDREADER-42、Kingston FCR-HS3 和 FCR-HS4、Lexar LRW400CRBNA。发生错误的卡:Kingston 4GB、Transcend CF170。发生错误的平台:(1.2GHz VIA Eden X4 四核处理器 + VIA VX11H MSP)、(VIA EPIA-P820 + EPIA-P720 Pic-ITZ 主板)、(GA-H170-HD3 + Intel Core i7-6700K 4.0GHz + super micro X7SPE-HF-D525)

这种情况在全新硬件和略微使用过的硬件上都会发生。这种情况在刚安装的 Ubuntu/Debian 和我自己编辑过的 Ubuntu/Debian 上都会发生。这种情况在将 vhd 放在 CF 上和将操作系统直接安装到 CF 卡上时都会发生。

除了 journalctl 中显示的 USB 重置之外,错误发生之前似乎没有发生任何特定事件。

我认为这不是一个纯粹的硬件问题,而是一个硬件+内核问题,因为 A:以上所有硬件都可以在内核 3.1.10 及更早版本上运行 B:我使用了多种类型的卡/读卡器/平台(来自不同批次),以防其中一个出现故障

我已经使用内核为 2.6.38-8-generic-pae 的 Ubuntu 11.04 好几年了,没有任何问题。

不幸的是,我不知道具体是什么原因造成的,只知道在什么情况下会发生这种情况。有人告诉我这是内核的一个错误,但在决定报告之前,我想在这里最后问一次。

相关内容