kickstart
使用文件安装具有静态 IP 网络的 CentOS 7 来宾虚拟机 时,会引发以下错误:
[3.835698] dracut-cmdline[81]: parse-kickstart ERROR:
'network --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy':
missing --device
我怀疑问题在于主机上尚未设置具有静态 IP 的桥接网络来替换默认的 NAT 配置。但是需要输入哪些具体命令才能解决此错误?
启动文件:
启动文件是:
#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --device=eno1 --onboot=on --activate
network --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy
network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted someLongHashedPassword
# System timezone
timezone someTimeZone --isUtc --nontp
user --name=someUserName --password=someLongHashedPassword --iscrypted --gecos="someUserName"
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information. Erases all partitions from the sda drive.
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part pv.204 --fstype="lvmpv" --ondisk=sda --size=1902212
part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=winnt"
part /boot --fstype="xfs" --ondisk=sda --size=500
volgroup centos --pesize=4096 pv.204
logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol /home --fstype="xfs" --size=230400 --name=home --vgname=centos
logvol swap --fstype="swap" --size=7808 --name=swap --vgname=centos
%packages
@base
@compat-libraries
@core
@debugging
@development
@network-file-system-client
@remote-system-management
@security-tools
@smart-card
@virtualization-hypervisor
@virtualization-platform
@virtualization-tools
@virtualization-client
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
virt-install
命令:作为参考,virt-install
触发安装的命令是:
virt-install \
--name=public-centos7 \
--disk path=/dev/mapper/centos-fifth,size=241 \
--graphics none --vcpus=1 --memory=2048 \
--location /tmp/CentOS-7-x86_64-Minimal-1611.iso \
--network bridge=virbr0 --os-type=linux --os-variant=rhel7.0 \
--initrd-inject=/tmp/vm.ks \
--extra-args "ks=file:/tmp/vm.ks console=ttyS0"
当前配置:
另外,
brctl show
在主机上给出:
[root@remote-host ~]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400c4a345 yes virbr0-nic
vnet0
添加
--device=eno1
根据@thrig的建议,我将kickstart文件的有问题的行更改为:
# Network information
network --onboot=on --activate
network --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy --device=eno1
network --hostname=localhost.localdomain
这似乎已经解决了错误。但我还不确定,因为我还在解决下游问题。
答案1
错误消息指示“ missing --device
”,因此最好尝试将设备与网络配置行关联:
network --bootproto=static --ip=... --device=eno1
如果设备名称根据其 PCI 位置出现一些未知名称,这可能会出现问题,尽管还有其他选项可以控制它(例如,使用ksdevice=eth0 net.ifnames=0 biosdevname=0
内核参数 PXE 引导事物)。特别是,redhat“安装指南”文档表明确实应该指定设备名称:
请注意,这被视为已弃用的行为;在大多数情况下,您应该始终
--device=
为每个网络命令指定一个。如果--device=
缺少选项,则同一 Kickstart 文件中任何后续网络命令的行为都是未指定的。