linux环境下创建虚拟机

在linux环境启动虚拟机
  1. 构造环境

    安装包:

    # 安装软件包
    yum install -y qemu-kvm
    yum install -y qemu-img
    yum install -y net-tools
    yum install -y virsh
    yum install -y qemu-kvm
    yum install -y libvirt
    yum install -y virt-install
    yum install -y bridge-utils
    yum install -y virt-manager
    yum install -y xclock
    yum install -y strace
    
  2. 创建硬盘,准备iso

    iso自己准备好,硬盘的话挂盘(/dev/nvme0n1)或者qemu-img create都可以:

    # 格式:raw或qcow2
    [root@localhost vm]# qemu-img create -f qcow2 test-os1.qcow2 20G
    [root@localhost vm]# qemu-img info test-os1.qcow2
    
  3. 配置qemu(可选,如果不配置则把对应文件放在非root目录下即可)

    qemu配置
    /etc/libvirt/qemu.conf 中配置:
    -  user = "root" 和 group = "root" ,让qemu可以访问各种文件。
    配置完成之后,重启服务 service libvirtd restart 
    
  4. 安装虚拟机

    [root@localhost vm]# cat virt-install.sh
    virt-install \
        --connect qemu:///system  \
        --virt-type kvm \
        --name test-os1 \
        --vcpus=4 \
        --memory=8192 \
        --cdrom=/home/vm/CentOS-7-x86_64-Everything-2009.iso \
        --disk path=/dev/nvme1n1,size=20,format=raw \
        --network bridge=br0 \
        --graphics vnc,listen=0.0.0.0 \
        --noautoconsole \
        --os-type=linux \
        --force --autostart
    [root@localhost vm]#
    
    # 参数解释:
    # https://developer.aliyun.com/article/529107
    # --connect qemu:///system   # 连接默认hypervisor,即qemu:///system; --connect=CONNECT,是连接非默认的hypervisor。
    # --name # 虚拟机名称
    # --cdrom # 光盘镜像 或 光驱设备
    # --disk path=xxx,size=20,format=qcow2,bus=virtio  # 指定硬盘路径,大小,格式为qcow2,总线类型为virtio
    # --autostart # 设置虚拟机为开机启动
    # --graphics vnc,listen=0.0.0.0 让vnc可以连接虚拟机
    
  5. 查看虚拟机

    [root@localhost vm]# virsh list --all
     Id   Name         State
    ----------------------------
     1    test-os1     running
    
    # 此时VM已经运行,但是OS没有安装;需要VNC登录进去,安装OS。
    # 如果使用mobax,则可以根据sesion中的vnc登录,操作步骤如下
    
    [root@localhost vm]# virsh domdisplay test-os1
    vnc://localhost:2
    # 可以看到对应的是2端口,根据当前节点的ip,在mobax的vnc输入该ip,并在5900端口加上2端口,输入密码即可登录查看vnc
    
  6. 挂卷

    [root@localhost vm]# virsh attach-disk test-os1 /dev/nvme3n1 vdb --cache none --io threads --persistent
    Disk attached successfully
    [root@localhost vm]#
    
  7. 删除虚拟机

    [root@localhost vm]# virsh shutdown test-os1
    [root@localhost vm]# virsh destroy test-os1
    [root@localhost vm]# virsh undefine test-os1
    
  8. virsh还有一些qmp、hmp命令,可以自行搜索补充

### 使用 `virsh` 创建 Linux 虚拟机的方法 要通过 `virsh` 工具创建一个 Linux 虚拟机,可以按照以下方式操作。以下是详细的说明以及示例代码。 #### 安装必要的软件包 在开始之前,需要确保已经安装了所需的工具和库。可以通过以下命令来完成: ```bash yum install -y libvirt libvirt-client virt-manager virt-install qemu-kvm ``` 这一步骤会安装 `libvirt` 和其客户端工具、KVM 支持以及其他必要组件[^1]。 #### 验证 KVM 是否启用 为了确认硬件虚拟化支持已开启,执行如下命令: ```bash egrep --color=auto '(svm|vmx)' /proc/cpuinfo ``` 如果输出中有匹配项,则表示 CPU 的虚拟化功能已被激活[^1]。 #### 启动并设置 Libvirt 服务 启动 `libvirtd` 服务,并将其设为开机自启: ```bash systemctl start libvirtd systemctl enable libvirtd ``` 此时,Libvirt 应该已经开始正常工作[^1]。 #### 准备 ISO 文件 下载目标系统的 ISO 映像文件(例如 CentOS 或 Ubuntu),并将它放置在一个可访问的位置,比如 `/var/lib/libvirt/images/centos7.iso`。 #### 使用 `virt-install` 命令创建虚拟机 接下来使用 `virt-install` 来定义新的虚拟机实例。这是一个典型的例子: ```bash virt-install \ --name centos7-vm \ --ram 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/centos7.qcow2,size=20,bus=virtio,format=qcow2 \ --cdrom /var/lib/libvirt/images/centos7.iso \ --network bridge=virbr0,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --os-type linux \ --os-variant rhel7 ``` 参数解释: - `--name`: 设置虚拟机名称。 - `--ram`: 分配给 VM 的内存大小 (单位 MB)。 - `--vcpus`: 指定虚拟处理器数量。 - `--disk`: 定义存储设备路径及其属性;这里我们指定了一个 QCOW2 格式的磁盘映像,容量为 20GB。 - `--cdrom`: 提供引导介质位置。 - `--network`: 网络连接配置,默认桥接模式下的网络接口卡类型为 VirtIO。 - `--graphics`: 图形界面选项,允许远程 VNC 连接到控制台。 - `--os-type` 和 `--os-variant`: 描述操作系统类别及版本以便优化性能[^1]。 #### 查看新创建虚拟机状态 运行以下命令以检查刚刚建立好的虚拟机是否处于活动状态: ```bash virsh list --all ``` 如果有任何错误或者想要进一步调整配置,也可以利用 XML 文件重新编辑域描述信息后再应用更改。 --- ### 注意事项 某些情况下可能遇到无法正常关机的问题,这是因为 ACPI 功能未被正确识别所致。解决方案之一是在 GRUB 中添加特定内核参数重启后生效[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值