我在当前的笔记本电脑以及我打算出售的旧笔记本电脑上运行 Xubuntu 18.04。我最近在后者上安装了它;它完全干净,没有 PPA 或额外的内核。
这两个系统都是 Nvidia Optimus 笔记本电脑,并且都以 UEFI 模式安装。我当前的笔记本电脑已关闭安全启动。我还没有在旧笔记本电脑上做过类似的事情。我在主笔记本电脑上从图形驱动程序 PPA 安装了 nvidia 396,并在旧笔记本电脑上使用官方 repo 中的 nvidia 390。我的主要笔记本电脑有 xanmod 内核和原装内核。旧笔记本电脑只有原装内核。
两个系统在尝试升级内核时,dpkg 都完全挂起。系统本身没有挂起,但升级卡住了。终端侦查显示:
TiZLappy:~$ pgrep dpkg
2499
TiZLappy:~$ pstree -l 2499
dpkg───linux-image-4.1───run-parts───dkms_autoinstal───dkms───dkms───frontend─┬─update-securebo
└─whiptail
TiZLappy:~$ ps aux | grep securebo
root 5146 0.0 0.1 111876 22928 pts/1 S+ 23:57 0:00 /usr/bin/perl -w /usr/share/debconf/frontend /usr/sbin/update-secureboot-policy --enroll-key
root 5160 0.0 0.0 4628 1844 pts/1 S+ 23:57 0:00 /bin/sh /usr/sbin/update-secureboot-policy --enroll-key
tiz 10409 0.0 0.0 22004 1028 pts/2 S+ 23:59 0:00 grep --color=auto securebo
TiZLappy:~$ ps aux | grep whiptail
root 5175 0.0 0.0 32356 4252 pts/1 S+ Jul03 0:00 whiptail --backtitle Package configuration --title Configuring Secure Boot --output-fd 12 --nocancel --msgbox Your system has UEFI Secure Boot enabled. UEFI Secure Boot requires additional configuration to work with third-party drivers. The system will assist you in configuring UEFI Secure Boot. To permit the use of third-party drivers, a new Machine-Owner Key (MOK) has been generated. This key now needs to be enrolled in your system's firmware. To ensure that this change is being made by you as an authorized user, and not by an attacker, you must choose a password now and then confirm the change after reboot using the same password, in both the "Enroll MOK" and "Change Secure Boot state" menus that will be presented to you when this system reboots. If you proceed but do not confirm the password upon reboot, Ubuntu will still be able to boot on your system but any hardware that requires third-party drivers to work correctly may not be usable. --scrolltext 21 84
tiz 30605 0.0 0.0 22004 1040 pts/2 S+ 00:07 0:00 grep --color=auto whiptail
因此 update-secureboot-policy 脚本直接冻结,导致整个升级停滞。我不知道 whiptail 是否应该显示某种对话框或有用的交互功能,但事实并非如此;无论是在 apt 上,还是在 上dpkg --configure -a
。
终止这些卡住的进程不允许升级过程继续进行。
这种行为在我的装有 xanmod 和图形驱动程序 PPA 的主笔记本电脑上以及在我的装有所有原装软件的旧笔记本电脑上都是相同的,所以这不能归咎于附加软件包。
答案1
使用 ps,您可以看到 whiptail 向您询问的内容。问题是:它的输出被重定向到 /dev/null。一些“更高”脚本不希望破坏它所调用的子脚本之一,并将输出重定向到 devnull。但是当您有 secureboot 时,update-secureboot-policy 输出变得非常重要。
在文件 /usr/lib/dkms/common.postinst 中,您将在结尾前约 30 行找到到 /dev/null 的重定向。删除重定向。
在我的系统上,升级的非正常停止已经破坏了系统,以至于系统不再尝试安装密钥。我希望你的系统不是处于那种状态.....