Ubuntu系統Linux核心公升級 降級

2021-09-21 05:59:46 字數 2820 閱讀 1757

本文主要針對ubuntu系統由於linux核心版本的不相容導致的問題,而需要對核心進行公升級、降級所需的操作及步驟。

首先,我所遇到的問題可以描述為:在更新了ubuntu 19.04後,linux核心公升級至了5.0.0-13,而nvidia顯示卡驅動被迫公升級至了418以上,導致tensorflow(版本1.13.0)在執行tf.session()語句時顯示卡會卡住,無法繼續執行,甚至連ssh都會卡住無法操作。經過分析判斷為核心版本過高導致,所以需要採取核心降級的方式,將至4.18.0-18。

我是在遇到問題後嘗試重新安裝cuda及顯示卡驅動,遇到了unable to locate kernel source 報錯,判斷是核心問題。

下面介紹如何對ubuntu系統的linux系統進行降級(公升級同理)

命令列輸入grep menuentry /boot/grub/grub.cfg檢視可用的核心資訊

例如

if [ x"$" = 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-******-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

submenu 'advanced options for ubuntu' $menuentry_id_option 'gnulinux-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

menuentry 'ubuntu, with linux 5.0.0-13-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-13-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

menuentry 'ubuntu, with linux 5.0.0-13-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.0.0-13-generic-recovery-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

menuentry 'ubuntu, with linux 4.18.0-18-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-18-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

menuentry 'ubuntu, with linux 4.18.0-18-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-18-generic-recovery-5b5cabf4-e78b-457c-b10f-b662ba4c57d9' {

menuentry 'memory test (memtest86+)' {

menuentry 'memory test (memtest86+, serial console 115200)' {

可以發現我這裡有5.0.0-13以及4.18.0-18兩個版本

sudo apt-get install linux-headers-x.x.x-x-generic linux-image-x.x.x-x-generic
編輯/etc/default/grub檔案中的grub_default

預設為grub_default=0

降級時如需特定版本的核心

則將上述語句修改為:

grub_default="advanced options for ubuntu > ubuntu, with linux 4.18.0-18-generic"

grub_default="gnulinux-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9>gnulinux-4.18.0-18-generic-advanced-5b5cabf4-e78b-457c-b10f-b662ba4c57d9"
我是採用後者成功的,兩條語句功能一樣,但似乎適用的版本不同,這一點還沒搞清楚,不過新一些的系統可以直接嘗試第二種方式。引號內的版本資訊均可在步驟1的輸出內容中找到,只要確認是所需核心版本即可

sudo update-grub

sudo reboot

重啟後可用uname -r檢視,核心版本已成功降級。

以上就是ubuntu系統的linux核心降級方法,核心降級多見於ubuntu系統初更新的一段時間,導致驅動、上層框架、應用程式等的相容性出現異常,或強制公升級、適配了高版本驅動等帶來了程式執行異常等問題。

針對我所遇到的具體問題,在核心降級後,重新安裝cuda10.0以及對應的顯示卡驅動(版本410.48)以及對應的cudnn,就恢復正常了。

Linux系統核心

bin 該目錄中存放linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。boot 該目錄下存放的都是系統啟動時要用到的程式,當用lilo引導linux時,會用到這裡的一些資訊 dev 該目錄包含了linux系統中使用的所有外部裝置,它實際上是訪問這些外部裝置的埠,你可以訪問這些外部裝置,與...

Ubuntu系統公升級核心

docker要求ubuntu系統的核心版本高於 3.10,伺服器核心版本太低,得把3.2.0 126.141版本公升級到 4.15.0 041500.201802011154,步驟如下 uname ar 開啟選中要公升級的核心版本,sudo dpkg i deb 命令報錯 package kmod ...

更換ubuntu系統核心版本

本文是將ubuntu12.04版本下低版本核心公升級到高版本 3.2.0 23 generic pae 4.0.4 sudo tar zxf linux 4.0.4.tar.gz c usr src二 安裝必要的軟體包。在正式替換之前先安裝幾個必要的軟體包 sudo apt get install ...