下面按“从快到慢、从外到内”的思路,给你一套在 Debian 上调试 Cobbler 的实用方法。Cobbler 在 Debian 上常见问题是:服务没起、权限不对、TFTP/DHCP 不对、SELinux/AppArmor、配置未 sync。
Debian 上一般是 systemd:
systemctl status cobblerd
systemctl status apache2
systemctl status tftpd-hpa
systemctl status isc-dhcp-server # 如果用 cobbler 管理 dhcp
如果 cobblerd 没起:
journalctl -u cobblerd -xe
cobbler check
它会直接告诉你:
cobbler sync先按提示解决
很多“改了不生效”的问题,都是没 sync:
cobbler sync
看是否有报错。
/etc/cobbler/settings.yaml(新版)或 /etc/cobbler/settings(旧版)
重点检查:
manage_dhcp: 1
manage_tftpd: 1
server: <cobbler_server_ip>
next_server: <cobbler_server_ip>
⚠️ Debian 上 server / next_server 必须是 IP,不是 hostname
如果你让 Cobbler 管理 DHCP:
cat /etc/cobbler/dhcp.template
sync 后检查:
cat /etc/dhcp/dhcpd.conf
测试 DHCP:
dhcpd -t
客户端拿不到 IP,通常原因:
subnet 内tftp localhost
tftp> get pxelinux.0
失败说明 TFTP 没起或路径错。
Debian 默认路径:
/var/lib/tftpboot
Cobbler 同步后应有:
/var/lib/tftpboot/pxelinux.0
/var/lib/tftpboot/grub/
Cobbler Web(旧版):
systemctl status apache2
tail -f /var/log/apache2/error.log
测试:
curl http://localhost/cobbler/
/var/log/cobbler/cobbler.log
实时看:
tail -f /var/log/cobbler/cobbler.log
journalctl -u cobblerd
Debian 有 AppArmor,可能拦 TFTP:
aa-status
可临时测试:
aa-complain /etc/apparmor.d/usr.sbin.tftpd-hpa
Cobbler 对 Python 版本敏感:
旧 Cobbler 可能不兼容。
在客户机:
TFTPpxelinux可开串口或看屏幕:
PXE-E32: TFTP open timeout
→ TFTP / 防火墙问题
No boot file received
→ DHCP next_server 错
systemctl restart cobblerd
cobbler check
cobbler sync
tail -f /var/log/cobbler/cobbler.log
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
cobbler check 输出我可以一步一步帮你调。