我正在尝试使用https://help.ubuntu.com/community/InstallCDCustomization构建 18.04 的自定义版本,并安装了一些额外的软件包(用 '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 为空。当我退出安装 w/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/ 目录下列出了该包的位置。
经过一些调整,我发现问题在于 apt-ftparchive-deb.conf、apt-ftparchive-udeb.conf 和 /opt/indices/override.* 文件没有被复制到我的构建容器中。