Debian系统安装KVM虚拟化

Debian系统安装KVM虚拟化

1.先验证下机器是否支持虚拟化

egrep 'vmx|svm' /proc/cpuinfo

物理机也必须要开启虚拟化功能,这里检测一下

root@debian:~#  dmesg | grep kvm
[  455.705523] kvm: zapping shadow pages for mmio generation wraparound
[  494.920829] kvm: zapping shadow pages for mmio generation wraparound

#别出现disable就行,如果出现了disable,需要在BIOS里开启CPU虚拟化功能

2.安装必要的包

apt-get install qemu-kvm virtinst bridge-utils libvirt-daemon-system libvirt-dev libvirt-clients

apt-get install virt-top libguestfs-tools libosinfo-bin  qemu-system virt-manager

.配置桥接网卡

vim /etc/network/interface
 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback

auto br0

# Bridge setup
iface br0 inet dhcp
bridge_ports eno1

我这里是的IP是自动获取的,所以改成这样就行了

如果是手动配置IP,那么参考下面的配置文件

vim /etc/network/interface
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

#iface eno1 inet static
#address 172.24.182.57
#netmask 255.255.255.0
#gateway 172.24.182.10

auto br0
iface br0 inet static
        address 172.24.182.57
        netmask 255.255.255.0
        gateway 172.24.182.10
        bridge_ports eno1    
        bridge_stp off       
        bridge_waitport 0    
        bridge_fd 0

网卡配置完成,还需要加载路由信息,不然机器可能上不了网

vim /etc/rc.local
ip route add 172.25.0.0/16 via 172.25.24.1
ip route add 172.24.0.0/16 via 172.25.24.1
ip route add  default via 172.25.24.11
  • 器让br0生效
reboot

5.创建2个目录,用来存放系统iso和虚拟机的硬盘文件

mkdir /home/iso
mkdir -p /home/img/vm
  •  

-----------------------下面步骤可选------------------------------------------------
插入一步,视情况而定
如果机器有数据盘,那么要记得挂载、分区、甚至做逻辑卷,方便以后扩容
下面以有一个1T的数据盘为例

先建立一个目录
mkdir /data

分区
fdisk -l #查看一下有没有数据盘
n
回车,回车,回车
w 保存

格式化
mkfs -t ext4 /dev/sdb1

自动挂载

echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab
mount -a
df -h #看下挂上没
  •  

#上传一个centos镜像

6.用命令行安装虚拟机

mkdir -p /data/{iso,img}
mkdir -p /data/img/vm

virt-install --virt-type=kvm --name centos7 --ram 1024 --vcpus=1 --os-variant=rhel7 --virt-type=kvm --hvm --cdrom=/data/iso/CentOS-7-x86_64-Minimal-1810.iso --network=bridge=br0,model=virtio  --graphics vnc,listen=0.0.0.0 --noautoconsole --disk path=/data/img/vm/centos7.qcow2,size=40,bus=virtio,format=qcow2

–name 这个参数就是取名字
–ram 这个参数就是分配内存以MB计数 16834就是16G
–vcpus 这个就是分配CPU的个数
–cdrom 这个就是选择镜像位置
–network=bridge 这个就是选择桥接网卡的接口
–disk path 这个参数就是为了配置虚拟机的硬盘大小 size=40 就是40G format为qcow2 这个格式支持快照

#建议先看下宿主机器的配置,再分配虚拟机的资源

这样就可以运行起来,通过ps -ef | grep qemu查询用到的端口
例-vnc 0.0.0.0:0 最后1个0就是指5900端口,1就是5901,以此类推

root@debian:~# ps -ef | grep qemu
libvirt+  6549     1 92 11:41 ?        00:00:10 qemu-system-x86_64 -enable-kvm -name guest=centos7,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-6-centos7/master-key.aes -machine pc-i440fx-2.8,accel=kvm,usb=off,dump-guest-core=off -cpu SandyBridge -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 9c5cf8fd-6ddf-43eb-93ba-569299db1aca -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-6-centos7/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/home/img/vm/centos7.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,id=drive-ide0-0-0,readonly=on -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:03:6f:1d,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-6-centos7/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 0.0.0.0:0 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on

就可以使用vnc-viewer进行连接安装
用宿主IP和刚才看到的端口
然后就是安装虚拟机了

7.启动虚拟机

root@debian:~# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off

