无法使用 preseed.cfg 自动安装 ubuntu 16.04,http 不起作用

无法使用 preseed.cfg 自动安装 ubuntu 16.04,http 不起作用

无法使用 preseed.cfg 安装 ubuntu 16.04

http 协议似乎在预置文件中不起作用

版本:ubuntu 16.04 server,包括服务器和客户端

当我在文件 preseed.cfg 中设置 http 协议时,如下所示,

d-i mirror/protocol string http
#d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.18.81
d-i mirror/http/directory string /ubuntu/
d-i mirror/http/proxy string

日志显示它从 us.archive.com/ubuntu 获取镜像/源,

有时它来自 gb.archive.com/ubuntu 或 archive.com/ubuntu,但不是我设置的。

并且它不会转到 wget URLhttp://192.168.18.81/ubuntu我设置的。

我尝试将协议从 http 更改为 ftp。我发现它按我的意愿工作。preseed.cfg 的一部分如下:

d-i mirror/protocol string ftp
#d-i mirror/country string manual
d-i mirror/ftp/hostname string 192.168.18.81
d-i mirror/ftp/directory string /ubuntu/
d-i mirror/ftp/proxy string

我认为这是一个简单的问题

从 preseed 设置最快的镜像

是不是preseed不支持http?还是我哪里操作错了?

以下是整个过程。

apt-get 安装 isc-dhcp-服务器 -y

cat /etc/dhcp/dhcpd.conf |grep -v ^#|grep -v ^$

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
allow booting;
allow bootp;
subnet 192.168.18.0 netmask 255.255.255.0 {
       range 192.168.18.50 192.168.18.100;
       option subnet-mask 255.255.255.0;
       option routers 192.168.18.1;
       option domain-name-servers 223.5.5.5;  
       option broadcast-address 10.255.255.255;
       filename "pxelinux.0";
       next-server 192.168.18.81;
}

apt-get 安装 tftp-hpa

猫/等/默认/ tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure
apt-get install apache2 -y
mount iso/ubuntu-16.04.6-server-amd64.iso /var/www/html/ubuntu
cp -r /var/www/html/ubuntu/install/netboot/* /var/ftpd/
service apache2 start

cat /var/ftpd/pxelinux.cfg/default

# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path ubuntu-installer/amd64/boot-screens/
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 3

猫/var/ftpd/ubuntu-installer/amd64/boot-screens/txt.cfg

default install
label install
    menu label ^Install
    menu default
    kernel ubuntu-installer/amd64/linux
    append initrd=ubuntu-installer/amd64/initrd.gz ramdisk_size=100000 auto=true priority=critical interface=auto netcfg/no_default_route=true preseed/url=http://192.168.18.81/preseed.cfg BOOT_DEBUG=2 
label cli
    menu label ^Command-line install
    kernel ubuntu-installer/amd64/linux
    append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 

答案1

预置确实支持 http 协议。事实上,它应该支持安装程序提出的任何问题,并且所有问题都可以通过种子文件来回答(根据版本和您的系统,这里和那里确实存在一些罕见的小错误,initrd但这里无关紧要)。

当问题的答案是错误的/不受支持的,安装程序通常会忽略您的 di stanza 并让安装程序决定做什么(取决于您选择的priority内核参数或安装程序中的手动选择)。

空字符串通常用空字符串回答或跳过问题。

查看您的镜像节似乎存在一个问题:

d-i mirror/protocol string http
#d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.18.81
d-i mirror/http/directory string /ubuntu/
d-i mirror/http/proxy string
  • 当使用 http 时,不需要d-i mirror/protocol节 - http 是默认的。Debian 的预置文档在部分B.4.4. 镜像设置评论此节。
  • 关于您的存储库位置问题:您已评论了关键d-i mirror/country节 - 仅在使用 ftp 协议时才允许:

如果选择 ftp,则不需要设置镜像/国家字符串。

因此,安装程序在使用 http 时会忽略镜像选择,并选择其默认值之一。这样做时,它会忽略hostnamedirectory节,因为安装程序从未询问过相关问题。 如果你想使用自己的仓库不要注释此行- 保留原样string manual

总体而言,您的镜像部分应如下所示:

d-i mirror/country string manual
d-i mirror/http/hostname string 192.168.18.81
d-i mirror/http/directory string /ubuntu/

一些资源可帮助您更好地理解和使用预播:

有关预置的官方 Debian 文档

官方的预置示例文件包含 Debian 记录的几乎所有可用参数:Debian 10(破坏者)。Debian 10 是最新版本。

相关内容