首页 > 其他分享 >virsh配置安装虚拟机

virsh配置安装虚拟机

时间:2022-08-31 21:12:48浏览次数:83  
标签:vnc 启动 -- 虚拟机 网卡 virsh 安装

1.安装所需软件:

apt-get install qemu-kvm
apt-get install qemu
apt-get install libvirt-bin
apt-get install bridge-utils
apt-get install virt-manager
apt-get install virt-viewer
  1. 创建虚拟机镜像文件(相当于虚拟机磁盘文件):
    qemu-img create -f qcow2 mydisk-img.qcow2 20G

3.创建虚拟机xml文件vm.xml

<domain type='kvm'>  //如果是Xen,则type=‘xen’
  <name>vm0</name> //虚拟机名称,同一物理机唯一
  <uuid>e996891e-179b-11ec-9621-0242ac130002</uuid>  //同一物理机唯一,可用uuidgen生成
  <memory unit='KiB'>524288</memory>
  <currentMemory unit='KiB'>524288</currentMemory>  //memory这两个值最好设成一样
  <vcpu>2</vcpu>            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l 
  <os>
   <type arch='x86_64' machine='pc-i440fx-1.5'>hvm</type> //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?
   <boot dev='hd'/>  //启动介质,第一次需要装系统可以选择cdrom光盘启动
   <bootmenu enable='yes'/>  //表示启动按F12进入启动菜单
  </os>
  <features>
   <acpi/>  //Advanced Configuration and Power Interface,高级配置与电源接口
   <apic/>  //Advanced Programmable Interrupt Controller,高级可编程中断控制器
   <pae/>   //Physical Address Extension,物理地址扩展
  </features>
  <clock offset='localtime'/>  //虚拟机时钟设置,这里表示本地本机时间
  <on_poweroff>destroy</on_poweroff>  //突发事件动作
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>   //设备配置
   <emulator>/usr/bin/qemu-system-x86_64</emulator> //如果是Xen则是/usr/lib/xen/binqemu-dm
   <disk type='file' device='disk'> //硬盘
      <driver name='qemu' type='qcow2'/>
      <source file='/path/mydisk-img.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> //域、总线、槽、功能号,slot值同一虚拟机上唯一
   </disk>
   <disk type='file' device='cdrom'>//光盘
      <driver name='qemu' type='raw'/>
      <source file='/path/CentOS-7-x86_64-DVD-2009.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
   </disk>

   /* 利用Linux网桥连接网络 */
   <interface type='bridge'>   
      <mac address='fa:92:01:33:d4:fa'/> 
      <source bridge='br0'/>  //配置的网桥网卡名称
      <target dev='vnet0'/>     //同一网桥下相同
      <alias name='net0'/>      //别名,同一网桥下相同
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>  //注意slot值唯一
   </interface>
   /* 利用NAT方式连接网络 */
   <interface type='network'>   
      <mac address='fa:92:01:33:d6:fa'/> 
      <source network='default'/>  //配置的网桥名称
      <target dev='vnet2'/>     //同一网桥下相同
      <alias name='net1'/>      //别名,同一网桥下相同
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>  //注意slot值唯一
   </interface>
   <serial type='pty'>
      <source path='/dev/pts/2'/>
      <target type='isa-serial' 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>
   <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0
      <listen type='address' address='0.0.0.0'/>
   </graphics>
<!--
   /* 利用ovs网桥连接网络 */
   <interface type='bridge'>  
      <source bridge='br-ovs0'/>  
      <virtualport type='openvswitch'/>
      <target dev='tap0'/>     
      <model type='virtio'/>  
   </interface>

    /* 配置成pci直通虚拟机连接网络,SR-IOV网卡的VF场景 */
   <hostdev mode='subsystem' type='pci' managed='yes'>
     <source>
       <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
     </source>
   </hostdev>

   /* 利用vhostuser连接ovs端口 */
   <interface type='vhostuser'>   
      <mac address='fa:92:01:33:d4:fa'/> 
      <source type='unix' path='/var/run/vhost-user/tap0' mode='client'/>  
      <model type='virtio'/>     
      <driver vringbuf='2048'/>     
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>  
   </interface>

   <interface type='network'>   //基于虚拟局域网的网络
     <mac address='52:54:4a:e1:1c:84'/>  //可用命令生成,见下面的补充
     <source network='default'/> //默认
     <target dev='vnet1'/>  //同一虚拟局域网的值相同
     <alias name='net1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>  //注意slot值
   </interface>
  <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'/>  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0
   <listen type='address' address='0.0.0.0'/>
  </graphics>
  -->
  </devices>
