我正在尝试构建一个 18.04 的自定义版本,并安装了一些额外的软件包,使用https://help.ubuntu.com/community/InstallCDCustomization(用“bionic”代替“xenial”),但是在 VM 上安装时,我收到消息“在定义的 APT 源中未找到可安装的内核”。
查看系统日志,我看到四个警告:
warning: Unable to find main/debian-installer/binary-amd64/Packages in /cdrom/dists/bionic/Release
warning: Unable to find restricted/debian-installer/binary-amd64/Packages in /cdrom/dists/bionic/Release
warning: Unable to find extras/debian-installer/binary-amd64/Packages in /cdrom/dists/bionic/Release
warning: Unable to find extras/debian-installer/binary-amd64/Packages.gz in /cdrom/dists/bionic/Release
最后还有一条信息:
base-installer: info: found kernels ''
看起来内核包列在 dists/bionic/main/binary-amd64/Packages.gz 中,并且该文件的校验和在 dists/bionic/Release 文件中是正确的。
还有什么可能缺失?
编辑:查看基本安装程序源代码中的 library.sh 代码,最后一条消息表明 /tmp/available_kernels.txt 为空。当我使用 Alt-F2 退出安装时,情况确实如此。
编辑 2:进一步查看 library.sh,该文件由 kernel_update_list 函数填充,该函数从中获取内核候选列表
chroot /target apt-cache search "^(kernel|$KERNEL_NAME)-image"
当我在安装程序 shell 中运行它时,它什么也没有返回。我可以看到许多其他软件包,包括 linux-headers-4.15.0-20-generic_4.15.0-20.21_amd64.deb,以及我尝试安装的额外软件包。但是“apt-cache search linux-headers”没有返回任何内容。
编辑 3:pool/main/l/linux-signed 中是 linux-image-4.15.0-20-generic_4.15.0-20.21_amd64.deb。标准 18.04 和我的自定义版本都有这个。但我没有看到该包在 dists/ 目录下列出的位置。
答案1
经过一些调整后,我发现问题在于 apt-ftparchive-deb.conf、apt-ftparchive-udeb.conf 和 /opt/indices/override.* 文件没有被复制到我的构建容器中。