Ubuntu内核更改 您所在的位置:网站首页 ubuntu连不上网内核怎么改 Ubuntu内核更改

Ubuntu内核更改

2024-06-07 19:40| 来源: 网络整理| 查看: 265

本文章主要是解决在 Ubuntu 上安装驱动时由于内核版本不匹配而导致失败的问题,解决方案分下面 3 步:增加目标内核、更换当前内核、删除多余内核,这三个步骤不一定都要执行,具体看下面的描述;

1 Ubuntu 增加内核

搜索目前存在的内核版本。使用命令:

apt-cache search linux|grep linux-image

安装的话,需要注意,安装内核需要安装image和header,不能只安装其中一个,比如我现在安装一个 linux-image-4.8.0-58-generic,就必须还要安装一个 linux-headers-4.8.0-58-generic; 安装命令:

sudo apt-get install linux-image-4.15.0-101-generic sudo apt-get install linux-headers-4.15.0-101-generic sudo apt-get install linux-modules-4.15.0-101-generic sudo apt-get install linux-modules-extra-4.15.0-101-generic # 如果不装会影响一些驱动 # 这些文件名的查询都可以用上面的命令列出来,如:apt-cache search linux|grep linux-modules-extra

或者先把对应包下载下来离线安装,下载参考这里;

查看内核安装信息:

dpkg --get-selections | grep linux 2 Ubuntu 更换默认启动内核

系统中存在多个内核时,需要更改启动项来选择默认启动内核。该方法有时并不奏效,建议采用下一个方法。

2.1 找到当前系统中存在的内核名称 grep menuentry /boot/grub/grub.cfg

我的显示如下,这里面只有一个内核 Ubuntu,Linux 4.15.0-101-generic(显示信息里可以找到),本来有多个,但其他内核在实验过程中已经被删除了;

if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" menuentry_id_option="" export menuentry_id_option menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4ad703eb-1550-4b99-b406-2b36bf791123' { submenu 'Ubuntu 高级选项' $menuentry_id_option 'gnulinux-advanced-4ad703eb-1550-4b99-b406-2b36bf791123' { menuentry 'Ubuntu,Linux 4.15.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-101-generic-advanced-4ad703eb-1550-4b99-b406-2b36bf791123' { menuentry 'Ubuntu, with Linux 4.15.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-101-generic-init-upstart-4ad703eb-1550-4b99-b406-2b36bf791123' { menuentry 'Ubuntu, with Linux 4.15.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-101-generic-recovery-4ad703eb-1550-4b99-b406-2b36bf791123' { menuentry 'Memory test (memtest86+)' { menuentry 'Memory test (memtest86+, serial console 115200)' { menuentry 'Windows Vista (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-2E62F26F62F23B63' { 2.2 修改 grub 启动项配置 sudo vim /etc/default/grub

修改 GRUB_DEFAULT 项为 Ubuntu,Linux 4.15.0-101-generic(从上一步中找到):

GRUB_DEFAULT="Ubuntu,Linux 4.15.0-101-generic" 2.3 更新 grub 并重启 sudo update-grub sudo reboot

注意:重启后默认启动内核可能没有改变,需要在开机时的高级选项中选择需要启动的内核,进入系统后输入:sudo apt-get update,然后再重启,如果不行再采用下面的把办法把其他内核删除;

3 Ubuntu 更换默认启动内核(方法二)

首先确认当前内核为目标内核,把其他内核都删除,然后执行:

sudo apt-mark hold linux-image-4.15.0-39-generic sudo apt-mark hold linux-headers-4.15.0-39-generic sudo apt-mark hold linux-modules-extra-4.15.0-39-generic

这样就指定了内核,系统不再自动更新内核。(Ubuntu里自动更新内核真的很烦,一更新就会导致显卡驱动失效,得重新安装)

4 Ubuntu 删除多余内核

(在删除内核之前要先进入自己的目标内核,删的时候也不要删错了!) 参考这里

4.1 查看当前内核 uname -a 4.2 查看所有内核 dpkg --get-selections | grep linux

显示:

console-setup-linux install libselinux1:amd64 install libselinux1:i386 install linux-base install linux-firmware install linux-generic-hwe-16.04 install linux-headers-4.15.0-42 install linux-headers-4.15.0-39 install linux-headers-4.15.0-39-generic install linux-headers-4.15.0-42-generic install linux-headers-generic-hwe-16.04 install linux-image-4.15.0-39-generic install linux-image-4.15.0-42-generic install linux-image-generic-hwe-16.04 install linux-libc-dev:amd64 install linux-libc-dev:i386 install linux-modules-4.15.0-39-generic install linux-modules-4.15.0-42-generic install linux-modules-extra-4.15.0-39-generic install linux-modules-extra-4.15.0-42-generic install linux-sound-base install pptp-linux install syslinux install syslinux-common install syslinux-legacy install util-linux install 4.3 移除冗余内核

所有 39 版本的对我来说都是多余的,进行删除:

sudo apt-get remove linux-headers-4.15.0-39 sudo apt-get remove linux-headers-4.15.0-39-generic sudo apt-get remove linux-image-4.15.0-39-generic sudo apt-get remove linux-modules-4.15.0-39-generic sudo apt-get remove linux-modules-extra-4.15.0-39-generic # 可以使用purge连配置文件里一起彻底删除,清理内核列表 # sudo apt-get purge linux-headers-4.15.0-39 # sudo apt-get purge linux-headers-4.15.0-39-generic # sudo apt-get purge linux-image-4.15.0-39-generic # sudo apt-get purge linux-modules-4.15.0-39-generic # sudo apt-get purge linux-modules-extra-4.15.0-39-generic

移除后重新检查:

rew $ dpkg --get-selections | grep linux console-setup-linux install libselinux1:amd64 install libselinux1:i386 install linux-base install linux-firmware install linux-generic-hwe-16.04 install linux-headers-4.15.0-42 install linux-headers-4.15.0-42-generic install linux-headers-generic-hwe-16.04 install linux-image-4.15.0-39-generic deinstall linux-image-4.15.0-42-generic install linux-image-generic-hwe-16.04 install linux-libc-dev:amd64 install linux-libc-dev:i386 install linux-modules-4.15.0-39-generic deinstall linux-modules-4.15.0-42-generic install linux-modules-extra-4.15.0-39-generic deinstall linux-modules-extra-4.15.0-42-generic install linux-sound-base install pptp-linux install syslinux install syslinux-common install syslinux-legacy install util-linux install

状态为 deinstall 表示已经卸载,如果不想显示 deinstall 这些项,并删除它们在 /lib/modual/ 下面还有这些内核的配置信息,可以采用下面的命令完全删除,如果还在就手动删:

sudo dpkg -P linux-image-4.15.0-39-generic # 其他内核名称可以用 tab 键自动补全来查看 4.4 更新系统引导

删除内核后需要更新grub移除失效的启动项

sudo update-grub #根据情况选择grub/grub2


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有