</domain>

3.创建网卡配置文件network.xml:

<network>
  <name>default</name>
  <bridge name="virbr0" />
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254" />
    </dhcp>
  </ip>
</network>

virsh启动虚拟网络设备

virsh net-define network.xml
virsh net-autostart default #设置自动启动
virsh net-start #启动网桥
使用virsh启动虚拟机

virsh define vm.xml #创建虚拟机

此时可以通过virsh list --all查看虚拟机

virsh start vm0 #启动虚拟机

需要注意的是,首次启动虚拟机在xml中设置从cdrom中启动,cdrom是系统镜像,因为这时虚拟机尚未在磁盘中安装操作系统,因此无法从hd硬盘中启动,安装完系统之后就可以设置从hd启动了。同时,我们也无法通过console或者ssh登录,因为还没有系统。我们可以通过vnc的方式远程登录虚拟机完成操作系统的安装,之后就可以通过ssh等方式正常登录了。

virsh vncdisplay vm0 #查看vnc端口,这样就可以通过vnc远程控制了
安装完操作系统之后,由于我们的虚拟机有两张网卡,一张网卡net0是以桥接模式连接,一张网卡net1是以NAT方式连接,net0网卡需要我们手动配置ip地址,net1由dhcp服务器自动配置ip地址。

若virsh console的方式无法进入虚拟机,可以尝试:

通过vnc进入虚拟机:

vi /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" #在这一句最后面添加 console=ttyS0,115200

grub2-mkconfig -o /boot/grub2/grub.cfg

sudo systemctl start [email protected]

sudo systemctl enable [email protected]

NAT端口映射

iptables -t nat -I PREROUTING -p tcp -d 10.248.155.204 -dport 5233 -j DNAT --to-destination 192.168.122.177:22

iptables -I FORWARD -m state -d 10.0.0.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp -m tcp --dport 5233 -j DNAT --to-destination 192.168.122.177:22
iptables -t nat -A POSTROUTING -s 192.168.122.0/255.255.255.0 -d 192.168.122.177 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.122.1
————————————————
版权声明:本文为CSDN博主「xiaoju233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38600065/article/details/121974663

标签:vnc,启动,--,虚拟机,网卡,virsh,安装
From: https://www.cnblogs.com/rincloud/p/16644520.html

相关文章

  • redis的安装与使用
    Redis安装与命令使用安装:@1:下载地址:Download|Redis@2:安装过程先把下载好的redis的安装包放到linux服务器的相关位置https://download.redis.io/releases/redis-6.2......
  • podman用脚本和dockerfile做apache编译安装镜像(alpine版)
    podman用脚本和dockerfile做apache编译安装镜像(alpine版)alpine系统是什么AlpineLinux是一个基于musllibc和busybox的面向安全的轻量级Linux发行版。alpine系统......
  • @vue/cli 安装及'vue' 不是内部或外部命令解决办法
    1、首先安装@vue/clinpminstall-g@vue/cli提示安装成功,版本啥的,忘了截图2、然后vue-V或者vue--version查看版本但是提示'vue'不是内部或外部命令解决办法我......
  • rocketmq安装
    4、启动(1)启动NAMESERVER使用cmd打开命令窗口,进入到rocketmq的bin目录下,执行:startmqnamesrv.cmd,若成功会弹出如下提示框,请勿关闭此框。(2)启动BROKER同样在rocketmq的bin......
  • 代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取SonarQube是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时SonarQube还对大量......
  • 在Ubuntu系统上安装StoneDB数据库
    今天我会进行StoneDB数据库在Ubuntu22.04系统下的安装。严格按照官方文档的步骤执行,看看能否顺利安装。准备Ubuntu系统我已在虚拟机中安装好了Ubuntu22.04版本的系统,......
  • Docker安装nginx
    一.拉取nginx镜像到本地。dockerpullnginx查看镜像库,获取本地的nginx镜像信息dockerimagesnginx 二、启动容器。dockerrun--privileged=true-eTZ="A......
  • 从安装开发环境到第一个“hello world”
    安装Java8为什么要安装java8?java8和小破站的教程同步。安装方法:1.官网安装(我踩雷了,下载得慢,不过最后安装成功了!)2.镜像网站:清华镜像3.公众号(网上的全是套路了)4.我的......
  • VM虚拟机安装
      VM虚拟机安装      1.安装vm虚拟机软件       1.1双击打开虚拟机文件 1.2根据向导安装下一步          ......
  • jest 安装
          范例        遇到问题提示'test'isnotdefined,解决方法 jest版本过高   解决方法......