ubuntu降低你使用的內核到指定版本

2021-12-28 羽林君
前言:

今天給大家分享一篇ubuntu更換內核的系列文章之一。為什麼要換內核呢,這個對於我們大部分人有一樣的原因,例如你要跑的某個包只能在某一個特定的內核版本,或者你升級了你的ubuntu內核導致你的電腦驅動等出現問題,所以你需要更換你系統的內核。

作者:良知猶存

轉載授權以及圍觀:歡迎關注微信公眾號:羽林君

或者添加作者個人微信:become_me

情節介紹:

我也遇到類似的問題,在解決問題的過程中,發現和網上的文章有些不一樣,甚至有些操作可以讓我們更快的更換內核。所以特來分享一下。這裡我就是按照自己遇到的情況,給大家做一個簡單的分享。

步驟一:查看自己的版本,進行安裝下載

首先我先來查看一下我當前的內核版本 我現在是5.11.0-38的版本,而我需要將我ubuntu內核修改為需要5.8.0-63

uname -a
Linux lyn 5.11.0-38-generic #42~20.04.1-Ubuntu SMP Tue Sep 28 20:41:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

查詢Linux指定版本的鏡像:

apt-cache search linux| grep 5.8.0-63

一般來說我們有幾種方式去安裝你對應的內核,從官網上下載.deb包安裝(下面有描述),也可以使用

apt-cache search linux

命令進行查找我們系統裡面是否有對應的安裝包選項,用apt-get install 進行安裝會很快。

請添加圖片描述

1、如果查詢不到,可以在/etc/apt/sources.list配置中,加入源:deb http://security.ubuntu.com/ubuntu trusty-security main

2、也可以在http://kernel.ubuntu.com/~kernel-ppa/mainline/網站中找到所需的deb包

安裝上面查到的指定版本內核的linux系統頭文件及鏡像

請添加圖片描述

安裝結束後,我們可以查看此時系統裡面安裝好的內核版本

其中可以看到5.8.0-63已經安裝完成

dpkg --get-selections  | grep linux-image

步驟二:安裝顯卡和網卡等驅動

其實步驟二是我的步驟三,因為大部分介紹的文章中都是安裝內核之後直接進行內核啟動順序配置,然後我按照對應內核啟動進去之後,發現我的電腦的顯卡和網卡等驅動無法使用。

網上給的參考意見,都是讓我用lsb_release -a命令之後,查看自己對應的網卡驅動型號,去官網下載驅動包進行編譯和安裝。

但是我不想進行隨意下載編譯和安裝,所以我去電腦裡面一點點搜索對應的包,看是否是自己遺漏了包。果然在一番對照下,我用dpkg --get-selections  | grep linux(之前是grep linux-image命令,主要查看鏡像,沒有查看對應的配套的驅動包)命令比對出,我電腦本身完好驅動的5.11內核對應的全部包和我後續回退版本5.8.0的區別,發現我缺少與之對應的 modules-extra和tools包,

dpkg --get-selections  | grep linux

查找到之後,我直接進行apt-get install進行安裝這兩個包

請添加圖片描述請添加圖片描述

安裝完之後進行重啟,機器正常運行,顯卡驅動和網卡驅動正常工作。後來我發現,我們也可以在官網去下載對應的.dep,進行dep包的安裝。

步驟三:選擇對應內核做第一啟動

首先查看當前系統中內核的啟動順序

grep 'menuentry' /boot/grub/grub.cfg

