我正在尝试使用 kickstart 文件而不是预置文件来自动执行一些桌面安装。我了解该过程会将 ks.cfg 文件转换为相关的预置文件
PXE启动后遇到的错误在ks文件的nfs --server=abcd --dir=/path/to/ubuntu/media部分。
它一直给出 nfs mount 错误。确认客户端和 nfs 服务器之间没有 FW。
在其他虚拟控制台上,我也无法挂载 -t nfs abcd:/path/to/ubuntu/media /mnt - 它只是挂起。
我确实在 /var/log/syslog(虚拟控制台 4)中看到一条警告,提示 Xenial 不支持这种镜像类型或其他内容。
不支持用于设置基本安装的 nfs 服务器吗?那么必须通过 http:// 或 ftp:// 等进行吗?
有人可以指出我正确的文档来设置预置文件并通过一些自定义技巧进行自动桌面安装吗(例如添加 salt minion 以便我可以使用 saltstack 配置客户端桌面)
谢谢,
编辑:
这是我所做的 -
安装 ubuntu-16.04 桌面 iso 并将内核和 initrd 文件复制到 pxe 服务器。服务器将 pxe 启动并获取 dhcp,然后通过 tftp 获取 pxelinux.0 并启动它,然后读取 pxe 文件以处理以下步骤
在 /tftpboot/pxelinux.cfg/
串行 0 115200 0x303 超时 6000 默认菜单.c32 提示 0 菜单开始桌面测试 标签 Ubuntu 16.04 桌面 内核 ks/内核/vmlinuz-ubuntu-16.04 附加 initrd = ks / kernel / initrd-ubuntu-16.04.img preseed / url = http://mirrorhost.localdomain/repo/ubuntu/preseed/ubuntu-16.04-preseed.cfg - ipappend 2
- 创建的预种子文件是:
di debian-installer/语言字符串 en di debian-installer/country 字符串 US di debian-installer/locale 字符串 en_US di console-keymaps-at/keymap 选择我们 di keyboard-configuration/xkb-keymap 选择我们 di netcfg/get_hostname 字符串未分配的主机名 di netcfg/get_domain 字符串未分配域 di hw-detect/load_firmware 布尔值 true di 镜像/国家字符串手册 di mirror/http/hostname 字符串 mirror.localdomain di mirror/http/目录字符串/repo/ubuntu di mirror/http/proxy 字符串 di mirror/suite 弦乐 xenial di passwd/root-login 布尔值 true di passwd/make-user 布尔值 false di passwd/root-password-加密后的密码 XXX di clock-setup/utc boolean false di 时间/区域字符串 美国/东部 di clock-setup/ntp 布尔值 true di clock-setup/ntp-server 字符串 10.0.0.1 di partman-auto/磁盘字符串 /dev/sda di partman-auto/method 字符串 lvm di partman-lvm/device_remove_lvm 布尔值 true di partman-lvm/device_remove_lvm_span 布尔值 true di partman-md/device_remove_md 布尔值 true di partman-auto/purge_lvm_from_device 布尔值 true di partman-auto-lvm/new_vg_name 字符串系统 di partman-lvm/confirm 布尔值 true di partman/对齐字符串“最佳” di partman-auto-lvm/guided_size 字符串最大值 di partman-auto/expert_recipe 字符串 \ 启动根目录 :: \ 128 100 256 扩展3 \ $主要{ } \ $可启动{ } \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/boot} \ 。 \ 1024 100 8192 Linux 交换 $lvmok{ } \ $in_vg{ vg_root } \ lv_name{ lv_swap } \ 方法{ 交换 } 格式{ } \ 。 \ 409610051200 扩展4\ $lvmok{ } \ $in_vg{ vg_root } \ lv_名称{lv_root} \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/ } \ 。 4096 100 8192 扩展4 \ $lvmok{ } \ $in_vg{ vg_root } \ lv_名称{lv_变量} \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/var} \ 。 1024 100 4096 扩展4 \ $lvmok{ } \ $in_vg{ vg_root } \ lv_名称{ lv_tmp } \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/tmp} \ 。 4096100 -1 EXT4 \ $lvmok{ } \ $in_vg{ vg_root } \ lv_name{ lv_extra } \ 方法{ 格式 } 格式{ } \ use_filesystem{ } 文件系统{ ext4 } \ 挂载点{/extra} \ 。 di partman-partitioning/confirm_write_new_label 布尔值 true di partman/choose_partition 选择完成 di partman/confirm 布尔值 true di partman/confirm_nooverwrite 布尔值 true di base-installer/install-recommends boolean false di base-installer/kernel/linux/initramfs-generators 字符串 initramfs-tools di apt-setup/non-free 布尔值 true di apt-setup/contrib 布尔值 true di apt-setup/services-select 多选安全 di apt-setup/security_host 字符串 security.debian.org taskel taskel/first multiselect none di pkgsel/include 字符串 openssh-server less htop vim pidgin lsb-release zip unzip ubuntu-desktop mate-desktop-environment mate-desktop-environment-extras build-essential rsh-server rsync lightdm eclipse thunderbird rdesktop qpdf subversion git synergy libreoffice mysql-workbench ntpdate di pkgsel/upgrade 选择 full-upgrade 人气竞赛 人气竞赛/参与 boolean false di grub-installer/only_debian 布尔值 true di 完成安装/reboot_in_progress 注意
我猜我的问题是如何正确地将预置文件传递给 pxelinux。我认为它根本没有被读取。我将语言设置为 fr,但它甚至没有接受。
pxelinux.cfg/ 解析 debian-installer 预置文件的正确语法是什么?更新 w/Ans:在 pxelinux.cfg 文件中使用 url="http://webserver/preseed.cfg"
非常感谢,