kvm安装虚拟机命令详解

简介: kvm安装虚拟机命令详解

kvm的命令是非常多的,但,主要使用的关于创建虚拟机,启动虚拟机的命令必定是 virt-install。那么,我们想要学习一个命令,当然最快速简捷的方式就是通过帮助文档啦。

下面就是virt-install  的帮助文档。可以看到,该命令是有六个部分组成:

(1)基本选项General Options,

(2)Installation Method Options安装方法选项,

(3)Device Options设备选项

(4)虚拟机配置选项Guest Configuration Options

(5)Virtualization Platform Options虚拟模式选项

(6)其它辅助选项Miscellaneous Options

这里需要注意啦,该命令是比较详细的给每个选项都给出了示例,

[root@centos1 ~]# virt-install --help
usage: virt-install --name NAME --memory MB STORAGE INSTALL [options]
Create a new virtual machine from specified install media.
optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --connect URI         Connect to hypervisor with libvirt URI
General Options:
  -n NAME, --name NAME  Name of the guest instance
  --memory MEMORY       Configure guest memory allocation. Ex:
                        --memory 1024 (in MiB)
                        --memory 512,maxmemory=1024
                        --memory 512,maxmemory=1024,hotplugmemorymax=2048,hotplugmemoryslots=2
  --vcpus VCPUS         Number of vcpus to configure for your guest. Ex:
                        --vcpus 5
                        --vcpus 5,maxvcpus=10,cpuset=1-4,6,8
                        --vcpus sockets=2,cores=4,threads=2
  --cpu CPU             CPU model and features. Ex:
                        --cpu coreduo,+x2apic
                        --cpu host-passthrough
                        --cpu host
  --metadata METADATA   Configure guest metadata. Ex:
                        --metadata name=foo,title="My pretty title",uuid=...
                        --metadata description="My nice long description"
