寫在前面的話:
- 版權聲明:本文爲博主原創文章,轉載請註明出處!
- 博主是一個小菜鳥,並且非常玻璃心!如果文中有什麼問題,請友好地指出來,博主查證後會進行更正,啾咪~~
- 每篇文章都是博主現階段的理解,如果理解的更深入的話,博主會不定時更新文章。
- 本文最後更新時間:2020.4.28
正文開始
上一篇文章寫了如何製作一個可以自己修改引導參數,並且具有 “persistence” 的 debian live cd.
由於 debian-live-9.9.0-amd64-xfce.iso 的內核版本爲 4.9,出於某種原因,博主需要升級一下內核,將其升級到 5.0.13,接下來就講一下如何給 live cd 升級內核。
第1步:查看當前內核版本
命令 uname -r
用於查看當前內核版本:
同時查看此時 /boot 下的內容:
第2步:獲取新內核deb包
下載內核 5.0.13 的源碼,並編譯,得到幾個 deb 包,最主要的是下面兩個包:
linux-headers-5.0.13_5.0.13-1_amd64.deb
linux-image-5.0.13_5.0.13-1_amd64.deb
或者也可以直接在網上下載對應的 deb 包,就可以免去自己編譯內核的麻煩啦~
第3步:安裝內核
dpkg -i linux-headers-5.0.13_5.0.13-1_amd64.deb
dpkg -i linux-image-5.0.13_5.0.13-1_amd64.deb
# 或
dpkg -i *.deb
在這個後面會報錯:
update-initramfs is disabled (live system is running on read-only media).
並且查看此時 /boot 目錄下的內容:
會發現好像少生成了一個 initrd 文件,這裏有兩種方法可以解決:
- 手動創建 initrd,詳細見第4步;
- 解決方法看這裏,若採用這種方法,在解決問題後可以重新執行安裝內核命令,如果成功生成 initrd 文件,就可以跳過第4步了。
第4步:手動創建 initrd(非必須)
這一步非必須,如果已經成功生成 initrd 文件,就可以跳過這步了,沒有成功生成的可以選擇手動創建 initrd:
/usr/sbin/update-initramfs.orig.initramfs-tools -c -k 5.0.13
中間可能會報一堆類似 W: Possible missing firmware … 之類的訊息,可以暫時忽略,之後可以自己去下載 firmware.
再次查看一下 /boot 目錄下的內容:
發現 initrd 已經創建完成了,接下來就可以修改引導的內容了。
第5步:查看掛載信息
命令 df -h
用於查看掛載信息:
可以看到 ISO 所在的分區掛載在 /lib/live/mount/persistence/sda1,首先來看一下這個目錄下的內容:
再看一下 /lib/live/mount/persistence/sda1/live 的內容:
爲方便看,這裏再放一下 /boot 目錄截圖:
接下來需要將 /boot 下生成的關於 kernel 5.0.13 的相關文件都複製到 /lib/live/mount/persistence/sda1/live 下:
cp /boot/config-5.0.13 /lib/live/mount/persistence/sda1/live/
cp /boot/initrd.img-5.0.13 /lib/live/mount/persistence/sda1/live/
cp /boot/System.map-5.0.13 /lib/live/mount/persistence/sda1/live/
cp /boot/vmlinuz-5.0.13 /lib/live/mount/persistence/sda1/live/
第6步:修改引導文件內容
vim /lib/live/mount/persistence/sda1/boot/grub/grub.cfg
主要修改下圖紅色圈起來的地方,藍色圈起來的地方可以改也可以不改,當然改了的話會更好看更清晰啦:
改成如下圖所示內容,要和複製到 /lib/live/mount/persistence/sda1/live 下的名字一樣:
修改完之後,重啓,查看一下內核版本,會發現已經變成了 5.0.13 了,大功告成,撒花~~~