Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

这篇具有很好参考价值的文章主要介绍了Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  前段时间重新安装了 Ubuntu 22.04 LTS,安装后没有显示 GRUB 引导页面(默认自动跳过),直接使用默认内核启动,而我需要变更一下默认的内核版本,特此记录一下修改过程。

安装其他版本内核

  Ubuntu 中安装其他版本的内核非常简单,内核其实就是相当于一个软件(DEB 包),安装方式与其他软件并没有啥区别。首先,使用命令 uname -sr 就可以查看当前运行的内核版本。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  注意,这里说的是安装一个其他版本的内核,与更新当前 Ubuntu 的内核不同。如果是更新当前 Ubuntu 的内核,则是直接使用命令 sudo apt-cache search linux-image- 可以搜到针对当前 Ubuntu 版本的官方发布的不同版本的内核,然后使用 sudo apt-get install xxx 即可。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  默认情况下,Ubuntu 系统使用 Ubuntu 存储库提供的 Ubuntu 修改过的内核。出于测试、验证等原因,Ubuntu 也提供了各个版本的构建好的 Mainline 内核。而这里我们主要是讲从 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 安装其他版本的 Mainline 内核。

Ubuntu 内核与主线并不完全相同,https://people.canonical.com/~kernel/info/kernel-version-map.html 给出了对应关系

  https://kernel.ubuntu.com/~kernel-ppa/mainline/ 上提供的内核是由未经修改的上游内核(upstream kernel)源代码制成,但使用了 Ubuntu 内核配置文件。 然后,将这些文件打包成 .deb 文件,以方便大家使用。

  1. 这些内核不受支持,不提供任何安全更新
  2. 如果使用了选定的专有或树外模块(例如 bcmwl、fglrx、NVIDIA 专有图形驱动程序、VirtualBox等),需要先卸载,否则可能导致安装失败
  3. 官方说明 MainlineBuilds

手动安装

  要安装新的 Ubuntu 的内核,首先打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/,然后从列表中选择需要的版本。打开页面就会发现 Ubuntu 官方对该内核针对不同架构平台的构建(xxx/build)和测试(xxx/self-tests)情况,所以,务必注意不要选择错了架构(例如我这里是 amd64)。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  如上所示,内核并不是只有一个包,通常会有 linux-headers-*-generic_*linux-headers-*_alllinux-image-unsigned-*-generic_*linux-modules-*-generic_* 四个软件包(我们通常需要的就是名字中带有 generic 字样的包),我们可以使用 dpkg -x xx.deb ./xxx 将这些包解压看到里面的内容。

  1. linux-headers-*:这个包里主要就是我们在应用编程时使用的各种 C 头文件,因为在大版本升级时,这些头文件可能会变化,因此需要替换。
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
    linux-headers-*有时会有两个,这主要是因为 Ubuntu 提供了不用用途的内核,带有 _all 的那个包含了实际的各种文件,带有 generic_ 的那个里面通常是一些指向带有 _all 的那个里面的符号

  2. linux-image-*: 这个包里主要就是编译出来的内核镜像文件 vmlinuz
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

  3. linux-modules-*:这个包里主要就是那些 .ko 驱动
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

  如下所示,某些内核下面可能还会有一些与 generic 对应的 lowlatency 的包。lowlatency 是用于工业嵌入式系统的低延迟 Linux 内核。官方介绍:https://ubuntu.com/blog/industrial-embedded-systems-iii。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
安装步骤:

  1. 下载各个包
    wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19.17/amd64/linux-headers-5.19.17-051917-generic_5.19.17-051917.202210240939_amd64.deb
    wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19.17/amd64/linux-headers-5.19.17-051917_5.19.17-051917.202210240939_all.deb
    wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19.17/amd64/linux-image-unsigned-5.19.17-051917-generic_5.19.17-051917.202210240939_amd64.deb
    wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19.17/amd64/linux-modules-5.19.17-051917-generic_5.19.17-051917.202210240939_amd64.deb
    
  2. 直接使用命令 sudo dpkg -i *.deb 安装下载的所有包即可

Mainline Kernel Installer

  相比手动安装,Ubuntu 下还有个第三方的带 GUI 的内核安装器:Mainline Kernel Installer,我们只需要点点鼠标,其会自动从 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 下载内核的各个包,然后安装。

  1. 添加安装源 sudo add-apt-repository ppa:cappelikan/ppa -y
  2. 安装 sudo apt install mainline
  3. 从开始界面打开 Mainline Kernel Installer 选择要安装的内核即可
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

Mainline Kernel Installer 会自动过滤掉不支持当前架构平台的内核

