如何创建虚拟机从 CLI?
创建虚拟机
First, download an ISO cd image of some OS you want to run. For Ubuntu, you can find these at: http://www.ubuntu.com/getubuntu/download Double click on the name of the host. The Status column should read Active Right click on the name of the host, and select New This will start a wizard to guide you through the rest of your VM creation Enter your virtual machine details Name: foo Choose Local install media (ISO image or CDROM), or you can use another method if you know what you're doing Forward Locate your install media Use ISO image Browse to find the ISO you downloaded earlier Optional: Select the matching OS Type Optional: Select the matching Version Forward
主要只是为了我自己的启发。
答案1
只需使用:
virt-install \
--name vm_name \
--ram=2048 \
--vcpus=2 \
--disk pool=guest_images,size=30,bus=virtio,format=qcow2 \
--cdrom /var/iso/debian.iso \
--network bridge=kvmbr0,model=virtio \
--graphics vnc,listen=0.0.0.0,password=Qwerty1234 \
--boot cdrom,hd,menu=on
其中/var/iso/debian.iso
- iso 映像的路径
guest_images
- 磁盘池,需要在vm之前创建
答案2
我经常使用 qemu-kvm 以旧方式使用这种 qemu 命令:
qemu-img create mydisk.img 10G
qemu-system-x86_64 -boot d -cdrom image.iso -m 512 -hda mydisk.img
virsh 将启动 qemu-kvm。但它需要一些配置文件。有时,绕过所有这些 xml 行并启动虚拟机会更容易。
答案3
thufir@dur:~$
thufir@dur:~$
thufir@dur:~$ virsh connect qemu:///system
thufir@dur:~$
thufir@dur:~$ virsh list
Id Name State
----------------------------------------------------
1 asteriskNOW running
thufir@dur:~$
thufir@dur:~$ virsh dumpxml AsteriskNow > guest.xml
error: failed to get domain 'AsteriskNow'
error: Domain not found: no domain with matching name 'AsteriskNow'
thufir@dur:~$
thufir@dur:~$ virsh dumpxml 1 > guest.xml
thufir@dur:~$
thufir@dur:~$ cat guest.xml
<domain type='kvm' id='1'>
<name>asteriskNOW</name>
<uuid>e57fb835-cdfa-4234-b0c2-72b17178646a</uuid>
<memory unit='KiB'>997376</memory>
<currentMemory unit='KiB'>997376</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-artful'>hvm</type>
<boot dev='cdrom'/>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>Nehalem</model>
<feature policy='require' name='vme'/>
<feature policy='require' name='x2apic'/>
<feature policy='require' name='hypervisor'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/thufir/Downloads/AsteriskNow-1013-current-64.iso'/>
<backingStore/>
<target dev='hda' bus='ide'/>
<readonly/>
<alias name='ide0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='usb' index='0' model='ich9-ehci1'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<alias name='usb'/>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci2'>
<alias name='usb'/>
<master startport='2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci3'>
<alias name='usb'/>
<master startport='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</controller>
<interface type='network'>
<mac address='52:54:00:99:ac:da'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='rtl8139'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/2'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/2'>
<source path='/dev/pts/2'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='mouse' bus='ps2'>
<alias name='input0'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input1'/>
</input>
<graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
<image compression='off'/>
</graphics>
<sound model='ich6'>
<alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<redirdev bus='usb' type='spicevmc'>
<alias name='redir0'/>
<address type='usb' bus='0' port='1'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<alias name='redir1'/>
<address type='usb' bus='0' port='2'/>
</redirdev>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'>
<label>libvirt-e57fb835-cdfa-4234-b0c2-72b17178646a</label>
<imagelabel>libvirt-e57fb835-cdfa-4234-b0c2-72b17178646a</imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+64055:+130</label>
<imagelabel>+64055:+130</imagelabel>
</seclabel>
</domain>
thufir@dur:~$
thufir@dur:~$
进而
thufir@dur:~$
thufir@dur:~$ virsh list
Id Name State
----------------------------------------------------
thufir@dur:~$
thufir@dur:~$ virsh create guest.xml
Domain asteriskNOW created from guest.xml
thufir@dur:~$
thufir@dur:~$ virsh list
Id Name State
----------------------------------------------------
2 asteriskNOW running
thufir@dur:~$
虽然我通过使用virt-manager
来创建初始的guest
...