Linux 之十七 Ubuntu 22.04 配置内核版本、GRUB 引导、远程桌面

news2024/11/24 9:12:55

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

安装其他版本内核

  Ubuntu 中安装其他版本的内核非常简单,内核其实就是相当于一个软件(DEB 包),安装方式与其他软件并没有啥区别。首先,使用命令 uname -sr 就可以查看当前运行的内核版本。
在这里插入图片描述
  注意,这里说的是安装一个其他版本的内核,与更新当前 Ubuntu 的内核不同。如果是更新当前 Ubuntu 的内核,则是直接使用命令 sudo apt-cache search linux-image- 可以搜到针对当前 Ubuntu 版本的官方发布的不同版本的内核,然后使用 sudo apt-get install xxx 即可。
在这里插入图片描述
  https://kernel.ubuntu.com/~kernel-ppa/mainline/ 上提供的内核是由未经修改(默认情况下,Ubuntu 系统使用 Ubuntu 存储库提供的 Ubuntu 修改过的内核)的上游内核(upstream kernel)源代码制成,但使用了 Ubuntu 内核配置文件。 然后,将这些文件打包成 Ubuntu .deb 文件,以方便大家使用。

这些内核不受支持(不提供任何安全更新)

手动安装

  要安装新的 Ubuntu 的内核,首先打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/,然后从列表中选择需要的版本。打开页面就会发现 Ubuntu 官方对该内核针对不同架构平台的构建(xxx/build)和测试(xxx/self-tests)情况,所以,务必注意不要选择错了架构(例如我这里是 amd64)。
在这里插入图片描述
  如上所示,内核并不是只有一个包,通常会有 linux-headers-*-generic_*linux-headers-*_alllinux-image-unsigned-*-generic_*linux-modules-*-generic_* 四个软件包(我们通常需要的就是名字中带有 generic 字样的包),必须都进行安装。

  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 安装下载的所有包即可

  如下所示,某些内核下面可能还会有一些与 generic 对应的 lowlatency 的包。lowlatency 是用于工业嵌入式系统的低延迟 Linux 内核。官方介绍:https://ubuntu.com/blog/industrial-embedded-systems-iii。
在这里插入图片描述

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 选择要安装的内核即可
    在这里插入图片描述

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

修改默认版本内核

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

命令行方式

  1. 首先打开 sudo nano /boot/grub/grub.cfg,从中选择要配置的内核参数。这个文件就是 GRUB 启动项的菜单描述文件!GRUB 在启动中会读取该文件,然后显示出来就是我们看到的 GRUB 引导界面。
    在这里插入图片描述
      我这里没有安装其他内核,默认的是有 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 为例。
    在这里插入图片描述
      我们只需要将需要的内核对应的菜单添加到 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 编辑器,不喜欢使用命令行的可以直接安装这个工具。使用也比较简单直接,简单说一下如何安装,就不过多介绍使用方法了。
在这里插入图片描述

  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
    在这里插入图片描述
    1. GRUB_TIMEOUT_STYLE=hidden 这一行前加个 # 注释掉或者改为 GRUB_TIMEOUT_STYLE=menu
    2. 修改 GRUB_TIMEOUT=0,添加一个合适的启动超时时间,单位是秒。超时时间内如果无操作,则自动启动。
  2. 保存后退出。然后执行 sudo update-grub,最后 sudo reboot 重启应该就可以看到 GRUB 引导界面了。
    在这里插入图片描述

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

远程桌面

  Ubuntu 22.04 自带了微软搞的 RDP(Remote Desktop Protocol),并且是默认的远程桌面,因此,我们可以直接使用 Windows 的远程桌面进行连接。同时也带了 VNC 远程桌面,再也不用手动安装各种 VNC 服务端了。
在这里插入图片描述
  Ubuntu 22.04 中的这套远程桌面其实就来自于最新的 GNOME 中的 gnome-remote-desktopgnome-remote-desktop 还有个配套的命令行工具 grdctl,通过 grdctl 可以直接在 SSH 中来修改上面 GUI 中的配置。
在这里插入图片描述

处理锁屏断开问题

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

处理重启无法连接问题

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

参考

  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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MAC m1 安装 allure

一、下载安装包,并进行解压 1.1 下载安装包 官网下载包地址 1.2 双击 进行 解压 二、配置环境变量 2.1 打开配置文件 在终端输入以下命令 vi ~/.bash_profile【注意】 该命令地址 注意 中间不要出现多余的空格,否则打开会有问题,这个…

学生护眼台灯怎么选?推荐教育部认可护眼灯品牌

现在许多家庭都会购买学生护眼台灯给孩子用,那么学生护眼台灯怎么选?1. 光线的舒适度,才是最关键的:一般会在护眼技术上体现出,有全光谱灯珠、色温舒适、显色指数高、无蓝光危害、无可视频闪等,让光线照射眼…

高效、优雅的对象copy之MapStruct入门到精通,实战踩坑版

一、前言 大家在开发中,最让人头疼的就是:对象之间的拷贝,前端的VO和数据库的Entity不一致! 性能最好的就是手动set,主要是枯燥且无技术含量,不仅耗费大量时间而且很容易出错; 所以我们要成为…

jsp 新房销售竞买管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 新房销售竞买管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统采用web模式开发,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