修改默认版本内核

  在实际工作中,有时候我们需要在 Ubuntu 中添加多个不同版本的内核。所有已安装的可用内核可以在 /boot/grub/grub.cfg 这个文件中查看到。/boot/grub/grub.cfg 这里面就对应于 GRUB 引导页面中的各条目内核的启动参数。

命令行方式

  1. 首先打开 sudo nano /boot/grub/grub.cfg,从中选择要配置的内核参数。这个文件就是 GRUB 启动项的菜单描述文件!GRUB 在启动中会读取该文件,然后显示出来就是我们看到的 GRUB 引导界面。
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
      我这里没有安装其他内核,默认的是有 Linux 5.15.0-53-genericLinux 5.15.0-56-generic 这两个(以及这两个对应的 recovery mode 模式)。其中,我添加的蓝色和红色标号代表不同层级的菜单项的标号。

    不要试图直接编辑 /boot/grub/grub.cfg,这个文件会根据默认配置自动更新

  2. 编辑默认的 GRUB 配置文件:sudo nano /etc/default/grub,其中,默认的 GRUB_DEFAULT=0 就表示使用上面的第 0 个菜单项(也就是默认选中 Ubuntu 这条菜单),这里我以修改为 Linux 5.15.0-53-generic 为例。
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
      我们只需要将需要的内核对应的菜单添加到 GRUB_DEFAULT=0 这一项上即可。注意,修改的格式是需要包含菜单层级Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-53-generic 或者直接简写 1>2

    由于内容中包含了空格,因此必须使用双引号

  3. 保存后退出。然后执行 sudo update-grub,最后 sudo reboot 重启应该就可以会自动选择我们指定的内核了。

grub-customizer

  Ubuntu 中有一个名为 grub-customizer 的带 GUI 的 GRUB 编辑器,不喜欢使用命令行的可以直接安装这个工具。使用也比较简单直接,简单说一下如何安装,就不过多介绍使用方法了。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

  1. Ubuntu 20.04 版本可以直接使用命令 sudo apt install grub-customizer 来安装
  2. Ubuntu 22.04 中由于一个 BUG,官方没有提供该工具,因此需要从第三方安装源进行安装:
    sudo add-apt-repository ppa:danielrichter2007/grub-customizer 
    sudo apt update
    sudo apt install grub-customizer
    

开启 GRUB 引导页面

  在默认情况下,如果系统只有一个版本的 Ubuntu(或者说只有一个操作系统),GRUB 引导页面是不会显示的。如果需要打开 GRUB 引导页面就需要编辑 Ubuntu 中的 GRUB 配置文件(不喜欢命令行的也可以直接使用上面说的 grub-customizer)。

  1. 编辑默认的 GRUB 配置文件:sudo nano /etc/default/grub
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
    1. GRUB_TIMEOUT_STYLE=hidden 这一行前加个 # 注释掉或者改为 GRUB_TIMEOUT_STYLE=menu
    2. 修改 GRUB_TIMEOUT=0,添加一个合适的启动超时时间,单位是秒。超时时间内如果无操作,则自动启动。
  2. 保存后退出。然后执行 sudo update-grub,最后 sudo reboot 重启应该就可以看到 GRUB 引导界面了。
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

  如果只有一个内核,开启 GRUB 引导页面貌似也没啥意义,还额外增加了启动时间。通常,我们在安装了不同内核时才需要开启。当然,在某些情况下,安装内核后,相关工具可能自动就给我开启了!

远程桌面

  Ubuntu 22.04 自带了微软搞的 RDP(Remote Desktop Protocol),并且是默认的远程桌面,因此,我们可以直接使用 Windows 的远程桌面进行连接。同时也带了 VNC 远程桌面,再也不用手动安装各种 VNC 服务端了。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  Ubuntu 22.04 中的这套远程桌面其实就来自于最新的 GNOME 中的 gnome-remote-desktopgnome-remote-desktop 还有个配套的命令行工具 grdctl,通过 grdctl 可以直接在 SSH 中来修改上面 GUI 中的配置。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

处理锁屏断开问题

  上面这些都不是重点,重点是默认的远程桌面在自动息屏(屏幕变黑)或者手动执行 Lock 锁屏之后就会断开连接,然而,如果把 Ubuntu 22.04 的息屏直接关闭,屏幕就会一直亮着(容易被领导窥屏),再也不会锁屏了(手动锁屏还是会断开远程桌面)。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  Ubuntu 使用的是 GNOME 桌面,GNOME 提供了很多插件,最终,我在 GNOME 插件中发现了 Allow Locked Remote Desktop 这个插件,完美解决了上面的问题。在 Ubuntu 下,GNOME 插件有个带 GUI 的管理程序,通过管理程序可以方便安装卸载各种插件:sudo apt install gnome-shell-extension-manager gnome-shell-extensions
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

