我已经尝试了所有能想到的方法,但肯定是缺少了一些东西。
我正在使用 PXE 设置,从 Web 服务器提取所有内容来安装 16.04。
“默认”文件包含:
LABEL Ubuntu 16.04 Desktop
MENU LABEL Xenial 16.04 Desktop
KERNEL 1604/ubuntu-installer/amd64/linux
append vga=normal ks=http://192.168.1.251/ks-1604-64-desktop.cfg initrd=1604/ubuntu-installer/amd64/initrd.gz biosdevname=0 hostname=desktop
链接中的 KERNEL 由 TFTP 提供,是来自 Ubuntu 网站的“网络安装”映像的 rsync 镜像。该映像和实际安装 iso 映像都是今天获取的。
我的 Kickstart 文件包括:
preseed --owner d-i live-installer/net-image string http://192.168.1.251/ubuntu-1604.amd64/install/filesystem.squashfs
但是,当它在安装程序中抓取 filesystem.squashfs 时,它会终止并在系统日志中记录以下内容:
base-installer: info: Downloading /cdromhttp://192.168.1.251/ubuntu-1604.amd64/install/filesystem.squashfs to /tmp/live-installer/filesystem.squashfs
这当然会失败,因为 URL 前面不应该加上“/cdrom”。我可以从 preseed 行中看出它正在读取 squashfs 的路径,但我的任何配置文件中都没有“cdrom”这个词。
我还尝试添加路径作为附加选项,这对于我的 14.04 安装非常有用,如下所示:
append vga=normal ks=http://192.168.1.251/ks-1404-64-desktop.cfg initrd=ubuntu-installer/amd64/initrd.gz live-installer/net-image=http://192.168.1.251/ubuntu.1404.amd64/install/filesystem.squashfs biosdevname=0 hostname=desktop
关于如何覆盖 16.04 版的 /cdrom 前缀,有什么想法吗?
答案1
我找到了一个解决方法。编辑 fetch-url 文件,修剪变量 url 中的 /cdrom 字符串。然后重新打包 initrd,一切看起来都很好。我刚刚测试了一下。很酷。感谢 Mengda 和我一起调查。