在這裡插入圖片描述
menuentry 'Ubuntu,Linux 5.8.0-63-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-63-generic-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea' {
  menuentry 'Ubuntu, with Linux 5.8.0-63-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-63-generic-recovery-f44d1976-8e56-4c37-8ce1-d345b8f923ea' {

例如,這裡我想要更換5.8.0-63,就選擇 Ubuntu,Linux 5.8.0-63-generic這一欄,注意不是(recovery mode).複製上面信息中menuentry之後的單引號內的字符串

比如我是Ubuntu,Linux 5.8.0-50-generic

再修改內核啟動順序

注意:如果你升級的版本比當前內核版本高的話,默認新安裝的內核就是第一順序啟動的,只需重啟系統就行了,否則,則需要修改配置文件,具體如下:

vi /etc/default/grub

GRUB_DEFAULT=0

修改為

GRUB_DEFAULT=」Ubuntu,Linux 5.8.0-50-generic「

如果遇以下警告

警告:Please don't use old title `Ubuntu,Linux 5.8.0-63-generic' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-63-generic' (for versions before 2.00) or `gnulinux-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea>gnulinux-5.8.0-63-generic-advanced-f44d1976-8e56-4c37-8ce1-d345b8f923ea' (for 2.00 or later)

那我們還需要把 GRUB_DEFAULT=」Ubuntu,Linux 5.8.0-50-generic「

修改為

GRUB_DEFAULT=」Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic「

生效配置

sudo update-grub

請添加圖片描述

然後關機重啟,上面是修改系統內核啟動步驟,但是我遇到一些問題,並不是很順利,我中間還用了手工選項,進入我對應的內核中,下面是對應的選項。

在重啟後的電腦初始化選項中選擇ubuntu的高級選項

請添加圖片描述

進入之後選擇你對應要使用的內核

請添加圖片描述

成功進入

結語

這就是我分享我在ubuntu使用中降低內核的使用的情況,如果大家有更好的想法和需求,也歡迎大家加我好友交流分享哈。

作者:良知猶存,白天努力工作,晚上原創公號號主。公眾號內容除了技術還有些人生感悟,一個認真輸出內容的職場老司機,也是一個技術之外豐富生活的人,攝影、音樂 and 籃球。關注我,與我一起同行。

                              ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

推薦閱讀

【1】在球場上我向人民幣玩家低了頭

【2】嵌入式底層開發的軟體框架簡述

【3】CPU中的程序是怎麼運行起來的 必讀

【4】cartographer環境建立以及建圖測試

【5】設計模式之簡單工廠模式、工廠模式、抽象工廠模式的對比

本公眾號全部原創乾貨已整理成一個目錄,回復[ 資源 ]即可獲得。

相關焦點

  • 升級 Ubuntu Linux 內核的幾種不同方法 | Linux 中國
    方法 1 - 使用 dpkg 升級 Linux 內核(手動方式)這個方法可以幫助你從 kernel.ubuntu.com 網站手動下載可用的最新 Linux 內核。如果你打算安裝最新版(而不是穩定版或者正式發布版),那這種方法對你會很有用。從以上連結下載 Linux 內核版本。編寫這個指南的時候,最新的可用版本是 5.0-rc1,最新的穩定版是 v4.20。
  • 如何在 Ubuntu/Linux Mint 中安裝最新 Linux內核
    它提供了一個帶有「主線mainline」內核更新列表的簡單界面,允許在基於 Ubuntu 的發行版中一鍵安裝、刪除或清除內核。如何在Ubuntu中安裝Mainline:注意:主線內核由Ubuntu內核團隊提供,用於測試和調試。它們不受支持,也不適合生產使用。您應該只在它們可能修復當前內核的一個嚴重問題時才安裝它們。
  • 如何在 Ubuntu Linux 16.04 LTS 中使用多個連接加速 apt-get/apt
    你需要使用到 apt-fast 這個 shell 封裝器。它會通過多個連接同時下載一個包來加速 apt-get/apt 和 aptitude 命令。所有的包都會同時下載。它使用 aria2c 作為默認的下載加速器。
  • 內核探測工具systemtap簡介
    下面我以兩種方式安裝並運行 systemtap:方法一編譯內核以支持systemtap 我們重新編譯內核讓其支持systemtap,首先你想讓內核中有調試信息,編譯內核時需要加上 -g 標誌;其次,你還需要在配置內核時將 Kprobe 和 debugfs 開關打開。
  • 內核調試神器SystemTap — 簡介與使用(一)
    (2) CentOS/RedHat發行版使用yum安裝下列rpm包即可:systemtap:SystemTap包gcc:C語言編譯器elfutils:提供庫函數來分析調試信息kernel-devel:編譯內核模塊所需的內核頭文件及模塊配置信息kernel-debuginfo
  • Linux驅動05 | 內核編譯
    當前使用了一個發布版本的內核,如當前的內核為linux-3.4.39-gec,那麼這個時候開發板的內核也得是linux-3.4.39-gec,若版本不一致,內核模塊無法進行加載。(一)解壓6818_kernel_wen.tar.gz到ubuntu的家目錄root@ubuntu:~# tar -zxvf /mnt/hgfs/share/6818_kernel_wen.tar.gz -C ~root@ubuntu:~# ls
  • 本地內核調試神器 —— livekd 使用總結
    雙機內核調試(需要另外一臺機器來做雙機調試)2. 讓系統崩潰(可以使用 sysinternals中的 notmyfault 或者 使用快捷鍵讓系統崩潰,並設置 系統崩潰的時候自動保存轉儲文件)(有點小題大作了)。3. 使用 sysinternals 中的 livekd,不需要特殊設置,綠色環保。以上幾種方案中,使用 livekd 最方便快捷。
  • 優麒麟:Ubuntu 的官方中文版本 | Linux 中國
    在這篇文章中,你將了解到優麒麟,它是什麼,它為什麼被創建,它的特色是什麼。麒麟作業系統最初由中華人民共和國的國防科技大學的院士在 2001 年開發。名字來源於麒麟,這是一種來自中國神話的神獸。麒麟作業系統的第一個版本基於 FreeBSD,計劃用於中國軍方和其它政府組織。
  • 如何在 Ubuntu Linux 上使用 KVM 雲鏡像 | Linux 中國
    如何下載並使用運行在 Ubuntu Linux 伺服器上的 KVM 雲鏡像?如何在 Ubuntu Linux 16.04 LTS 伺服器上無需完整安裝即可創建虛擬機?如何在 Ubuntu Linux 上使用 KVM 雲鏡像?基於內核的虛擬機(KVM)是 Linux 內核的虛擬化模塊,可將其轉變為虛擬機管理程序。
  • Linux內核Ramdisk(initrd)機制
    在早期的Linux系統中,一般就只有軟盤或者硬碟被用來作為Linux的根文件系統,因此很容易把這些設備的驅動程序集成到內核中。但是現在根文件系統可能保存在各種存儲設備上,包括SCSI, SATA, U盤等等。因此把這些設備驅動程序全部編譯到內核中顯得不太方便。
  • 安裝Ubuntu 18 Server 系統
    安裝Ubuntu 18 Server 系統環境準備    1、 由於Ubuntu 系統的內核接近最新版本
  • Ubuntu安裝記錄
    如果是要像我一樣,想當作主力系統來用的,就下Ubuntu 18.04.02LTS版本,LTS是官方長期維護的版本,更穩定,一直維護到2023年4月。如果你不禁用Secure Boot的話,Ubuntu系統將無法運行,不明白為什麼的同學,自行Google!禁用N卡然後重點來了!!!你這時候應該進入引導界面了,但是不要著急!!!把光標移到Install Ubuntu,先別著急敲下回車鍵。
  • futurerestore ,iOS 系統刷機到指定版本
    iOS 系統可以隨意刷機到指定版本嗎?答案是可以的。使用 futurerestore ,配合 SHSH2,在一定條件下,可以實現升級/降級/平刷到指定版本,這是目前最主要的可行的刷機方案。當然,事情沒這麼簡單,需要滿足特定條件。文章有點長,請耐心。
  • Ubuntu 16.04 新手必須掌握的Linux命令
    如何快速查看Linux系統運行狀態(網卡網絡、系統內核、系統負載、內存使用情況、當前啟用終端數量、歷史登錄記錄、命令執行記錄以及救援診斷等相關命令的使用方法)?    其中,搭配-a參數可完整地查看當前系統的內核名稱、主機名、內核發行版本、節點名、系統時間、硬體名稱、硬體平臺、處理器類型以及作業系統名稱等信息。
  • 使用Ubuntu Multipass創建虛擬機(方便快捷)
    看到了Ubuntu界面,感覺比以前使用Ubuntu的時候漂亮了挺多。於是打開了Ubuntu的官網。ubuntu.com/, 無意間看到了multipass工具。於是嘗試了下。覺得特別好用。對於那些不想花錢購買機器、又想有自己的多個linux系統的朋友,multipass很好用。而且關鍵的一點是用起來特別方便。接下來我就把我使用multipass的操作記錄下來。分享給大家。
  • 使用 GDB + Qemu 調試 Linux 內核
    Linux 內核編譯和文件系統製作2.1 Linux 內核編譯編譯內核和製作文件系統在 CentOS 7.7 的機器上。源碼從國內清華的源下載:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/, 此處選擇 linux-4.19.172.tar.gz 版本。
  • Ubuntu系統安裝(虛擬機版)
    products/workstation-pro/workstation-pro-evaluation.html這要還是不知道怎麼下的話,就拿我網盤的吧連結:https://pan.baidu.com/s/1KOptruhBU7oCt3gAMM8lDg提取碼:08n3安裝好後輸入許可證激活,下面三個我都試過,都是可以用的(僅限VMware16版本
  • 想知道你的系統內核在幹什麼嗎?看這裡—— Livekd
    來查看使用方法。通過 -k 來指定 kd.exe 的路徑。通過 -m 來指定使用 windbg 而不是 kd.exe 作為內核調試器。可以傳遞參數給 kd.exe 或者 windbg.exe。-hv指定要調試的Hyper-V VM的名稱或GUID。-hvd包括系統管理程序頁面(僅Windows 8.1及更高版本)。
  • 乾貨 | 教你在Win10的ubuntu子系統下編譯micropython
    先確認一下Windows10系統的版本,如果是LTSB版(Long Time Service Branch 企業長期服務版),就需要更換到企業版。如果還沒有安裝過Linux子系統功能,首先需要在控制面板的「程序和功能」中允許適用於Linux的Windows子系統功能,並重新啟動計算機。
  • uCareSystem:Ubuntu/Linux Mint 的一體化系統更新和維護工具
    你可以添加一個 cron 任務來自動化這些任務。uCareSystem Core 會自動刷新發行版倉庫、更新可用包列表、卸載包(過期包、孤兒包和舊的 Linux 內核)以及清理取回的包來節省系統磁碟空間。