在 Debian 上通过 Cobbler 集成 PXE 启动,核心思路是:
Cobbler 管理 DHCP + TFTP + PXE 引导文件,客户端通过 PXE 启动并从 Cobbler 获取系统安装配置。
下面按实战步骤说明(以 Debian 11/12 为例)。
apt update
apt install -y cobbler cobbler-web tftp tftp-hpa \
dhcp-server isc-dhcp-server xinetd syslinux \
debootstrap rsync apache2
Debian 12 中
dhcp-server通常是isc-dhcp-server
编辑:
vim /etc/cobbler/settings.yaml
关键配置(示例):
server: 192.168.1.10
next_server: 192.168.1.10
manage_dhcp: 1
manage_tftp: 1
pxe_just_once: 1
server和next_server必须是真实 IP
cobbler setting edit --name=default_password_crypted \
--value="$(openssl passwd -1 'yourpass')"
Cobbler 会自动管理 TFTP,但需确保:
systemctl enable tftp
systemctl start tftp
(Debian 通常用 xinetd 或 systemd 管理)
Cobbler 可自动生成 DHCP 配置。
编辑 Cobbler 的 DHCP 模板:
vim /etc/cobbler/dhcp.template
示例:
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
range dynamic-bootp 192.168.1.100 192.168.1.200;
filename "pxelinux.0";
next-server 192.168.1.10;
}
应用配置:
cobbler sync
mount -o loop debian-12-amd64-DVD-1.iso /mnt
cobbler import --path=/mnt --name=debian12 --arch=x86_64
查看:
cobbler distro list
cobbler profile add \
--name=debian12-auto \
--distro=debian12-x86_64 \
--kickstart=/var/lib/cobbler/kickstarts/debian12.ks
Debian 实际用 preseed:
d-i debian-installer/locale string en_US
d-i keyboard-configuration xkb-keymap select us
d-i netcfg/get_hostname string debian-client
d-i mirror/country string manual
d-i mirror/http/hostname string ftp.debian.org
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
pxelinux.0debian12-autotftp 服务未启动systemctl restart apache2
访问:
https://IP/cobbler_web
cobbler check
cobbler sync
Client (PXE)
↓ DHCP
Cobbler (DHCP)
↓ TFTP
pxelinux.0
↓ HTTP
Kickstart / Preseed
↓
自动安装 Debian
如果你愿意,我可以:
你现在是 BIOS 还是 UEFI 环境?