写在前面的话:
- 版权声明:本文为博主原创文章,转载请注明出处!
- 博主是一个小菜鸟,并且非常玻璃心!如果文中有什么问题,请友好地指出来,博主查证后会进行更正,啾咪~~
- 每篇文章都是博主现阶段的理解,如果理解的更深入的话,博主会不定时更新文章。
- 本文最后更新时间: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 了,大功告成,撒花~~~