我正在使用 Cobbler 安装 SLES 11 SP2,它一直运行良好。最近我修改了 kickstart 文件,将根分区的大小从 18GB 更改为 36GB。令我惊讶的是,修改并没有生效 - Cobbler 创建了一个大小为 18GB 的根分区。我尝试删除配置文件,重命名它,但没有成功。
我完全搞不懂 Cobbler 从哪里得到 18GB 这个值。是否有某种缓存将旧的 kickstart 文件保存在某个地方,我需要先清除它?
我修改的部分:
<partition>
<create config:type="boolean">true</create>
<crypt_fs config:type="boolean">false</crypt_fs>
<filesystem config:type="symbol">ext3</filesystem>
<format config:type="boolean">true</format>
<fstopt>acl,user_xattr</fstopt>
<loop_fs config:type="boolean">false</loop_fs>
<lv_name>lvroot</lv_name>
<mount>/</mount>
<mountby config:type="symbol">device</mountby>
<partition_id config:type="integer">131</partition_id>
<raid_options/>
<resize config:type="boolean">false</resize>
<size>36GB</size>
</partition>
答案1
我知道这是基本的事情,但是你cobbler sync
在做出改变之后知道了吗?你可以通过 GUI 或 CLI 执行此操作。
否则,它们可能不会生效。
答案2
TL; DR:我能够通过更改正在配置的虚拟主机上用于 PXE 启动的主 NIC 的 MAC 地址来解决类似的问题。正在配置的虚拟主机作为 KVM/QEMU 的客户机运行,我正在安装 CentOS 7.5。
完整故事:ignoredisk
我的 Kickstart 文件的第 22 行有一个错误命令,导致配置过程停止,并在 VM 控制台上显示相应的错误消息。我从 Kickstart 中删除了该行,保存了它,运行了cobbler sync
,然后再次启动了 VM。Anaconda 报告了完全相同的错误,尽管 kickstart 文件显然已经更改。首先,我验证了 Cobbler 服务器是否提供了正确的、更新的 kickstart 文件:
- 运行
cobbler system report --name=my-host-name
并验证 Kickstart 文件模板的路径(不故意使用任何模板功能) - 运行
curl "http://my-cobbler-host/cblr/svc/op/ks/system/my-host-name.ks"
并验证错误行已从呈现的 Kickstart 中删除
然后我开始对虚拟主机进行故障排除:
- 删除虚拟磁盘并创建一个新磁盘,以防 Anaconda 以某种方式将 Kickstart 文件缓存在未格式化的磁盘上(可能性很小,但这也是一种侥幸)
- 删除了 NIC,并添加了一个具有不同 MAC 地址的新 NIC。此后配置顺利进行。
旧的 Kickstart 文件肯定缓存在某个地方,并与正在配置的主机的 MAC 地址相关联。它似乎没有缓存在 Cobbler 服务器上,但我不知道它还能缓存在哪里。