centos虚拟机上用KVM安装win7虚拟机

1 准备
1.1 在vmware设置中将centos虚拟机的Intel VT或AMD-V功能打勾选中 
1.2 检查cpu是否支持vt
用下列指令检查cpu是否支持vt:
cat /proc/cpuinfo|egrep 'vmx|svm'
1.3 关闭SElinux
# 将 /etc/sysconfig/selinux 中的SELinux=enforcing修改为 SELinux=disabled  
vi /etc/sysconfig/selinux 

2 安装kvm
2.1 安装
yum -y install kvm  
#安装kvm核心包——虚拟操作系统模拟器加速模块
yum -y install qemu-kvm qemu-kvm-tools  
#安装kvm管理工具  
yum -y install libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install  
#启动服务
systemctl start libvirtd 
systemctl enable libvirtd 
2.2 检查
lsmod | grep kvm 
brctl show

3 为KVM虚拟机配置桥接网络
原网卡为enp7s0
3.1 添加作为桥接的新网卡br0
cd /etc/sysconfig/network-scripts/
vi ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR="192.168.0.12"
NETMASK=255.255.255.0
GATEWAY="192.168.0.1"
DNS1="218.2.135.1"
DNS2="221.228.225.1"
DEFROUTE=yes
3.2 修改原网卡
vi ifcfg-enp7s0
将原网卡的ip地址屏蔽并增加一个桥接网卡br0
#IPADDR="192.168.0.12"
BRIDGE="br0"
3.3 重启网络服务并查看是否正常
systemctl restart network
ifconfig

4 VNC环境搭建
4.1 安装vnc服务
yum -y install tigervnc tigervnc-server  
4.2 vnc服务配置——宿主机远程控制
# 配置vnc  
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service  
# 编辑刚刚复制得到的文件,将文件中的<USER>修改为VNC Client(或者VNC Viewer)连接的账号,我只设置一个用户root,多用户再增加对应的vncserver@:2.service文件即可  
vi /etc/systemd/system/vncserver@:1.service  
# 修改以后的文件部分内容(只修改文件下半部分)  
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/bin/vncserver :1 "
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
4.3 启动服务
#设置vnc连接密码
vncpasswd  
# 启动vncserver@:1.service并设置开机启动  
systemctl start vncserver@:1.service  
systemctl enable vncserver@:1.service  
# 设置防火墙(VNC默认是被防火墙阻止的)  
firewall-cmd --permanent --add-service="vnc-server" --zone="public"  
firewall-cmd --reload  
# 启动VNC服务  
vncserver  
4.4 故障排查
# 启动vncserver@:1.service的时候会出现错误  
# 解决办法:删除/tmp/.X11-unix/ 目录,并重新设置一次密码,然后再次启动这个服务即可  
rm -R /tmp/.X11-unix/  
vncpasswd  
systemctl start vncserver@:1.service  
#或者检查配置文件
vi /etc/systemd/system/vncserver@:1.service  
检查里面的/usr/、/home等目录、root、User等设置是否正确
4.5 vnc服务配置——虚拟机远程控制相关的一些说明
上面是VNC连接主机的VNC服务时设置的情况,如果是要远程连接主机安装虚拟机,可以不进行上面的设置,安装虚拟机的时候用主机ip,端口号5900(默认,可以进行设置,后面会说到),有权限的账号密码都可以连接。
这里也有一个坑:5900是VNC里面远程连接虚拟机用的端口(安装和安装好以后都用这个端口),能远程操作安装过程;5901,5902等端口是VNC中设置的远程连接主机的端口号,这里要做好区分。
还有一种用virt-manager虚拟机图形管理的方式安装虚拟机,这里有个前提,主机必须安装好GNOME等桌面环境,CentOS中安装有点复杂,很难安装成功(踩过的第一个坑),个人觉得还是用VNC的方式安装比较好,服务器安装桌面环境多少有点累赘。

5 创建虚拟机
这一步操作需要注意的几个点:a、局域网内与主机传输文件用scp或ftp命令,要保证ISO镜像文件在主机上有操作权限的目录下,比如 /home等;b、不管安装什么系统的虚拟机,创建的磁盘类型,分配的虚拟内存等参数可能有所不同,但有几个参数必须要正确对应,否则安装不成功。需要注意的几个参数:–disk,–cdrom或者–location,–cpu(这个必须和主机的cpu型号一直),–network(首先要确定需要安装虚拟机网络的类型,是Bridge模式还是NAT模式),–graphics和–os-type
5.1 创建新的存储池
mkdir -p /var/kvm/images 
虚拟机的映像默认放置在/var/lib/libvirt/images作为存储池
或者:
qemu-img create -f raw /opt/kvm.raw 10G  
# 检查磁盘是否创建成功  
qemu-img info /opt/kvm.raw  
5.2 WinXP
virt-install \
--virt-type kvm \
--name xp \
--ram 2048 \
--cdrom=/home/iso/xp.iso \
--boot cdrom \
--cpu kvm64 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0,port=5901 \
--disk path=/opt/kvm.raw,bus='ide' \
--noautoconsole \
--os-type=windows  
5.3 CentOS系统的安装
virt-install \
--virt-type=kvm \
--name=centos \
--vcpus=2 \
--memory=1024 \
--disk path=/opt/centos.qcow2,size=10,format=qcow2 \
--network bridge=br0 \
--graphics none \
--location=/home/iso/centos.iso \
--extra-args='console=ttyS0' \
--os-type=linux \
--force
5.4 Windows Server
virt-install \
--virt-type kvm \
--name server2017 \
--ram 2048 \
--cdrom=/home/iso/windows_server2016_64.iso \
--boot cdrom \
--cpu core2duo \
--network bridge=br0,model='e1000' \
--graphics vnc,listen=0.0.0.0,port=5901 \
--disk path=/opt/kvm.raw,bus='ide' \
--noautoconsole \
--os-type=windows
5.5 CoreOS
virt-install \
--virt-type kvm \
--name coreos \
--ram 1024 \
--cdrom=/home/iso/coreos_production_iso_image.iso \
--boot cdrom \
--cpu kvm64 \
--network bridge=br0,model='virtio' \
--graphics vnc,listen=0.0.0.0,port=5901 \
--disk path=/opt/kvm.raw,bus='ide' \
--noautoconsole \
--os-type=linux

6 VNC连接
Windows上RealVNC或TigerVNC连接
192.168.0.12:5901
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