Kickstart:从网络安装时,ifcfg-eth0 文件由 kickstart 生成;从 USB 安装时,ifcfg-eth0 文件由 initrd 生成

Kickstart:从网络安装时,ifcfg-eth0 文件由 kickstart 生成;从 USB 安装时,ifcfg-eth0 文件由 initrd 生成

当我使用 kickstart 文件并通过网络安装 Fedora 19 时,生成的 ifcfg-eth0 文件由 kickstart 生成:

# Generated by parse-kickstart

但是,如果我使用相同的 kickstart 文件并通过 USB 记忆棒安装,则 ifcfg 文件由 initrd 生成。

# Generated by dracut initrd

kickstart 文件中设置网络设置的行如下:

network --device=eth0 --bootproto=dhcp --hostname=SOMEHOSTNAME

当不通过网络安装时,有没有办法保留 kickstart 文件中设置的网络设备设置?

编辑

在 kickstart 文件中的行中,我们将网络设备定义为 eth0。在新版本的 Fedora(可能还有其他发行版)中,网卡不再称为 eth0 或 eth1,操作系统使用网卡的 bios 名称(有关更多信息,请参阅这里)。

由于我们正在构建的机器上使用的脚本,我们要求使用旧的命名约定来命名网卡。我知道这不是解决问题的好办法,但投入时间修复我们使用的所有脚本是不可行的,并且超出了本项目的范围。

答案1

我通常在%postkickstart 文件的部分中执行此操作。

例如这样

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOM
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
ONBOOT=yes
EOM

然后将您想要的任何设置放入其中。我通常使用类似HWADDR=$(/usr/sbin/ifconfig eth0 | grep -Po '(?<=ether )([0-9a-f]{2}[:-]){5}([0-9a-f]{2})'或 之类的东西来解析 MAC 地址并将其添加进去,这样它看起来就像这样:

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOM
HWADDR=$HWADDR
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
ONBOOT=yes
EOM

如果设备名称已更改,则可能已由/etc/sysconfig/network-scripts/dracut 创建了一个文件。只需使用ip addr show或其他方法找出操作系统对您的 NIC 的调用,然后NAME=eth0在相应的 ifcfg-XXX文件中进行设置。这应该很简单。

答案2

我认为你应该添加选项网.ifnames = 0文件中的内核命令isolinux配置文件,该选项将设置您的网络接口为ethX 的 ifcfg而不是ifcfg-enX

网络 --设备 eth0 --bootproto dhcp --ipv6 xxxxx::10/64 --网关 xxxxx:1 --名称服务器 --主机名 foo.example.com

相关内容