背景
我們知道在很多的情況下,會多核心的版本進行要求。這時候就需要我們對核心的版本進行更新。最簡單的方式就是重新安裝一個核心版本的虛拟機。但是這種方式太過于繁瑣,本章主要介紹兩種線上更新的方式。
檢視核心版本
uname -mrs
輸出如下:
Linux 4.4.0-62-generic x86_64
可知目前的核心版本為4.4.0,并且 CPU為X86架構64位。其中我們更新核心時,架構和位數不要搞錯了。
方法一:通過apt指令安裝更新核心
- 通過
apt-cache search linux-generic
檢視目前可用的核心版本。
指令輸出的結果如下:
linux-generic - Complete Generic Linux kernel and headers
linux-generic-lts-utopic - Complete Generic Linux kernel and headers (dummy transitional package)
linux-generic-lts-vivid - Complete Generic Linux kernel and headers (dummy transitional package)
linux-generic-lts-wily - Complete Generic Linux kernel and headers (dummy transitional package)
linux-generic-lts-xenial - Complete Generic Linux kernel and headers (dummy transitional package)
linux-image-4.4.0-21-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-extra-4.4.0-21-generic - Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
linux-generic-hwe-16.04 - Complete Generic Linux kernel and headers
linux-generic-hwe-16.04-edge - Complete Generic Linux kernel and headers
linux-image-4.10.0-14-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.10.0-19-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.10.0-27-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.10.0-28-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.10.0-30-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.10.0-32-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP
linux-image-4.11.0-13-generic - Linux kernel image for version 4.11.0 on 64 bit x86 SMP
linux-image-4.11.0-14-generic - Linux kernel image for version 4.11.0 on 64 bit x86 SMP
linux-image-4.4.0-22-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-24-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-28-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-31-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-34-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-36-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-38-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-42-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-43-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-45-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-47-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-51-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-53-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-57-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-59-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-62-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-63-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-64-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-66-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-67-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-70-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-71-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-72-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-75-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-77-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-78-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-79-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-81-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-83-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-87-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-14-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-19-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-20-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-21-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-22-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-24-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-26-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-27-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-28-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-30-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.10.0-32-generic - Linux kernel extra modules for version 4.10.0 on 64 bit x86 SMP
linux-image-extra-4.11.0-13-generic - Linux kernel extra modules for version 4.11.0 on 64 bit x86 SMP
linux-image-extra-4.11.0-14-generic - Linux kernel extra modules for version 4.11.0 on 64 bit x86 SMP
大緻如上圖所示,我們可知目前的最新的核心版本号是4.11.0-14。其實,我們有時并不需要更新到最新的核心版本。更新到大于目标版本即可。
2.安裝指定的核心版本
執行下面的指令:
sudo apt-get install linux-image-4.11.0-14-generic
,其中linux-image-4.11.0-14-generic指定的是核心版本。
指令輸出大緻如下:
正在讀取軟體包清單... 完成
正在分析軟體包的依賴關系樹
正在讀取狀态資訊... 完成
下列軟體包是自動安裝的并且現在不需要了:
gyp javascript-common libjs-inherits libjs-jquery libjs-node-uuid libjs-underscore libnvpair1linux libssl-dev libssl-doc libuutil1linux libuv1-dev
libzfs2linux libzpool2linux python-pkg-resources zfs-doc zlib1g-dev
使用'apt autoremove'來解除安裝它(它們)。
建議安裝:
fdutils linux-tools linux-headers-4.11.0-14-generic
下列【新】軟體包将被安裝:
linux-image-4.11.0-14-generic
更新了 0 個軟體包,新安裝了 1 個軟體包,要解除安裝 0 個軟體包,有 5 個軟體包未被更新。
需要下載下傳 20.4 MB 的歸檔。
解壓縮後會消耗 70.7 MB 的額外空間。
擷取:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.11.0-14-generic amd64 4.11.0-14.20~16.04.1 [20.4 MB]
已下載下傳 20.4 MB,耗時 22秒 (894 kB/s)
正在選中未選擇的軟體包 linux-image-4.11.0-14-generic。
(正在讀取資料庫 ... 系統目前共安裝有 67751 個檔案和目錄。)
正準備解包 .../linux-image-4.11.0-14-generic_4.11.0-14.20~16.04.1_amd64.deb ...
Done.
正在解包 linux-image-4.11.0-14-generic (4.11.0-14.20~16.04.1) ...
正在設定 linux-image-4.11.0-14-generic (4.11.0-14.20~16.04.1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.11.0-14-generic /boot/vmlinuz-4.11.0-14-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.11.0-14-generic /boot/vmlinuz-4.11.0-14-generic
update-initramfs: Generating /boot/initrd.img-4.11.0-14-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.11.0-14-generic /boot/vmlinuz-4.11.0-14-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.11.0-14-generic /boot/vmlinuz-4.11.0-14-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.11.0-14-generic /boot/vmlinuz-4.11.0-14-generic
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.11.0-14-generic
Found initrd image: /boot/initrd.img-4.11.0-14-generic
Found linux image: /boot/vmlinuz-4.4.0-62-generic
Found initrd image: /boot/initrd.img-4.4.0-62-generic
done
- 重新開機系統
reboot
4. 檢視目前系統的核心版本
uname -mrs
,有時第一次重新開機,核心的版本并沒有發生改變,你可以嘗試再重新開機一次。
該方法主要是用于能夠聯網的環境,并且成功率并不是很高。如果當你的環境不能聯網,或者第一種方式不成功,你可以考慮使用第二種方式。
方法二:通過下載下傳最新核心deb包安裝核心
- 從
中找到你目标的核心版本,之後進去檢視相應的deb檔案。https://kernel.ubuntu.com/~kernel-ppa/mainline/
- 下載下傳對應的deb檔案。其中需要注意的是架構以及版本。架構就是ARM,X86,MIPS或PowerPC系列。其中的版本有generic和lowlatency兩個版本,我建議選擇generic版本。其中all是必選的。比如我選擇5.20的版本核心,需要下載下傳以下檔案:
linux-headers-5.2.0-050200_5.2.0-050200.201907231526_all.deb
linux-headers-5.2.0-050200-generic_5.2.0-050200.201907231526_amd64.deb
linux-image-unsigned-5.2.0-050200-generic_5.2.0-050200.201907231526_amd64.deb
linux-modules-5.2.0-050200-generic_5.2.0-050200.201907231526_amd64.deb
- 安裝下載下傳的.deb包
sudo dpkg -i *.db
- 重新開機系統
reboot