root@debian:~# virsh start centos7
Domain centos7 started
<think>好的,我现在需要帮助用户解决在Linux安装和配置KVM虚拟化模块的问题。首先,我要回忆一下KVM的基本要求,包括硬件支持、内核模块和必要的软件包。记得用户可能使用的是基于Debian的发行版,比如Ubuntu,或者是基于Red Hat的,比如CentOS,但用户示例中的引用提到了使用apt,所以可能更偏向Ubuntu。 首先,硬件虚拟化支持是必须的。需要检查CPU是否支持Intel VT-x或AMD-V。用户可能需要运行egrep命令来验证。如果输出中包含vmx或svm,就说明支持。如果用户没有看到这些,可能需要进入BIOS启用虚拟化功能。 接下来是安装软件包的部分。根据引用中的命令,用户需要安装qemu、qemu-kvm、libvirt-bin和bridge-utils。不过现在有些包可能有变化,比如libvirt-bin在较新的Ubuntu版本中可能改为libvirt-daemon-system和libvirt-clients。需要确认正确的包名,避免用户安装出错。同时,用户可能还需要安装virt-manager作为图形界面工具,但用户的问题可能只需要命令行配置。 然后是启动并启用libvirtd服务,确保服务在启动时自动运行。这里可能需要使用systemctl命令,但如果是旧版系统,可能需要使用service命令。不过现在大多数系统都使用systemd了,所以应该没问题。 接下来是用户组权限的问题,将当前用户加入kvm和libvirt组,这样用户不需要sudo就能管理虚拟机。用户可能遇到权限问题,所以这一步很重要。 网络配置部分,默认的NAT可能不够,用户可能需要配置桥接网络。这需要修改网络配置文件,比如/etc/network/interfaces或者使用Netplan(Ubuntu 18.04+)。创建桥接接口br0,并将物理网卡ens33加入其中。这部分需要小心,错误的配置可能导致网络断开,所以建议用户备份原配置文件,并在物理服务器上操作,避免远程连接中断。 验证安装是否成功,可以用virt-host-validate命令,确保所有检查都通过。如果出现失败项,需要根据提示解决问题,比如加载内核模块kvm_intel或kvm_amd。 最后,创建虚拟机可以使用virt-install命令,或者使用virt-manager图形界面。用户可能需要提供ISO镜像路径,指定存储、内存和CPU等参数。这一步可能会有依赖问题,比如python3-libvirt是否安装,或者virtinst包是否存在,需要确保这些包已经安装。 在生成相关问题的时候,需要考虑用户可能的后续问题,比如网络配置的详细步骤、权限问题的解决、性能优化、不同发行版的差异以及虚拟机的管理工具等。需要覆盖常见的后续步骤和潜在问题,帮助用户进一步深入学习。 现在需要确保所有的命令和步骤都是最新的,适用于主流的Linux发行版,特别是Ubuntu。同时,引用用户提供的参考信息,正确标注引用标记。注意检查命令中的包名称是否正确,比如libvirt-bin是否已经被替代,必要时更新命令。例如,在Ubuntu 20.04及以上,libvirt-bin已经被替换为libvirt-daemon-system和libvirt-clients,所以安装命令可能需要调整。需要确认这一点,避免给用户错误的指令。 另外,用户可能对桥接网络的配置不太熟悉,需要给出详细的步骤,比如编辑Netplan配置文件,应用配置,并重启网络服务。这部分需要详细但清晰的说明,避免用户操作失误导致网络问题。 总结步骤:检查硬件支持、安装软件包、启用服务、用户组权限、网络配置、验证安装、创建虚拟机。每个步骤都要简明扼要,同时提供必要的命令和解释。确保用户能够一步步跟随操作,顺利完成安装和配置。</think>### Linux系统KVM虚拟化模块安装配置指南 #### 一、硬件环境检查 1. **确认CPU虚拟化支持** 执行命令检查CPU特性: ```bash egrep -c '(vmx|svm)' /proc/cpuinfo ``` 输出值大于0表示支持虚拟化技术。若返回0,需进入BIOS开启Intel VT-x/AMD-V功能[^1]。 2. **验证内核模块加载** KVM依赖内核模块`kvm`和`kvm_intel`(Intel CPU)或`kvm_amd`(AMD CPU): ```bash lsmod | grep kvm ``` #### 二、软件包安装 1. **安装核心组件**(以Ubuntu/Debian为例) 更新仓库并安装必要软件: ```bash sudo apt update sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager ``` - `qemu-kvm`: KVM虚拟化管理程序 - `libvirt-daemon-system`: Libvirt守护进程 - `virt-manager`: 图形化管理工具[^2] 2. **启动服务** 启用并启动libvirt服务: ```bash sudo systemctl enable --now libvirtd ``` #### 三、用户权限配置 将当前用户加入`kvm`和`libvirt`用户组: ```bash sudo usermod -aG kvm,libvirt $USER newgrp libvirt # 立即生效 ``` #### 四、网络桥接配置 1. **创建桥接网络** 修改Netplan配置文件(如`/etc/netplan/01-netcfg.yaml`): ```yaml network: version: 2 renderer: networkd ethernets: ens33: # 物理网卡名称 dhcp4: no bridges: br0: interfaces: [ens33] dhcp4: yes ``` 应用配置: ```bash sudo netplan apply ``` 2. **验证桥接接口** ```bash ip addr show br0 ``` #### 五、安装验证 执行完整性检查: ```bash sudo virt-host-validate ``` 输出应为`✓`标记所有检测项,如下所示: ``` QEMU: Checking for hardware virtualization : PASS ... ``` #### 六、创建虚拟机示例 通过命令行创建虚拟机(需准备ISO镜像): ```bash virt-install \ --name ubuntu22 \ --ram 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/ubuntu22.qcow2,size=20 \ --os-type linux \ --os-variant ubuntu22.04 \ --network bridge=br0 \ --graphics spice \ --cdrom /path/to/ubuntu-22.04-live-server-amd64.iso ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值