Ubuntu内核更改 | 您所在的位置:网站首页 › ubuntu连不上网内核怎么改 › Ubuntu内核更改 |
本文章主要是解决在 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 实验室设备网 版权所有 |