从 CLI 创建虚拟机? (KVM)

从 CLI 创建虚拟机? (KVM)

如何创建虚拟机从 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...

相关内容