Ubuntu 16.04 PXE Netboot PreSeed 安装

Ubuntu 16.04 PXE Netboot PreSeed 安装

我正在尝试通过 PXE 安装 Ubuntu 16.04。我通过 TFTP/HTTP 提供 CD。我已验证 HTTP 文件正在提供服务并且 NFS 子目录可挂载。我的问题是,当我选择安装选项时,启动正常,但我只能使用手动安装而不是自动安装。我可以完成所有步骤并按原样安装 Ubuntu,但我的预置文件被完全忽略。这是我的 pxelinux.cfg:

path pxe/ubuntu/16.04/install/netboot/ubuntu-installer/amd64/boot-screens/
default pxe/ubuntu/16.04/install/netboot/ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 0
LABEL Ubuntu 16.04
    MENU LABEL Install Ubuntu 16.04 - Automatic
    KERNEL pxe/ubuntu/16.04/install/netboot/ubuntu-installer/amd64/linux
    INITRD pxe/ubuntu/16.04/install/netboot/ubuntu-installer/amd64/initrd.gz \
    APPEND auto=true priority=critical vga=788 file=pxe/ubuntu/16.04/preseed/default.seed \
    preseed/interactive=false

这是我的预置文件:

d-i debian-installer/locale string en_US
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/xkb-keymap select us
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string test
d-i mirror/country string manual
d-i passwd/root-password password r00tme
d-i passwd/root-password-again password r00tme
d-i passwd/user-fullname string Ken
d-i passwd/username string ken
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/encrypt-home boolean true
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string time.nist.gov
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
tasksel tasksel/first multiselect lamp-server
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note

我如何让预置文件在这里被识别,以便自动安装并且不需要其他问题?

答案1

根据https://serverfault.com/questions/682245/debian-preseed-cfg-language-not-set,未在 initrd 中设置的预置文件仅在设置本地化值后才会加载。您需要先在 syslinux.cfg 或 pxelinux.cfg 文件中设置以下内容:

APPEND url=http://localhost/preseed/desktop.seed vga=normal \
initrd=ubuntu- installer/amd64/initrd.gz \ 
locale=en_CA.UTF-8 console-setup/ask_detect=false  \
console-setup/layoutcode=us keyboard-configuration/layoutcode=us \ 
mirror/http/mirror=ca.archive.ubuntu.com netcfg/get_hostname=

在 APPEND 行中添加 DEBCONF_DEBUG=5 还会在运行安装时为您提供更详细的 syslog 日志。您还应该将镜像更改为适合您位置的镜像。我还认为文件=指令将在客户端计算机上查找该文件 - 而不是在 pxe 服务器上,因为它是传递给客户端计算机的启动选项。您可以在安装期间在启用 DEBCONF_DEBUG 的客户端上检查 /var/log/syslog,以验证安装程序是否看到该文件。如果安装程序找不到该文件,您将在日志中看到“preseed/file 不存在”。

相关内容