Centos
使用 kickstart 安裝 CentOS 7 的靜態 IP 地址
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
這似乎解決了錯誤。但我還不確定,因為我還在解決下游問題。
錯誤消息指示“
missing --device
”,因此可以嘗試將設備與網路配置行相關聯:network --bootproto=static --ip=... --device=eno1
如果設備名稱根據它們的 PCI 位置出現一些未知名稱,這可能會出現問題,儘管還有其他選項可以控制它(例如,使用
ksdevice=eth0 net.ifnames=0 biosdevname=0
核心參數進行 PXE 引導)。特別是,redhat“安裝指南”文件表明確實應該指定設備名稱:請注意,這被視為已棄用的行為;在大多數情況下,您應該始終
--device=
為每個網路命令指定一個。--device=
如果缺少選項,則未指定同一 Kickstart 文件中任何後續網路命令的行為。