此内核不支持非PAE CPU。

我收到了错误信息:软件包系统已损坏,据我所知,我没有使用第三方仓库。根据一些最近关于类似问题的帖子,我查看了其他有类似问题的帖子,并尝试了sudo apt-get -f install
结果:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-image-3.11.0-19-generic
Suggested packages:
  fdutils linux-lts-saucy-doc-3.11.0 linux-lts-saucy-source-3.11.0
  linux-lts-saucy-tools
The following NEW packages will be installed
  linux-image-3.11.0-19-generic
0 to upgrade, 1 to newly install, 0 to remove and 28 not to upgrade.
2 not fully installed or removed.
Need to get 0 B/57.3 MB of archives.
After this operation, 154 MB of additional disk space will be used.
Do you want to continue [Y/n]? 

指示是的
结果:
(Reading database ... 171297 files and directories currently installed.)
Unpacking linux-image-3.11.0-19-generic (from .../linux-image-3.11.0-19-generic_3.11.0-19.33~precise1_i386.deb) ...
This kernel does not support a non-PAE CPU.
dpkg: error processing /var/cache/apt/archives/linux-image-3.11.0-19-generic_3.11.0-19.33~precise1_i386.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.11.0-19-generic /boot/vmlinuz-3.11.0-19-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.11.0-19-generic /boot/vmlinuz-3.11.0-19-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.11.0-19-generic_3.11.0-19.33~precise1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我完全不知道接下来该做什么。


请将uname -r命令的输出结果发布出来。 - Avinash Raj
你好,Avinash。uname -r 的输出是 3.11.0-15-generic。 - Wombat1297
请尝试运行以下命令:sudo apt-get clean,然后再运行sudo apt-get install -f。请告诉我是否有效。 - Avinash Raj
这个没有起作用,出现了一些错误代码,比如这个内核不支持非PAE CPU和E:子进程 /usr/bin/dpkg 返回错误代码(1)。 - Wombat1297
请将dpkg --get-selections | grep linux-image-3.11.0-19-generic的输出结果翻译成中文并返回。如果它没有显示任何内容,那么就是这样。 - Avinash Raj
linux-image-3.11.0-19-generic:找不到命令 - Wombat1297
抱歉,现在看到了编辑。 - Avinash Raj
它什么也不显示 - Wombat1297
tr@tr-LIFEBOOK-S7010:$ dpkg --get-selections | grep linux-image-3.11.0-19-generic tr@tr-LIFEBOOK-S7010:$ - Wombat1297
请将apt-cache policy linux-image-3.11.0-19-generic的输出结果发布到pastebin.com。 - Avinash Raj
感谢您的帮助,Avinash。以下是翻译好的文本内容:http://pastebin.com/KYHK7Vss - Wombat1297
尝试执行以下命令:sudo apt-get cleansudo apt-get autoremovesudo rm -rf /var/lib/apt/lists - Avinash Raj
自动删除结果 - http://pastebin.com/0Vq1t1VT - Wombat1297
尝试执行以下命令:sudo apt-mark hold linux-image-generic-lts-saucy,然后再执行sudo apt-get install -f - Avinash Raj
1Avinash - 那个完美地起作用了,你真是个天才。非常感谢你! - Wombat1297
在文本编辑器中对/proc/cpuinfo进行排序,保存到相同的位置,如果你使用的是PAE cpu,问题将得到解决!似乎安装脚本与procfs的交互方式存在问题... - jatos
3个回答

我曾经遇到过早期的Pentium-m CPU的问题,它在/proc/cpuinfo的标志部分没有报告PAE。
与初始安装一样(在我的情况下是16.04),您必须在启动时添加"forcepae"内核选项。
最好的方法是将其添加到:/etc/grub.d/10_linux 搜索以下行:args="$4" 更改为:args="$4 forcepae" 保存后执行:update-grub 重新启动后,您现在将在/proc/cpuinfo的标志部分中看到"pae",并且更新将正常工作。这也将持久存在于未来的更新中。
这假设您有一个真正的PAE CPU,例如早期的Pentium-m,它不会报告其PAE功能。自1995年以来,几乎所有x86 CPU都支持PAE,所以这99.99%可能是您的问题。

1将内核参数添加到/etc/default/grub中的GRUB_CMDLINE_LINUX会更加简单可靠。/etc/grub.d中的预先存在的文件会引用前一个文件,但在软件包升级期间可能被覆盖。 - David Foerster

从评论中可以看出,sudo apt-get autoremove的输出结果是:
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree      
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
 linux-image-generic-lts-saucy : Depends: linux-image-3.11.0-19-generic but it is not installed
E: Unmet dependencies. Try using -f.

这清楚地显示了软件包linux-image-generic-lts-saucy正在尝试下载和安装依赖软件包linux-image-3.11.0-19-generic,而后者会在安装这个新内核时产生错误This kernel does not support a non-PAE CPU
保留主要软件包(linux-image-generic-lts-saucy)将解决您的问题。因此,您需要运行以下命令来保留linux-image-generic-lts-saucy软件包,
sudo apt-get clean
sudo apt-mark hold linux-image-generic-lts-saucy

最后修复依赖关系,
sudo apt-get install -f

你正在使用一颗不支持PAE的CPU,所以你很可能在升级到一个不支持它的内核。升级过程是智能的,它不会安装一个无法启动系统的内核,因此安装失败。
防止这种情况发生的方法是将你的CPU升级为支持PAE的型号(你应该购买一颗新的),或者按照Avinash在他的回答中所解释的方法暂停安装包。