![自定义安装在一个 VirtualBox 中有效,而不在其他 VirtualBox 或硬件上有效](https://linux22.com/image/1165338/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AE%89%E8%A3%85%E5%9C%A8%E4%B8%80%E4%B8%AA%20VirtualBox%20%E4%B8%AD%E6%9C%89%E6%95%88%EF%BC%8C%E8%80%8C%E4%B8%8D%E5%9C%A8%E5%85%B6%E4%BB%96%20VirtualBox%20%E6%88%96%E7%A1%AC%E4%BB%B6%E4%B8%8A%E6%9C%89%E6%95%88.png)
我正尝试通过 USB 记忆棒在 Dell Optiplex 9020 上安装自定义 18.04 ISO,但出现“在定义的 APT 源中未找到可安装的内核”。
当我在 VirtualBox 上使用相同的 ISO 安装时,我没有看到此错误。
对于这两台机器,我都看到 /cdrom/pool/main/l/linux-signed/linux-image-4.15.0-20-generic_4.15.0-20.21_amd64.deb,并且该软件包列在 /cdrom/dists/bionic/main/binary-amd64/Packages.gz 中。对于这两台机器,/target/etc/apt/sources.list 只是:
deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180426)]/ bionic extras main restricted
但是当我从安装程序控制台运行时:
chroot /target apt-cache search linux-image
在 9020 上,这不会返回任何内容,但在 VirtualBox 中,我可以看到列出的软件包。此外,当我运行
chroot /target apt-cache policy
在虚拟机中,它显示 2 个目录,分别用于主目录和受限目录(amd64 和 i386),以及 1 个用于 extras amd64 的目录。在 9020 上,它仅显示 extras 目录。
为什么会这样?在 9020 上运行时安装程序是否无法获取某些信息?
编辑:尝试
chroot /target apt update
我懂了
Ign:1 cdrom://Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180426) bionic InRelease
Ign:1 cdrom://Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180426) bionic Release
Reading package lists... Done
Building dependency tree
Reading state information... Done
但‘apt-cache policy’仍然返回与之前相同的结果。
运行“chroot /target apt --print-uris update”会找到所有路径,但列出的文件是 Packages.xz,而不是 Packages.gz,大小为 0,并且没有哈希!这些行如下:
'cdrom://[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180426)]/dists/bionic/main/binary-amd64/Packages.xz' Ubuntu-Server%2018.04%20LTS%20%5fBionic%20Beaver%5f%20-%20Release%20amd64%20(20180426)_dists_bionic_main_binary-amd64_Packages 0
编辑:我在另一个 VirtualBox VM 上尝试了此操作,但出现了同样的错误。所以,这个好的 VM 不知何故“脏”了!不过,所有症状都相同。
经过进一步检查,问题在于并非所有 apt-ftparchive 命令都运行。见下文。如果有人向我解释为什么一个 VBox 可以找到软件包而另一个找不到,我会将其标记为答案。
答案1
由于我的人为错误,只有最后一行被运行:
apt-ftparchive -c $APTCONF generate $BASEDIR/apt-ftparchive-deb.conf
apt-ftparchive -c $APTCONF generate $BASEDIR/apt-ftparchive-udeb.conf
apt-ftparchive -c $APTCONF generate $BASEDIR/apt-ftparchive-extras.conf
运行另外两个解决了这个问题。conf 文件如下https://help.ubuntu.com/community/InstallCDCustomization,其中“xenial”更改为“bionic”。如该网页所述,我还必须将覆盖文件放在 /opt/indices 中,如下所示:
pushd /opt/indices
for SUFFIX in extra.main main main.debian-installer restricted restricted.debian-installer; do
wget http://archive.ubuntu.com/ubuntu/indices/override.bionic.$SUFFIX
done