Linux内核下载编译过程中出现的错误
在本次实验中出现了各种各样的错误
①首先在第一次下载过程中出现了
make[1]: *** 没有规则可制作目标“debian/canonical-certs.pem”
然后在网上搜寻方法是看到一种原因及解决办法为:在下载的Linux内核源码的解压文件目录下,当你在终端中执行过配置内核的命令#make menuconfig 后,会在该目录下生成一个隐藏文件.config,在终端使用root权限(su)使用命令#gedit .config,删除以下内容(Ctrl+f快速查找)
CONFIG_SYSTEM_TRUSTED_KEYS="***debian/canonical-certs.pem***"
将引号里面的内容置为空,
之后再make,这种方法确实没有再报错。当然这个.config文件就找了一点时间,最后找到的过程是:
在此次过程中也学到了一些命令:ctrl+h显示隐藏目录 ctrl+f查找
②在下载过程中出现警告:
no instruction mnemonic suffix given and no register operands; using default for `bts' cc [m] net/netfilter/xt_dscp.o
在使用make install下载过程中出现的警告,但是正在下载我也做不出处理,感觉好像没有影响,百度了一下原因:这是由于在64位机器上编译的原因,需要告诉编译器,我们要编译32位的code,在所有Makefile的AS后面添加 --32,CFLAGS中加-m32。
③在第一次下载过程中,下载必要依赖的时候:
无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 11274(unattended-upgr)持有
N: 请注意,直接移除锁文件不一定是合适的解决方案,且可能损坏您的系统。
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
尝试解决方案:
在终端输入命令,再重新下载
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock-frontend
成功解决!
④在删除旧内核过程中按如下命令执行
查看当前使用内核uname -r
查看Linux中安装了哪些内核:
dpkg --list |grep linux 命令
linux-image-版本号:内核映像文件
linux-headers-版本号:内核头文件
linux-image-extra-版本号:内核扩展文件
删除多余内核文件:
使用 sudo apt-get purge linux-image-<版本号> 命令
在此过程中出现如下错误:
bash: 未预期的记号 "newline" 附近有语法错误
然后未找到合适的解决办法,但是不影响后续安装新的内核。
⑤在内核下载编译完成使用reboot命令重启之后,在最下面出现
kernel panic not syncing vfs unable to mount root fs on unknown-block 0 0
的错误,查询百度得到可能的情况:
出现这种错误的原因多半是/boot盘空间不够,Ubuntu内核做了许多的更新,而默认情况下,Ubuntu将保留旧的内核并将它们添加到可在Grub2启动加载器菜单中启动的可用内核列表中。
但是在后续使用旧内核进去系统,使用df -h命令来查看/boot,发现并未爆满
最后也没有找到合适的解决办法,可能是系统版本的问题,所以我舍弃该版本内核,下载了一个新的内核进行尝试,为了不出现跟第一次安装同样的情况,在开始新的尝试之前,先对Ubuntu22.04可以配置的内核进行搜索,最后看到Linux-6.0-rc7可以正常安装并使用,于是又开始了新一轮的下载安装编译,努力还是有回报的,在解决完所有的问题后,linux -6.0-rc7可以正常使用.