我正在关注这里的路线在 CentOS 6.4 i386/686 中设置虚拟机。但我收到这个错误:
$ sudo virt-install --network-bridge:br0 --name vm1 --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/images/vm1.img,size=10 --cdrom ~/winxp.iso
Usage: virt-install --name NAME --ram RAM STORAGE INSTALL [options]
virt-install: error: no such option: --network-bridge:br0
果然,virt-install --help
没有将其列为选项。但它也没有列出--cdrom
,--disk
...
是不是说明我没设置br0
好? (我非常仔细地遵循了指南。我不确定如何验证它正在寻找的内容是否存在。)
我应该指出,我没有安装 GUI——使用了“最小”ISO。
更新
$ sudo -i brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0040caab50b8 no eth0
virbr0 8000.525400dfd8ac yes virbr0-nic
也许我不明白——我以为虚拟机需要创建操作系统?或者我猜你创建了虚拟机,它假装是裸机,然后你可以进入虚拟机并告诉它使用 CD ISO 作为 CD 驱动器,然后从那里安装操作系统?
那么此时,修改完 XML 文件并重新启动 libvirtd,我就可以运行 KVM 并在其上运行 vm1,准备好安装操作系统了吗?
问题是,virt-install 仍然给出这个错误。 IMO 由于某种原因,它没有内置名为 --network-bridge 的交换机,但我不知道为什么会这样。版本错误?编译时没有选项?我忘记安装某种依赖项?这些对我来说似乎不太可能,我认为网络桥接对于虚拟机来说是相当标准的,因此我首先在这里发布一个问题。 :) 抱歉,如果我胡言乱语,但我真的只是停留在 virt-install 命令步骤上。
答案1
打字错误
--network-bridge
当我搜索时,我没有看到任何参考您引用 PDF 的 URL也不PDF 的原始来源。将开关修复为virt-install
应该可以解决您的问题。这是我相信您正在使用的文档中的示例:
# virt-install \
--network bridge:br0 \
--name vm1 \
--ram=1024 \
--vcpus=1 \
--disk path=/vm-images/vm1.img,size=10 \
--graphics none \
--location=http://my.server.com/pub/rhel6.1/install-x86_64/ \
--extra-args="console=tty0 console=ttyS0,115200"
设置网络的其他方法
以下是为 VM 创建桥接设备的其他方法,而不是使用virt-install
.
虚拟管理器
您可以在启动使用 br0 网络的虚拟机之前创建该网络。看这里:
维尔什
如果您无权访问 GUI 或无法远程显示virt-manager
到另一个可以访问 GUI 的系统,您可以使用命令行工具创建网络设备,virsh
。
首先通过编辑文件将 eth0 网络设备添加到网桥 br0 中/etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=eth0
BRIDGE=br0
BOOTPROTO=none
HWADDR=[[your mac address]]
ONBOOT=yes
USERCTL=yes
PEERDNS=yes
NM_CONTROLLED=no
然后创建文件/etc/sysconfig/network-scripts/ifcfg-br0
并添加以下内容:
DEVICE=br0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Bridge
PEERNTP=yes
接下来重新启动网络:
$ sudo service network restart
现在创建一个 libvirt VM 配置/etc/libvirt/qemu/<vmname>.xml
并向其中添加以下内容:
<interface type='bridge'>
<mac address='11:22:33:44:55:66'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
现在您可以启动 libvirtd 和虚拟机,运行以下命令时您应该看到 br0 网络:
$ sudo -i brctl show
bridge name bridge id STP enabled interfaces
br0 8000.bcaec534c9e8 no vnet5
vnet4
vnet3
vnet2
vnet1
vnet0
eth0
virbr0 8000.000000000000 yes