Kubuntu中bash异常,dmesg显示“微码升级”;是否可以进行静默错误升级?

Kubuntu中bash异常,dmesg显示“微码升级”;是否可以进行静默错误升级?

在 Kubuntu 20.04、bash 5.0.17 中,有些天我在编写工作 bash 脚本时遇到了各种问题。现在我发现bash有问题。例如,在关键字“export”之后,名称或任何字符都会被忽略,因此打印列表就像没有给出名称或选项 -p 一样。

在寻找原因时,我按如下方式调用 dmesg:

dmesg -s $((10*1024*1024)) -T | less +G

输出1986行。

通常,我的 dmesg 输出要长得多,并且从一开始就显示了一些行,这些行显示了它的开始时间和启动时间。

但是这个 dmesg 输出以以下几行开头:

+++++

[Wed Jan 12 03:07:46 2022] microcode: microcode updated early to revision 0x28, date = 2019-11-12

[Wed Jan 12 03:07:46 2022] Linux version 5.4.0-42-generic (buildd@lgw01-amd64-038) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 (Ubuntu 5.4.0-42.46-generic 5.4.44)

[Wed Jan 12 03:07:46 2022] Command line: BOOT_IMAGE=/casper/vmlinuz file=/cdrom/preseed/kubuntu.seed maybe-ubiquity persistent splash ---

[Wed Jan 12 03:07:46 2022] KERNEL supported cpus:
[Wed Jan 12 03:07:46 2022]   Intel GenuineIntel

[Wed Jan 12 03:07:46 2022]   AMD AuthenticAMD

[Wed Jan 12 03:07:46 2022]   Hygon HygonGenuine

[Wed Jan 12 03:07:46 2022]   Centaur CentaurHauls

[Wed Jan 12 03:07:46 2022]   zhaoxin   Shanghai  

[Wed Jan 12 03:07:46 2022] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'

[Wed Jan 12 03:07:46 2022] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'

我已在此设备上运行 ClamAV;在此设备上未发现病毒。

此 dmesg 输出是否真的意味着在操作系统连续运行时微代码已更改?

我的计算机上的微码升级是否确实可以静默进行?

问候 Antandhidh

=====

我必须补充:

A)

type -a export yields

export is a shell builtin

b)

我有四个虚拟桌面。在其中一个虚拟桌面中,终端模拟器“konsole”正在运行。

这个konsole下有八个窗口,每个窗口中有一个bash shell。

所有这八个 shell bash 都表现出同样的错误。

C)

如果在未使用的桌面上我调用 ALT-F2 来执行命令,则 shell 也同样有问题。

d)

如果我使用基本终端 tty1..tty4 之一,它是直接的,不在 GUI 下且在“konsole”下,那么 bash shell 没有错误,我的代码相同

export VAR

工作正常。

e)

当我在未使用的 GUI 桌面中调用“konsole”时,会在终端中为用户 kubuntu 打开 bash。

在这个 bash shell 中

export WEx1="111"

没有给出错误,并且

declare -p WEx1

正确显示

declare -x WEx1="111".

printenv | grep We

正确显示

WEx1=111

当我为 root 创建一个子 shell 时(就像我一直做的那样)

sudo su

export WEx2="222"

与用户 kubuntu 的父 shell 中的情况一样,所有内容都是正确的。

F)

现在我觉得这个问题要细分为两部分:

1.

在一个无故障的 bash 中,如果有人写

export VAR

如果没有像 VAR="vvv" 这样的赋值,则 VAR 不在 printenv 中,但所有其他工作都没有错误。

这是正常的,这不是我提出问题的原因。

2.

我的问题的原因是这种错误的行为:

如果有人写

export abcd \<newline\>

然后 bash 会忽略导出和 <newline> 之间的所有内容,以便 bash 打印列表

declare -x ...

declare -x ...

ETC

如果在关键字 export 之后没有指定名称或给出选项 -p ,则应该如此。

问候 Antandhidh

=====

在此期间发生了两件事,而我自己没有采取任何相关行动:一件是坏事,另一件是好事。

不好的一点是:

我的 8 个 bash shell 中的一些出现了明显的失败,即:

我将 bash 历史文件保存在 U 盘中的目录中

/media/WE_MNT_HISTFIL/.bash_history.WE-01

当我写的时候

回显 $HISTFILE

在有缺陷的外壳中,答案是

/media/ MNT HISTFIL/root/.bash_history

用 3 个空格和 1 个空格代替字符。

这不仅仅是显示的问题,这是内部的问题。

尽管各种检查显示 USB 记忆棒上的目录名称仍然正确,但某些内部应用程序无法使用该名称。

例如 FCEDIT 长期以来被定义为:

vim -u /media/WE_MNT_HISTFIL/root/.vimrc

在有缺陷的外壳中,这不再起作用。

补救措施是:我在用户 kubuntu 的第一级 shell 上始终有一个用户 root 的子 shell。

我必须退出,杀死这个子 shell 并调用一个新的。

但这在第一次尝试时并不幸运。

好的一点是:

现在,与几天前相比,如果在相同的旧“konsole”下,我通过将鼠标放在“Fensterleiste”的选项卡之一上创建一个附加窗口,然后右键单击以获取上下文菜单并选择“创建新窗口” ”,那么第一级和第二级 shell 就可以正常工作了。

因此,我创建了一组新的 shell,并将历史记录和我的所有工作转移到新的 shell 中。

我很高兴不需要新靴子。

问候 Antandhidh

相关内容