处理重启无法连接问题

  还有一种情况,当我们重启电脑后,远程桌面是无法链接的,因为默认用户没有启用自动登录,导致没有可用的账户来进行远程链接。然而,并不是开了自动登录就可以用的,因为权限问题,自动登录后不允许远程操作,这和常用的 Windows 还是有很大差别的。
Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新
  解决方法就是将修改 Ubuntu 中的秘钥链:Ubuntu 提供了 Passwords and Keys 这个 GUI 程序,打开后修改 Login 的密码为空(直接在 Login 上鼠标右键,输入原密码,新密码留空,确定即可)。以后即使重启电脑,也会自动登录并可以进行远程桌面链接了(与 Windows 体验一模一样)。

包后缀

  在 Ubuntu 下使用 apt 命令安装软件包时,经常会遇到这些包都有各种各样的后缀。apt 命令安装软件包其实就是安装了一些其他软件的依赖(运行时 .so.a 文件)。注意,包全名的格式通常是 包名-版本-patch-后缀,例如:libusb-1.0-0。此外,包的版本号与包中运行时(全名格式通常与包差不多)的版本号可能不一致!

  • 无后缀:不带任何后缀的包就是一个包含软件运行时(.so 文件)包,以供其他软件运行时调用。当我们运行某个软件时就需要安装其依赖的这种不带后缀的包! 无后缀的包中的运行时是经过版本化的(运行时文件有版本后缀),如下所示:
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

  • -dev:带 -dev 后缀的包是开发专用的,其中不仅包含运行时(.so.a 文件),还包含了该软件包对外提供的开发使用的各种头文件。当我们要编译某些软件源码时,就需要安装其依赖的带 -dev 后缀的包! -dev 后缀的包中的运行时通常是没有版本化的(运行时文件没有版本后缀),如下所示
    Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新

    1. debian、ubuntu 常用 -dev 后缀;red hat、centos、fedora 常用 -devel 后缀
  • -utils:带 -utils 后缀的包里面包含了一些该软件额外的命令行工具。

  • -dbg:带 -dbg 后缀的包里面包含调试符号,通常仅供开发人员使用该软件或调试软件的人员使用

  • -doc:带 -dbg 后缀的包里是本软件包的文档

The following packages have been kept back

  当我们使用 sudo apt upgrade 时,经常会遇到 The following packages have been kept back,被保留的软件包不会被升级。出现这个文件的很大原因是 Ubuntu 的阶段性更新策略导致的,从 21.04 开始,apt 命令实现了阶段性更新策略(以前只有更新管理器支持阶段性更新)。

  在分批更新策略之下,更新包会优先推送给部分用户,以供测试及反馈,只有没问题后才会逐步大面积推送。我们可以在 https://ubuntu-archive-team.ubuntu.com/phased-updates.html 这个页面上看到更新的推送情况。

  阶段性更新是由 python3-update-manager 提供的,具体文件是在 /usr/lib/python3/dist-packages/UpdateManager/Core/UpdateList.py 中实现的。apt 设置与更新管理器设置略有不同:

Update-Manager::Always-Include-Phased-Updates;
APT::Get::Always-Include-Phased-Updates True;

Update-Manager::Never-Include-Phased-Updates;
APT::Get::Never-Include-Phased-Updates True;

可以通过告诉 apt 忽略阶段性更新来尽早获得更新:sudo apt -o APT::Get::Always-Include-Phased-Updates=true upgrade文章来源地址https://www.toymoban.com/news/detail-469104.html

参考

  1. https://linuxhint.com/install-linux-kernel-ubuntu/
  2. https://linuxhint.com/install-upgrade-latest-kernel-ubuntu-22-04/
  3. https://codechacha.com/ja/ubuntu-update-kerenl/
  4. https://askubuntu.com/questions/1246962

