从物理机开始kvm虚拟机安装与网桥问题解决

发布时间:2026/7/15 19:38:08

从物理机开始kvm虚拟机安装与网桥问题解决 文章目录一、kvm安装暂时省略了通过yum/dnf/apt安装二、虚拟机安装2.1 创建存放目录2.2 创建虚拟机的磁盘文件2.3 查看网侨2.3.1 如果是之前安装过kvm但是briege网桥的IP段不对如下图想要创建的虚拟机使用物理主机的网络对外通信2.3.1.1、创建桥接接口2.3.1.2、修改现有物理网卡配置2.3.1.3、禁用默认的 libvirt NAT 网络2.3.1.4、重启网络服务2.3.1.5、已有vm迁移2.4 安装2.4.1 基于ISO2.4.2 基于qcow2基础镜像三、增加磁盘disk3.1、创建新磁盘3.2、修改虚拟机配置3.2.1、方式1: virsh edit3.2.2、方式2: 使用 virsh attach-disk3.3、启动或重启虚拟机3.4、分区挂载四、一些命令一、kvm安装暂时省略了通过yum/dnf/apt安装二、虚拟机安装2.1 创建存放目录具体路径根据自己主机情况而定mkdir-p/home/vmspace/qcow2 mkdir-p/home/vmspace/iso2.2 创建虚拟机的磁盘文件#这里创建了一个名为vm1.qcow2空间为400GB的动态扩展的qcow2格式的磁盘#这里的400GB只是磁盘的最大值没有被写入数据前只有不到200KB大小qemu-img create-f qcow2/home/vmspace/qcow2/vm1.qcow2 400G##查看磁盘文件vm1.qcow2的卷信息里面disk size是其实际占用的宿主机磁盘大小##上面的400GB只是磁盘的最大值这里可以看到没有被写入数据前只有200KB大小qemu-img info/home/vmspace/qcow2/vm1.qcow22.3 查看网侨ip link showtypebridge# 查看后 使用 ip a 看一下这个网卡ip a#在 KVM 中默认情况下会有一个名为 virbr0 的 NAT 虚拟网络桥接设备用于提供虚拟机的网络连接。如果你想修改 virbr0 的 IP 地址可以通过以下步骤进行操作## 停止网络服务:sudo virsh net-destroy default##编辑网络配置:sudo virsh net-edit default##启动网络服务:sudo virsh net-startdefault2.3.1 如果是之前安装过kvm但是briege网桥的IP段不对如下图想要创建的虚拟机使用物理主机的网络对外通信问如下图现在有一台物理服务器只有一个网口 对应网卡/etc/sysconfig/network-scripts/ifcfg-enp125s0f0文件中已配置静态ip 192.168.112.56 现在需要通过kvm创建虚拟机指定了birdgevirbr0 通过 ip a查看到 virbr0网卡是 192.168.123.1/24网段所以此时虚拟机配置静态ip只能是 192.168.113.1/24网段。但是现在我想创建的虚拟机是 192.168.112.1/24网段且与外部通信我应该如何操作答2.3.1.1、创建桥接接口编辑或创建桥接接口配置文件 /etc/sysconfig/network-scripts/ifcfg-br0内容如下DEVICEbr0TYPEBridge BOOTPROTOstatic ONBOOTyes IPADDR192.168.112.56 NETMASK255.255.255.0 GATEWAY192.168.112.1# 根据实际情况填写DNS18.8.8.8# 可选根据实际情况填写2.3.1.2、修改现有物理网卡配置编辑现有的网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-enp125s0f0确保它被附加到新的桥接接口上。您可能只需要更改以下设置DEVICEenp125s0f0 BOOTPROTOnone ONBOOTyes BRIDGEbr0请注意移除任何其他与 IP 地址相关的行如 IPADDR, NETMASK, GATEWAY因为这些将由桥接接口处理。2.3.1.3、禁用默认的 libvirt NAT 网络如果不再需要 virbr0 提供的NAT网络功能可以通过以下命令禁用默认的libvirt NAT网络virsh net-destroy default# 停止默认网络virsh net-undefine default# 删除默认网络定义使其不再自动启动2.3.1.4、重启网络服务保存所有更改后重启网络服务以应用更改systemctl restart network 或者在某些系统上您可能需要分别重启网络和libvirt服务 systemctl restart NetworkManager# 或systemctl restart network systemctl restart libvirtd建议直接 reboot 方便更简单2.3.1.5、已有vm迁移#关闭虚拟机在修改网络设置前最好先关闭虚拟机以避免冲突或数据损坏virsh shutdown vm1##如果虚拟机无法正常关机可以强制关闭virsh destroy vm1#修改虚拟机网络配置##编辑虚拟机的 XML 配置将网络接口从 virbr0 修改为 br0。可以使用 virsh edit 命令来直接编辑虚拟机配置virsh edit vm1##找到 interface 部分并将其更改为如下内容interfacetypebridge source bridgebr0/ modeltypevirtio/ !--如果支持的话-- /interface#启动虚拟机virshstartvm12.4 安装2.4.1 基于ISOvirt-install--name vm1--ram16384--vcpus16 \--location/home/vmspace/iso/openEuler-23.03-everything-aarch64-dvd.iso \--disk path/home/vmspace/qcow2/vm1.qcow2,size400 \--network bridgebr0 \--graphicsnone--consolepty,target_typeserial \--extra-argsconsolettyAMA0 consolettyS0--autostart注意安装完成后 iso文件可以删除虚拟机不依赖安装过程#开始安装配置语言、时区、安装源、网络、密码等信息。Installation 1)[x]Language settings 2)[x]Time settings(English(United States))(Asia/Shanghai timezone)3)[!]Installation source 4)[!]Software selection(Processing...)(Processing...)5)[!]Installation Destination 6)[!]Network configuration(Processing...)(Not connected)7)[!]Root password 8)[!]User creation(Root account is disabled)(No user will be created)Please make a selectionfromthe above[btobegininstallation,qto quit,rto refresh]: 5 输入5然后按Enter键设置安装目录 Probing storage... Installation Destination 1)[x]QEMU HARDDISK: 400 GiB(sda)1 disk selected;400 GiB capacity;400 GiB free Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: c 输入c继续 Partitioning Options 1)[]Replace Existing Linux system(s)2)[x]Use All Space 3)[]Use Free Space 4)[]Manually assignmountpoints Installation requires partitioning of your hard drive.Selectwhat space to useforthe install target or manually assignmountpoints.Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: c 输入c继续 Partition Scheme Options 1)[]Standard Partition 2)[]Btrfs 3)[x]LVM 4)[]LVM Thin ProvisioningSelecta partition scheme configuration.Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: c 输入c继续 备注 1 为标准分区步骤输入1然后按Enter键选择Standard Partition即 标准分区 【【【2025年补充】】】 虚拟机安装我其实推荐直接 c即默认的lvm方便扩缩容物理机的推荐标准分区 Partition Scheme Options 1)[x]Standard Partition 2)[]Btrfs 3)[]LVM 4)[]LVM Thin ProvisioningSelecta partition scheme configuration.Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: c 输入c继续 Installation 1)[x]Language settings 2)[x]Time settings(English(United States))(Asia/Shanghai timezone)3)[x]Installation source 4)[x]Software selection(Local media)(Minimal Install)5)[x]Installation Destination 6)[]Network configuration(Automatic partitioning(Not connected)selected)7)[!]Root password 8)[!]User creation(Root account is disabled)(No user will be created)Please make a selectionfromthe above[btobegininstallation,qto quit,rto refresh]: 7 输入7然后按Enter键设置root账号的密码 Root password 1)[]SM3 encrypt Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: 1 输入1然后按Enter键选择SM3加密方式 Root password 1)[x]SM3 encrypt Please make a selectionfromthe above[ctocontinue,qto quit,rto refresh]: c 输入c继续 Root password Pleaseselectnew root password.You will have totypeit twice.Password: 输入密码然后按Enter键这里不会反显 Password(confirm): 再次输入确认密码然后按Enter键这里也不会反显 Installation 1)[x]Language settings 2)[x]Time settings(English(United States))(Asia/Shanghai timezone)3)[x]Installation source 4)[x]Software selection(Local media)(Minimal Install)5)[x]Installation Destination 6)[]Network configuration(Automatic partitioning(Not connected)selected)7)[x]Root password 8)[]User creation(Root password isset)(No user will be created)Please make a selectionfromthe above[btobegininstallation,qto quit,rto refresh]: b 输入b然后按Enter键就开始安装 ............Installation complete Use of this product is subject to the license agreement found at:/usr/share/openEuler-release/EULA Installation complete.Press ENTER to quit:安装完成按Enter键重启虚拟机 重启后就进入到虚拟机的登录界面......[OK]Finished OpenEuler Security Tool.[FAILED]Failed tostartNetwork Manager Wait Online. 该问题可以忽略登陆虚拟机配置网络后即可解决 Seesystemctl status NetworkManager-wait-online.servicefordetails.[OK]Reached target Network is Online.Starting Crash recovery kernel arming...Starting Notify NFS peers of a restart...Starting System Logging Service...[OK]Started Notify NFS peers of a restart.[OK]Started System Logging Service.[OK]Reached target Multi-User System.Starting Record Runlevel Change in UTMP...[OK]Finished Record Runlevel Change in UTMP.[OK]Finished Crash recovery kernel arming.localhost login: 登录成功后这时如果要退出虚拟机按 Ctrl]即可。虚拟机静态IP的配置就去 /etc/sysconfig/network-scripts/ifcfg-xxxx 修改即可此文章就不额外描述了。简单参考如下[rootlocalhost network-scripts]# cat ifcfg-eth0TYPEEthernetPROXY_METHODnoneBROWSER_ONLYnoBOOTPROTOstaticDEFROUTEyesIPV4_FAILURE_FATALnoIPV6INITyesIPV6_AUTOCONFyesIPV6_DEFROUTEyesIPV6_FAILURE_FATALnoNAMEeth0UUIDaf33d082-59d4-4bf5-90f1-b523b4d8aeb2DEVICEeth0ONBOOTyesIPADDR192.168.112.61PREFIX24GATEWAY192.168.112.1DNS1114.114.114.114IPV6_PRIVACYno2.4.2 基于qcow2基础镜像创建基础镜像# 将原镜像转换为全新独立镜像(如果网上下载的纯净镜像则忽略)sudoqemu-img convert-fqcow2-Oqcow2\/path/base.qcow2\/path/vm1.qcow2# 将新镜像扩容到 50GBsudoqemu-img resize /path/vm1.qcow2 50G2.清理新镜像中的旧主机信息避免冲突如果网上下载的纯净镜像则忽略# 需要先安装 libguestfs-tools 组件# 清除原主机名、SSH 密钥、网络配置、用户历史等sudovirt-sysprep-a/path/vm1.qcow2定义并启动新虚拟机sudovirt-install\--namevm1\--ram2048\--vcpus2\--diskpath/path/vm1.qcow2,formatqcow2,busvirtio\--networkbridgebr0,modelvirtio\--import三、增加磁盘disk3.1、创建新磁盘qemu-img create-f raw/path/to/disk1.img 50G上述命令会创建一个名为 disk1.img 的新磁盘映像文件大小为 50GB格式为 raw。你可以根据需要调整路径、文件名和大小。3.2、修改虚拟机配置3.2.1、方式1: virsh editvirsh edit vm_name在打开的 XML 配置文件中找到 部分并添加如下内容以连接新的磁盘disktypefiledevicedisk driver nameqemutyperaw/ source file/path/to/disk1.img/ target devvdbbusvirtio/ addresstypepcidomain0x0000bus0x00slot0x06function0x0/ /disk请确保 dev 属性设置了一个尚未使用的设备名称如 vdb。如果已有 vdb则应选择下一个可用的设备名例如 vdc。 address的bus 根据顺序写可以先 virsh edit vm_name 看其他disk3.2.2、方式2: 使用 virsh attach-diskvirsh attach-disk vm_name/path/to/disk1.img vdb--cache none--persistent这里–persistent 参数确保更改会在虚拟机关机后仍然有效–cache none 是一种性能优化选项你可以根据需要调整它。3.3、启动或重启虚拟机virshstartvm_name#或者如果虚拟机已经在运行则使用virsh reboot vm_name#经测试 请使用destroy命令reboot和shutdown不管用。virsh destroy vm_name#或者如果虚拟机已经在运行则使用virshstartvm_name3.4、分区挂载登录虚拟机后 lsblk 可以看到新的 /dev/vdb到此就新增disk完成后续就是分区挂载了本文不详细描述fdisk …四、一些命令# 查看vm列表virsh list virsh list--all# 进入vmvirsh console id/名称# 退出vmCtrl]# 自动启动virsh autostart id/名称 virsh autostart--disable id/名称# 关机virsh shutdown id/名称# 销毁virsh destroy id/名称# 启动virshstart名称# 重启virsh reboot vm1# 删除全空virsh delete id/名称# 删除所有全空virsh delete-all-vm# 删除定义镜像还在virsh undefine id/名称--nvram

相关新闻