Когда я устанавливаю Fedora 19 с файлом кикстарта и через сеть, сгенерированный файл ifcfg-eth0 генерируется кикстартом:
# Generated by parse-kickstart
Однако, если я использую тот же файл кикстарта и устанавливаю его через USB-накопитель, файл ifcfg создается initrd.
# Generated by dracut initrd
Строка в файле кикстарта для установки сетевых настроек выглядит следующим образом:
network --device=eth0 --bootproto=dhcp --hostname=SOMEHOSTNAME
Можно ли сохранить настройки сетевого устройства, установленные в файле кикстарта, если установка выполняется не по сети?
В строке файла кикстарта мы определяем сетевое устройство как eth0. В новой версии Fedora (и, возможно, других дистрибутивов) сетевые карты больше не обозначаются как eth0 или eth1, ОС использует имя BIOS для карты (подробнее см. Вот).
Из-за сценариев, которые используются на машинах, которые мы создаем, мы требуем, чтобы сетевые карты назывались в соответствии со старым соглашением об именах. Я знаю, что это не лучшее решение проблемы, но затраты времени на исправление всех скриптов, которые мы используем, неосуществимы и выходят за рамки этого проекта.
Думаю, стоит добавить опцию net.ifnames = 0 команда ядра в файле Isolinux.cfg, опция установит ваш сетевой интерфейс на ifcfg-ethX вместе с ifcfg-enX.
сеть --device eth0 --bootproto dhcp --ipv6 xxxxx :: 10/64 --gateway xxxxx: 1 --nameserver --hostname foo.example.com
Я обычно делаю это в %post
раздел файла кикстарта.
например вот так
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOM
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
ONBOOT=yes
EOM
И установите там любые настройки, которые хотите. Я обычно разбираю MAC-адрес с чем-то вроде HWADDR=$(/usr/sbin/ifconfig eth0 | grep -Po '(?<=ether )([0-9a-f]{2}[:-]){5}([0-9a-f]{2})'
или что-то в этом роде и добавьте его тоже, чтобы он выглядел так:
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOM
HWADDR=$HWADDR
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
ONBOOT=yes
EOM
Если имя устройства изменилось, возможно, в папке /etc/sysconfig/network-scripts/
созданный уже дракутом. Просто используйте ip addr show
или что-то еще, чтобы узнать, как ОС называет вашу сетевую карту, и установите NAME=eth0
в соответствующем ifcfg-XXX
-файл. Это должно быть достаточно просто.