到了这里,关于Linux 之十八 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面、包后缀(-dev、-dbg等)、Ubuntu 阶段更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 22.04 版本的网络配置

    Ubuntu 22.04 版本是一款强大的操作系统,它提供了广泛的网络配置选项,包括网络连接、路由设置、DNS 配置和防火墙配置等。在这篇博客中,我们将仔细介绍关于 Ubuntu 22.04 版本的网络配置。 网络连接配置 在安装 Ubuntu 22.04 后,通常需要配置网络连接以便访问互联网。有两种

    2024年02月09日
    浏览(30)
  • 【Linux】Ubuntu22.04版本下实现gcc版本的快速切换

    本文将介绍如何在Ubuntu22.04版本下实现gcc版本的快速切换。 本文首发于 ❄️慕雪的寒舍 有的时候,不同版本的gcc会造成一些细微的差异,导致相关的一些工具不兼容,比如用于单元测试覆盖率生成的gcov/lcov工具,在不同的gcc版本下可能会出现不同的结果。 为了确定是否是

    2024年01月22日
    浏览(42)
  • Ubuntu22.04服务器版本配置静态IP地址

    1、进入文件/etc/netplan/00-installer-config.yam 2、配置文件内容  注意:编写文件内容时一定要格式正确,不然会出差 3、重启网络  4、查看IP  这样就配置成功啦 5、如果是18.04一下版本参照这个配置,22.04版本也可以用这个,重启网络的时候会有报错,但不会有影响  重启网络后

    2024年02月11日
    浏览(43)
  • Ubuntu22.04内核升级

            第二句代码运行出来有一堆内核,我是选择linux-image-X.X.X-X-generic 格式的。比如我选择的是最新的linux-image-6.2.0-26-generic          更新内核要把所有相关的都更新了,不然到了引导界面,进不了系统,只能进旧版本内核系统。         请参考文章: https://blog

    2024年02月06日
    浏览(32)
  • 如何安装ubuntu22.04以及ubuntu各个版本配置国内源和ssh远程登录

      目录 一.简介 二.配置root账号 三、配置IP地址 四、更换阿里云源 五、配置ssh,root可以远程登录安装ssh服务 VMware17.0安装教程(2023最新最详细)-CSDN博客 VMware虚拟机安装Ubuntu22.04教程(2023最新最详细)-CSDN博客 Ubuntu22.04(非虚拟机)安装教程(2023最新最详细)-CSDN博客 Linux是一

    2024年02月08日
    浏览(50)
  • Ubuntu 22.04 编译 Linux 5.16.5 内核报错:FAILED: load BTF from vmlinux: Invalid argument

    Ubuntu22.04 自带内核版本是5.15,今日想编译一个高版本的 5.16.5 内核,不料编译却报错: 网上搜了下说要将 .config 配置文件中 CONFIG_DEBUG_INFO_BTF=y 改为 CONFIG_DEBUG_INFO_BTF=n。这样编译就不会报错。但是我想要开启这个选项【和ebpf相关的选项】,进一步搜索发现是由于 pahole 这个程

    2024年02月05日
    浏览(29)
  • Linux环境搭建(Ubuntu22.04)+ 配置共享文件夹(Samba)

    Linux开发环境准备 搭建Linux开发环境所需要的软件如下: VMware虚拟机: 用于运行Linux操作系统的虚拟机软件之一,VMware下载安装在文章中不做说明,可自行百度谢谢 Ubuntu光盘镜像: 用于源代码编译,有闲置计算机或服务器可以下载服务器版(没有图形用户界面),只有一台

    2024年02月04日
    浏览(47)
  • 【Linux环境配置】EPYC7642双路服务器Ubuntu22.04安装配置纪要

    服务器核心配置为: 双路 EPYC7642 服务器, 显卡 GeForce RTX 3060 , HDMI输出, 千兆网卡x2 …; 补充采购配件: USB/TypeC转千兆网卡(用于笔记本和服务器直连办公), DVI公 to HDMI母转接头(适配老款显示器), VGA公对公显示线, HDMI音频分离器, HDMI线x2, USB转3.5mm外置声卡, 腾

    2024年01月22日
    浏览(50)
  • Ubuntu 22.04 更新完内核重启卡在 grub 命令行解决办法

    升级内核过程中出现如下警告,然后重启引导失败: Warning: os-prober will not be executed to detect other bootable partitions 屏幕内容如下: 因为卡在 Grub 2 命令行界面,我们需要手动输命令引导。 一般情况只需要输入 normal 并回车,就能像往常一样正常启动。 如果报不认识该命令,那就

    2024年02月08日
    浏览(38)
  • ubuntu 22.04版本安装

    Ubuntu 22.04安装 1、学习环境下安装ubuntu 22.04版本。 Linux:ubuntu 22.04。 学习环境:VMware虚拟机。 系统镜像:ubuntu 22.04。 2、开始安装ubuntu。 1)开启虚拟机,点击文件,新建虚拟机。 2)选择高级,然后下一步。 3)选择硬件兼容性。 4)安装客户机系统。 5)选择虚拟机中所安装

    2023年04月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包