Installation Method Options:
  --cdrom CDROM         CD-ROM installation media
  -l LOCATION, --location LOCATION
                        Installation source (eg, nfs:host:/path,
                        http://host/path, ftp://host/path)
  --pxe                 Boot from the network using the PXE protocol
  --import              Build guest around an existing disk image
  --livecd              Treat the CD-ROM media as a Live CD
  -x EXTRA_ARGS, --extra-args EXTRA_ARGS
                        Additional arguments to pass to the install kernel
                        booted from --location
  --initrd-inject INITRD_INJECT
                        Add given file to root of initrd from --location
  --os-variant DISTRO_VARIANT
                        The OS variant being installed guests, e.g.
                        'fedora18', 'rhel6', 'winxp', etc.
  --boot BOOT           Configure guest boot settings. Ex:
                        --boot hd,cdrom,menu=on
                        --boot init=/sbin/init (for containers)
  --idmap IDMAP         Enable user namespace for LXC container. Ex:
                        --idmap uid_start=0,uid_target=1000,uid_count=10
Device Options:
  --disk DISK           Specify storage with various options. Ex.
                        --disk size=10 (new 10GiB image in default location)
                        --disk /my/existing/disk,cache=none
                        --disk device=cdrom,bus=scsi
                        --disk=?
  -w NETWORK, --network NETWORK
                        Configure a guest network interface. Ex:
                        --network bridge=mybr0
                        --network network=my_libvirt_virtual_net
                        --network network=mynet,model=virtio,mac=00:11...
                        --network none
                        --network help
  --graphics GRAPHICS   Configure guest display settings. Ex:
                        --graphics vnc
                        --graphics spice,port=5901,tlsport=5902
                        --graphics none
                        --graphics vnc,password=foobar,port=5910,keymap=ja
  --controller CONTROLLER
                        Configure a guest controller device. Ex:
                        --controller type=usb,model=ich9-ehci1
  --input INPUT         Configure a guest input device. Ex:
                        --input tablet
                        --input keyboard,bus=usb
  --serial SERIAL       Configure a guest serial device
  --parallel PARALLEL   Configure a guest parallel device
  --channel CHANNEL     Configure a guest communication channel
  --console CONSOLE     Configure a text console connection between the guest
                        and host
  --hostdev HOSTDEV     Configure physical USB/PCI/etc host devices to be
                        shared with the guest
  --filesystem FILESYSTEM
                        Pass host directory to the guest. Ex: 
                        --filesystem /my/source/dir,/dir/in/guest
                        --filesystem template_name,/,type=template
  --sound [SOUND]       Configure guest sound device emulation
  --watchdog WATCHDOG   Configure a guest watchdog device
  --video VIDEO         Configure guest video hardware.
  --smartcard SMARTCARD
                        Configure a guest smartcard device. Ex:
                        --smartcard mode=passthrough
  --redirdev REDIRDEV   Configure a guest redirection device. Ex:
                        --redirdev usb,type=tcp,server=192.168.1.1:4000
  --memballoon MEMBALLOON
                        Configure a guest memballoon device. Ex:
                        --memballoon model=virtio
  --tpm TPM             Configure a guest TPM device. Ex:
                        --tpm /dev/tpm
  --rng RNG             Configure a guest RNG device. Ex:
                        --rng /dev/urandom
  --panic PANIC         Configure a guest panic device. Ex:
                        --panic default
  --memdev MEMDEV       Configure a guest memory device. Ex:
                        --memdev dimm,target_size=1024
Guest Configuration Options:
  --security SECURITY   Set domain security driver configuration.
  --cputune CPUTUNE     Tune CPU parameters for the domain process.
  --numatune NUMATUNE   Tune NUMA policy for the domain process.
  --memtune MEMTUNE     Tune memory policy for the domain process.
  --blkiotune BLKIOTUNE
                        Tune blkio policy for the domain process.
  --memorybacking MEMORYBACKING
                        Set memory backing policy for the domain process. Ex:
                        --memorybacking hugepages=on
  --features FEATURES   Set domain <features> XML. Ex:
                        --features acpi=off
                        --features apic=on,eoi=on
  --clock CLOCK         Set domain <clock> XML. Ex:
                        --clock offset=localtime,rtc_tickpolicy=catchup
  --pm PM               Configure VM power management features
  --events EVENTS       Configure VM lifecycle management policy
  --resource RESOURCE   Configure VM resource partitioning (cgroups)
  --sysinfo SYSINFO     Configure SMBIOS System Information. Ex:
                        --sysinfo emulate
                        --sysinfo host
                        --sysinfo bios_vendor=Vendor_Inc.,bios_version=1.2.3-abc,...
                        --sysinfo system_manufacturer=System_Corp.,system_product=Computer,...
                        --sysinfo baseBoard_manufacturer=Baseboard_Corp.,baseBoard_product=Motherboard,...
  --qemu-commandline QEMU_COMMANDLINE
                        Pass arguments directly to the qemu emulator. Ex:
                        --qemu-commandline='-display gtk,gl=on'
                        --qemu-commandline env=DISPLAY=:0.1
Virtualization Platform Options:
  -v, --hvm             This guest should be a fully virtualized guest
  -p, --paravirt        This guest should be a paravirtualized guest
  --container           This guest should be a container guest
  --virt-type HV_TYPE   Hypervisor name to use (kvm, qemu, xen, ...)
  --arch ARCH           The CPU architecture to simulate
  --machine MACHINE     The machine type to emulate
Miscellaneous Options:
  --autostart           Have domain autostart on host boot up.
  --transient           Create a transient domain.
  --wait WAIT           Minutes to wait for install to complete.
  --noautoconsole       Don't automatically try to connect to the guest
                        console
  --noreboot            Don't boot guest after completing install.
  --print-xml [XMLONLY]
                        Print the generated domain XML rather than create the
                        guest.
  --dry-run             Run through install process, but do not create devices
                        or define the guest.
  --check CHECK         Enable or disable validation checks. Example:
                        --check path_in_use=off
                        --check all=off
  -q, --quiet           Suppress non-error output
  -d, --debug           Print debugging information
Use '--option=?' or '--option help' to see available suboptions
See man page for examples and full option syntax.

那么,相对于kvm镜像来说,有两种情况,第一是镜像文件已经安装了操作系统,也就是已经虚拟化完成了,第二种是仅仅有一个磁盘虚拟文件,在这个文件内并没有安装操作系统,并不能使用,这两种情况需要virt-install 命令进行启动或者安装。

第一、已经安装好了操作系统的磁盘映像文件

例如,OpenStack常用的测试文件cirros-0.3.4-x86_64-disk.img ,假设这个文件存放在了opt目录下,那么,启动这个kvm镜像的命令应该如下:

virt-install --name test01 --virt-type qemu --ram 1024 --accelerate  --disk path=/opt/cirros-0.3.4-x86_64-disk.img --network=default --force --import --autostart --vnc --vnclisten=0.0.0.0 --vncport=5922

以上命令,主要使用了 --name --virt-type --ram --accelerate --disk --import 这些参数,如果将--virt-type 改成kvm,此kvm镜像也可以启动。

那么,一个kvm镜像install的时候必定需要一个name,--ram ,disk,其实基本有这三个也就可以了,剩下的net和vnc仅仅是出于使用这个kvm虚拟机的目的而设置,毕竟kvm镜像启动后我们是需要使用的,对吧。上面的命令将会开启一个端口5922,这个端口并不是默认的5900端口。

--accelerate参数是加速

例如,这个命令也可以启动一个已存在安装过操作系统的镜像,如果有安装virt-viewer命令,将会直接打开一个kvm终端窗口。

virt-install --name test06 --ram 1024 --accelerate  --disk path=/opt/cirros-0.3.4-x86_64-disk.img --import --check all=off

--check all=off 这个参数是表示允许多次启动kvm镜像,以上命令中,name是test06,name应该是唯一的不重复的,仅此一个要求,因为前面我们使用了test1 2 3 4 5

第二、通过qemu-img 命令生成一个全新的磁盘镜像文件,并通过挂载操作系统安装包,开始一个全新安装kvm镜像。

说人话也就是全新的kvm镜像安装需要至少两个文件,一个是qemu-img命令生成的磁盘文件,一个是ISO操作系统安装文件。例如全新安装一个Windows的kvm镜像:

[root@centos1 opt]# virt-install --name win7 --os-variant=win7 --memory 512 --vcpus=1  --cpu host-model --vcpus 2 --disk path=/opt/win7.vmdk,size=30,bus=ide --accelerate --disk device=cdrom,path=/opt/cn_windows_7_ultimate_with_sp1_x64_dvd_618537\(1\).iso --disk device=cdrom,path=/opt/virtio-win-0.1.102.iso --vnc --vncport=5922 --vnclisten=0.0.0.0 --network=default --noautoconsole
Starting install...
Allocating 'win7.vmdk'                                                                                                         |  30 GB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

这里的提示就和启动一个已安装操作系统的kvm镜像不一样了,有提示:to complete the installation process.

安装Windows需要挂载两个cdrom,一个是系统安装ISO文件,一个是驱动文件,如果有要挂载成cdrom的文件,写的形式是:

--disk device=cdrom,path=/opt/virtio-win-0.1.102.iso

而硬盘文件是这样的:

--disk path=/opt/linux.img,size=30,format=qcow2,bus=ide

当然,Windows安装和linux安装是不一样的,因此,bus这里使用了ide,使用ide的原因是为了提高兼容性,并没有其它的意思,如果是安装linux系统的kvm镜像,可以不用指定bus,直接使用默认,默认为virtio,这里的bus是指的使用的驱动类型,而format=qcow2,是因为我们前面建立的kvm磁盘镜像格式是qcow2,如果忘记了也没关系,通过qemu-img info 命令可以查看到到底是哪种格式的磁盘文件:

[root@centos1 opt]# qemu-img info linux.img 
image: linux.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

关于kvm的磁盘文件格式,大体情况是这样的:

虚拟机常用镜像格式介绍

目前,虚拟机的主流镜像格式有raw、cow、qcow、qcow2以及vmdk,下面,我就详细介绍一下这些主流的虚拟机镜像格式。

(一)raw格式


raw格式是一种很早的镜像格式,格式比较原始、简单,性能上也还不错。并且raw格式镜像的一个突出好处是它支持转换成其他格式的镜像,或者作为其他格式镜像转换的中间格式。但是,raw格式的一个突出缺点就是不支持快照。 CentOS6的虚拟机KVM和XEN默认使用raw格式。

(二)cow、qcow和qcow2格式


cow、qcow和qcow2是另外的镜像格式,cow格式、qcow格式目前已经逐步被qcow2格式所取代,qcow2格式是目前的一种主流镜像格式,性能上与raw格式相差无几,但是支持虚拟机快照。CentOS7的KVM虚拟机镜像默认使用qcow2格式。

(三)vmdk格式


vmdk是Vmware虚拟的镜像格式,其整体性能非常出色,稳定性和其他方面的能力很好,也支持快照。

因此,--disk path=/opt/win7.img,size=30,format=qcow2,bus=ide这里必须要format=qcow2,如果不指定将会使用raw。

Linus的安装比较简单了,通常的安装命令为:

virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=centos7.0 --location=/root/CentOS-7-x86_64-DVD-1708.iso

以上为kvm的virt-install 命令的大概介绍,希望各位网友指出写的不足的地方。

目录
相关文章
|
28天前
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
198 3
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
1月前
|
Linux 虚拟化
vmware虚拟机安装2024(超详细)
vmware虚拟机安装2024(超详细)
244 6
|
2月前
|
Unix Linux 开发工具
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
本文详细介绍了如何在官网下载CentOS 8以及在VMware Workstation Pro 16虚拟机上安装CentOS 8的步骤,包括可能出现的问题和解决方案,如vcpu-0错误的处理方法。
centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】
|
2月前
|
KVM 虚拟化
KVM虚拟机的桥接网络
文章主要介绍了KVM虚拟机的NAT和桥接网络类型的工作原理、配置方法以及如何进行网络模式的切换。
39 3
KVM虚拟机的桥接网络
|
2月前
|
KVM 虚拟化
KVM虚拟机的热迁移
这篇文章详细介绍了KVM虚拟机的热迁移过程,包括临时迁移和永久迁移的步骤,以及可能遇到的故障和解决方案。
98 1
KVM虚拟机的热迁移
|
2月前
|
KVM 虚拟化 数据安全/隐私保护
KVM虚拟机安装实战
本文讲述了如何创建并使用VNC连接KVM虚拟机的详细教程,包括安装图解和命令行参数说明。
94 8
|
2月前
|
KVM 虚拟化
KVM虚拟机的冷迁移
这篇文章详细描述了KVM虚拟机的冷迁移过程,包括无依赖环境迁移、有链接克隆虚拟机迁移、多块磁盘迁移的案例,以及可能遇到的错误和解决方案。
78 3
下一篇
无影云桌面