CentOS虚拟机配置教程(以KVM+virt-install为例)
验证虚拟化支持
运行以下命令检查CPU是否支持虚拟化(Intel VT-x或AMD-V):
grep -E '(vmx|svm)' /proc/cpuinfo
若有输出(vmx为Intel,svm为AMD),则表示支持。再检查KVM模块是否加载:
lsmod | grep kvm
若看到kvm_intel(Intel CPU)或kvm_amd(AMD CPU),说明模块已加载。
安装KVM及管理工具
使用yum安装KVM核心组件、虚拟化管理工具和网络支持:
sudo yum install -y qemu-kvm libvirt libvirt-devel virt-install virt-viewer bridge-utils
启动并设置libvirtd服务开机自启:
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
验证服务状态:
sudo systemctl status libvirtd
(可选)安装图形化管理工具virt-manager(需桌面环境):
sudo yum install -y virt-manager
```。
使用virt-install命令快速创建虚拟机,示例(以CentOS 7为例):
sudo virt-install \
--name=mycentos7 \ # 虚拟机名称
--memory=2048 \ # 内存大小(MB)
--vcpus=2 \ # 虚拟CPU核心数
--os-variant=centos7 \ # 优化系统设置的变体
--cdrom=/var/lib/libvirt/images/CentOS-7-x86_64-DVD.iso \ # ISO镜像路径
--disk size=20 \ # 虚拟磁盘大小(GB)
--network network=default \ # 使用默认NAT网络
--graphics vnc,listen=0.0.0.0 \ # 启用VNC远程显示
--noautoconsole # 不自动连接控制台
执行后会启动虚拟机,通过VNC客户端(如TigerVNC)连接至宿主机IP即可完成安装。
若已安装virt-manager,可通过以下步骤创建:
virt-manager打开图形界面;常见模式及适用场景:
ens33):ip link show
/etc/sysconfig/network-scripts/ifcfg-ens33):sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改以下参数(静态IP配置):BOOTPROTO=static # 改为static
ONBOOT=yes # 开机自动启用
IPADDR=192.168.122.100 # 静态IP(需在NAT网段内,如192.168.122.x)
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.122.1 # 网关(通常为NAT网关)
DNS1=8.8.8.8 # DNS服务器
sudo systemctl restart NetworkManager
ping www.baidu.com
```。
若虚拟机磁盘空间不足,可通过以下步骤扩容(以LVM为例):
调整虚拟磁盘大小
关闭虚拟机,通过虚拟化管理工具(如VMware、VirtualBox)扩展虚拟磁盘容量(如从20GB增至40GB)。
扩展虚拟机内分区
lsblk
假设原磁盘为/dev/sda,分区为/dev/sda1(根分区)。growpart扩展分区(需安装cloud-utils):sudo yum install -y cloud-utils
sudo growpart /dev/sda 1 # 扩展第1个分区至磁盘末尾
sudo pvresize /dev/sda1 # 扩展物理卷
sudo lvextend -l +100%FREE /dev/mapper/centos-root # 扩展逻辑卷至剩余空间
sudo xfs_growfs /dev/mapper/centos-root # 扩展XFS文件系统(若为ext4,用resize2fs)
df -h
```。
sudo virsh start mycentos7 / sudo virsh shutdown mycentos7;sudo virsh destroy mycentos7(彻底删除前需先关闭);sudo virt-clone --original=mycentos7 --name=mycentos7-clone --auto-clone;sudo virsh snapshot-create-as mycentos7 my_snapshot "初始状态"(用于恢复系统)。