英特尔微代码 2018-01-08 破坏了一些系统

英特尔微代码 2018-01-08 破坏了一些系统

我有一台 Razer Blade Stealth 2016。我安装的第一个 Ubuntu 是 Ubuntu 17.04,使用 2 周后出现此错误。之后,我安装 16.04并用它来几个月没有任何问题,直到今天又出现了同样的错误。我认为这与 ubuntu 更新有关,因为我最近更新了一次,今天又更新了一次,就在出现这个问题之前。不过这可能是一个巧合。

(我甚至做了一些压力测试,多次下载数百 GB 的数据,磁盘几乎已满,而在 16.04 中没有更新时我没有遇到这些错误)

在我手动运行 fsck 之后,问题解决了,但是一段时间后它又再次出现。

更新:

它再次发生了(自从我开始写这篇文章以来,我一直在使用 17.10.1 全新安装,没有任何更新。我注意到这个问题是因为我试图将我的一个虚拟机保存到磁盘中,它说我的磁盘是只读的。然后我运行:

lz@lz:/var/log$ touch something
touch: cannot touch 'something': Read-only file system


lz@lz:/var/log$ cat syslog
Jan 29 01:07:39 lz kernel: [62984.375393] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0


lz@lz:/var/log$ dmesg
[62984.375393] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.377374] Aborting journal on device nvme0n1p2-8.
[62984.379343] EXT4-fs (nvme0n1p2): Remounting filesystem read-only
[62984.379516] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.381486] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.383484] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.385469] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.387278] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.389262] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.391252] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[62984.393341] EXT4-fs error (device nvme0n1p2): ext4_find_entry:1442: inode #26607929: comm updatedb.mlocat: checksumming directory block 0
[63285.618078] audit: type=1400 audit(1517195560.393:63): apparmor="DENIED" operation="capable" profile="/usr/sbin/cupsd" pid=22495 comm="cupsd" capability=12  capname="net_admin"

然后我重新启动并执行了fsck /dev/nvm...。它询问了我很多 inode 的信息,我对所有信息都回答了“是”,然后它就停了下来。

https://i.stack.imgur.com/GRu9x.jpg(这张照片显示了整个输出,但看不清太多) https://i.stack.imgur.com/bEDZ5.jpg(这个更好,但是会减少一些输出)

以下是整个过程的视频: https://photos.app.goo.gl/8ZHF3Un1BOsRwjaz1

我将按照下面的答案建议的那样应用微代码补丁,但我认为这与问题无关,因为这是在崩溃和幽灵出现几个月前发生的。而且我甚至从未安装过微代码更新。

我仍然认为这与我在帖子中描述的问题有关。有人能告诉我它是否已修复以及在哪些内核中已修复的详细信息吗?我该怎么办?

无论如何,我只是应用了建议的修正,添加了

nvme_core.default_ps_max_latency_us=5500

到启动参数。看看系统如何运作。

更新:每次我安装新系统时,它都运行良好,直到我决定使用软件更新程序!然后它进入只读模式 :(

我试过了nvme_core.default_ps_max_latency_us=250,但没用

更新:当我安装 Windows 时,一切似乎都运行良好。甚至基准测试也表明一切正常

更新(2019/10/03)

我仍然有这个问题。它每天发生一次,但当 SSD 使用率很高时,它会经常发生。

我尝试使用全新的三星 960 EVO 2156gb SSD,问题仍然存在,所以这与 SSD 本身无关。但是我犯了一个错误,购买了相同品牌和相关型号的产品。我没有测试非三星 SSD。

两款 SSD 在 Windows 上运行完美。我甚至做了很多基准测试,压力很大。没问题。

我尝试了 ubuntu 16、18、19、Debian 10、Linux Mint。都出现同样的问题。有人能帮我找到问题的根源吗?我花了很多钱买这台电脑,没有钱买一台新的。

我的 grub 文件现在:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

答案1

英特尔微代码 2018-01-08 破坏了一些系统

2018 年初,全球闻名的 Meltdown 和 Spectre 安全漏洞被公布后,供应商纷纷推出修复方案。根据 Ubuntu 的说法,英特尔要求他们降级到较旧的微代码,然后2018 年 1 月 8 日微代码更新破坏了一些系统。


列出您当前的微码版本

要查找当前的微码版本,请使用:

$ apt list --installed | grep intel-microcode

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

intel-microcode/now 3.20170707.1~ubuntu16.04.0 amd64 [installed,upgradable to: 3.20180108.0+really20170707ubuntu16.04.1]

就我而言,英特尔微码更新2018-01-08不是正在使用,并且正在使用来自的原始版本2017-07-07。当 Meltdown 补丁发布时,错误开始出现在 2018-01-04 的常规更新中。从那时起,我拒绝了所有自动更新,而是选择手动安装新的主线内核。这就是我拥有较旧的原始微代码的原因。


降级 Ubuntu 14.04、16.04 和 17.10 的微码

如果您正在运行2018-01-08Intel 微码必须升级至2018-01-22发布的版本。

通过将系统更新至以下软件包版本可以解决此问题:

Ubuntu 17.10:

Ubuntu 16.04 LTS:

Ubuntu 14.04 LTS:

要更新您的系统,请按照以下说明操作:https://wiki.ubuntu.com/Security/Upgrades

标准系统更新后,您需要重新启动计算机以进行所有必要的更改。

重复上一节中的步骤来检查您的英特尔微码版本

从终端安装微码

要从终端安装微码而不通过 Ubuntu GUI 设置面板,请使用:

sudo apt update
sudo apt install intel-microcode

相关内容