X86盒子Linux虚拟机教程

KVM,Kernel-based Virtual Machine,基于内核的虚拟机,是一种内建于Linux的开源虚拟化技术。

我们推荐使用CentOS7为宿主机操作系统,本文档的所有操作也都是基于CentOS7。

宿主机环境准备

宿主机准备

  • 物理机上安装好CentOS7, 建议无图形外安装
  • 使用键盘、显示器或者通过ssh远程登录进系统

安装并启用虚拟化管理软件libvirt

  • 安装命令如下

    yum install -y qemu-kvm libvirt virt-install bridge-utils
    systemctl start libvirtd
    systemctl enable libvirtd
    
  • 检查是安装是否正常

    lsmod | grep kvm
    systemctl status libvirtd
    
  • 有如下输出,表示一切正常 avatar

配置桥接网卡

说明

  • 创建一个虚拟的桥接网卡(如br0),把物理网卡(如eth0)绑定到br0,以达到宿主机和虚拟机使用同一个物理网络的目的
  • 后续都用br0表示桥接网卡,eth0表示物理网卡
  • 如果eth0上联的路由器网段为192.168.1.0/24,那么,我们就可以让宿主机的br0和虚拟机上的网卡都获取到192.168.1.0/24段的IP地址

创建桥接网卡

  • 写br0配置文件

    vim /etc/sysconfig/network-scripts/ifcfg-br0
    
  • 以配置为静态IP 192.168.1.2为例,配置如下

    DEVICE=br0
    NM_CONTROLLED=no
    BOOTPROTO=static
    TYPE=Bridge
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    ONBOOT=yes
    DNS1=114.114.114.114
    DNS2=119.29.29.29
    
  • 如果要配置为DHCP,动态获取IP地址,配置如下

    DEVICE=br0
    NM_CONTROLLED=no
    BOOTPROTO=dhcp
    TYPE=Bridge
    ONBOOT=yes
    
  • 推荐使用静态IP地址,以方便管理

配置物理网卡

  • 写eth0配置文件

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    
  • 配置如下

    NAME='eth0'
    DEVICE='eth0'
    HWADDR='eth0的MAC地址'
    BOOTPROTO=none
    ONBOOT=yes
    NM_CONTROLLED=no
    BRIDGE=br0
    

重启网络

  • 重启网络会导致网络中断,如果是通过ssh登录,请保证以上配置文件书写正确

    systemctl restart network
    
  • 检查网卡是否正常启动

    ip addr show dev br0
    ip addr show dev eth0
    
  • 如果一切正常,br0是UP状态,并配置有IP,eth0也是UP状态,但没有IP地址,输入如下

    10: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
      link/ether 6c:92:bf:15:ca:cc brd ff:ff:ff:ff:ff:ff
      inet 192.168.1.2/24 brd 192.168.1.255 scope global br0
         valid_lft forever preferred_lft forever
      inet6 fe80::6e92:bfff:fe15:cacc/64 scope link 
         valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
      link/ether 6c:92:bf:15:ca:cc brd ff:ff:ff:ff:ff:ff
    

创建虚拟机

下载镜像

  • 最新的下载地址参考 X86盒子镜像刷机教程
  • 此处以下载到/data/iso目录为例
    mkdir -p /data/iso
    curl -o /data/iso/SparrowOS.iso https://osfile.niulinkcloud.com/iso/SparrowOS-Lite-v1.0.3-2403071554.iso
    md5sum /data/iso/SparrowOS.iso
    

安装虚拟机

  • 虚拟机推荐硬件配置,请参考 X86盒子上机教程
  • 当前示例:
    • 虚拟机名称: sparrowos1
    • 2G内存,4核CPU,500G存储,存储路径/data/vm
    • 使用桥接网卡br0
  • 具体命令如下
    mkdir /data/vm
    vmname=sparrowos1
    virt-install --name $vmname \
      --ram 2048 --vcpus 4  \
      --disk /data/vm/${vmname}.qcow2,format=qcow2,size=500 \
      --network bridge=br0,model=virtio \
      --graphics vnc,listen=0.0.0.0 \
      --noautoconsole \
      --os-variant=centos7.0 \
      --cdrom=/data/iso/SparrowOS.iso
    
  • 输入完成后,虚拟机即启动并开始安装操作系统
  • 如果要开多个虚拟机,指定不同的虚拟机名称创建即可
  • 可以用以下命令查看所有正在运行的虚拟机
    virsh list
    

VNC连接虚拟机

使用VNC客户端程序可以连接到虚拟机的控制台,效果就像给虚拟机接了一台显示器

下载并安装VNC Viewer

获取虚拟机的VNC端口

  • 虚拟机的VNC端口号是从5900开始计算,第一台启动的虚拟机端口为5900,第二台5901,依次递增
  • 在宿主机上,可以使用如下命令获取具体的端口号, 以虚拟名sparrowos1为例
    n=$(sudo virsh vncdisplay sparrowos1 | grep -oE '[1-9]+') && echo $(($n + 5900))
    

连接到虚拟机

  • 打开VNC Viewer
  • 此处以宿主机的地址为192.168.1.2,虚拟机的端口为5900为例
  • 在地址栏内输入虚拟机的连接地址:192.168.1.2:5900 avatar
  • 输入回车,即可连接到虚拟机 avatar
  • 具体安装过程请参考 X86盒子镜像刷机教程
  • 安装完成点回车后,虚拟机会自动关机,需要我们使用命令重新启动
    virsh start sparrowos1
    
  • 我们再次通过VNC Viewer连接到控制台
  • 虚拟机完成初始化完成后会显示二维码,扫码绑定,完成安装

上机过程如果有任何问题,请联系客服解决。

客服微信

results matching ""

    No results matching ""