OJ万题详解––赦免战俘(C++详解)

题目 题目背景 借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了! 题目描述 现有 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长…

VSCode调试Python文件并指定虚拟环境 附调试说明

记录在使用VSCode调试py文件时遇到的一些问题:1.启用Debug模式进行调试2.调试带参数的python文件3. 调试时指定服务器虚拟环境4. 相对路径出错5 continue(继续)、step over(单步跳过)、step in(单步调试&am…

【Python学习笔记】2. Python3 环境搭建

前言 将向大家介绍如何在本地搭建 Python3 开发环境。 Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python3 环境搭建 本节我们将向大家介绍如何在本地搭建 Python3 开发环境。 Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Unix (Solaris, Li…

我理解的测试开发与实践总结——新人篇

我理解的测试开发与实践总结——新人篇 目录导读 一、我理解的测试开发 二、测试和开发、产品的关系 三、测试开发需要具备的技能 四、我们在测试过程中需要做到什么程度 五、我们需要具备的素质 六、测试工作流程及关注点有哪些 七、平时常用的一些小工具和测试技巧 写…

windows下编译mingw版本的glew库

glew下载 https://glew.sourceforge.net/index.html windows二进制版下来是MSVC版的库文件,.lib文件。而gcc并不能使用,需要重新进行编译。 下载源码版的glew文件,解压,进入到源码目录,打开cmd 第一步:编译…

【OpenCV】 模版匹配 | 霍夫变换 | 霍夫线、圆检测

Ⅰ. 模版匹配和霍夫变换 0x00 模板匹配 原理 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,整个任务的思路就是按照滑窗的思路不断的移动模板图片,计算其与图像中对应区域的匹配度&…

春节要闻回顾 | 美SEC被列入Genesis债权人名单;亚马逊或将推出专注于游戏的NFT项目...

春节期间区块链行业要闻回顾:产业方面,达沃斯央行数字货币小组认可CBDC是央行货币的未来,但目前部署存在困难,亚马逊或将推出专注于游戏的NFT项目;政策方面,拜登政府将在未来几个月公布数字资产优先事项&am…

数据结构——顺序表(三)

数据结构 文章目录数据结构一、什么是顺序表二、顺序表的创建1.静态顺序表2.动态数据表三、顺序表的初始化、销毁四、顺序表的插入1.尾插2.头插3.任意插入总结一、什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组…

Python实例方法、静态方法和类方法详解

和类属性一样,类方法也可以进行更细致的划分,具体可分为类方法、实例方法和静态方法。和类属性的分类不同,对于初学者来说,区分这 3 种类方法是非常简单的,即采用 classmethod 修饰的方法为类方法;采用 sta…

FreeRTOS消息队列

消息队列是一种常用于任务间通信的数据结构。通过消息队列服务,任务或 中断服务例程可以将一条或多条消息放入消息队列中,同样,一个或多个任务可 以从消息队列中获得消息。本章将向大家介绍 FreeRTOS 的消息队列,通过本章 的学习&…

238. 除自身以外数组的乘积

【答案解析】:暴力不考虑其他的因素的话,将所有数据乘积起来,然后遍历数组除以当前位置数据即可。更优解法:将乘积分为两次进行,第一次先将每个位置左边的数据乘积计算出来放到返回数组中,后边第二次循环 将…

【Java面试(二)】冒泡排序的实现及优化

文章目录前言冒泡排序初步实现冒泡排序_优化_减少比较次数冒泡排序_优化_减少冒泡次数冒泡排序_优化_进一步优化比较次数总结前言 今天我们来学习与排序相关的面试题,首先我们先来学习冒泡排序,那什么是冒泡排序呢,它的关键在于数组中相邻元素…

变聪明的方法就是学习,每个人最终都会与生活和解,连村西透仿佛也捡回了昔日的勇气。

文章目录❤️‍🔥 序❤️‍🔥 往事如风迹难寻 - 成为创作者的契机❤️‍🔥 新星计划遇善者 - 出道即是巅峰MVP❤️‍🔥 知行合一心依旧 - 初心不改坚持创作❤️‍🔥 知易行难搞规划 - 这是不能说的秘密❤️‍&#x1f…

中国为何就不能有自己的豪华MPV?

文|智能相对论作者| 陈明涛是时候重新认识海外汽车品牌和国产汽车品牌的MPV了。去年,曾有雷克萨斯LM在碰撞后出现全车车门无法打开,之后车辆起火酿成悲剧,引发了全网对MPV碰撞安全的高度关注。前段时间丰田埃尔法再登热搜,这次不是…

2023最新Python国内镜像源,亲测可用

1、镜像源 pip包管理工具可以下载第三方库到本地使用,第三方库的来源地址称之为镜像源,镜像源中存放了大量的开源库供我们下载使用。pip的默认镜像源地址在国外,下载很慢,本文收集了当前国内常用的镜像源,速率由快到慢…

Java多线程 - 定时器-并发与并行-线程生命周期

文章目录多线程补充定时器并发和并行线程的生命周期多线程补充 定时器 定时器介绍: 定时器是一种控制任务延时调用,或者周期调用的技术。 作用:闹钟、定时邮件发送。 定时器实现方式: 方式一:Timer 方式二: ScheduledExecutorSe…