0. 基本命令
uname -a # 查看當前所使用內核 dpkg -l | grep linux # dpkg后是lmn的l。查看當前操作系統的內核 dekg -l | grep linux-image
1. 下載特定版本內核
(1) 命令行
sudo dpkg --get-selections |grep linux-image sudo apt-get install linux-image-*****
這種方法,網上有不少例子可參考。
(2) synaptic
synaptic是一個很好圖形化界面,可以通過搜索來快速定位所需安裝的內核。
sudo apt-get install synaptic # 安裝 sudo synaptic # 打開
主要參考【1】,大致方法: 搜索 -- 選中所需安裝的內核,右鍵 選擇“選中以便安裝 ”(Mark for Installation) -- (軟件最上方)應用(apply)-- 查看細節(show details) ,再次確認是否正確選中了想要的版本 -- 應用 (apply),【1】中舉了個例子“一般來說普通電腦需要更換的為headers和image,不要選錯了。請直接找到需要更換的headers,如:需要更換 linux-headers-4.15.0-13-generic,右擊選擇“Mark for Installation”。可以看到 linux-headers-4.15.0-13也被順便勾起來了,這個也是必要的,請不要取消。往下找,找到linux-image-4.15.0-13-generic,右擊同樣“Mark for Installation”。請注意務必和前面的headers對應。現在我們有三個勾選選項了。注:建議連帶linux-image-extra-4.15.0-13-generic一起安裝,雖然不一定用得上,還會讓你的kernel列表更臃腫,但是這可以修復潛在的驅動不兼容問題 。”
2. 設置系統默認啟動內核
下列內容摘自[2],部分經過修改
(1) 查看所有內核名稱
grep menuentry /boot/grub/grub.cfg
結果:
if [ x"${feature_menuentry_id}" = 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-simple-3a45027c-15ed-4cec-a233-7c3927e74d11' { submenu 'Ubuntu 高級選項' $menuentry_id_option 'gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu,Linux 4.15.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-43-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu,Linux 4.15.0-33-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-33-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu,Linux 4.15.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-29-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Ubuntu, with Linux 4.15.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' { menuentry 'Memory test (memtest86+)' { menuentry 'Memory test (memtest86+, serial console 115200)' { menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-246AF2746AF241DA' {
例如需要的內核是 Ubuntu,Linux 4.15.0-29-generic
(2) 執行下面命令后,修改引導界面配置中的 GRUB_DEFAULT="Ubuntu,Linux 4.15.0-29-generic".
sudo gedit /etc/default/grub # 如果在tty中的話,因為無法打開gui,只能使用vi或vim sudo vi /etc/default/grub 或 sudo vim /etc/default/grub
(3) 執行下面命令后,這時候會有WARNING提示修改GRUB_DEFAULT的名稱,例如我的WARNING提示我將GRUB_DEFAULT修改為GRUB_DEFAULT="gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11>gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11"。將該名字復制重新進行步驟二,然后再sudo update-grub。
sudo update-grub # 更新引導
(4) 重啟
sudo reboot
參考
[1] https://blog.csdn.net/qq_42030961/article/details/82740315
[2] https://blog.csdn.net/cf_wu95/article/details/85984956