准备工作:
硬件配置情况:
Intel NUC i3主机:
CPU: Intel® Core™ i3-6100U CPU @ 2.30GHz × 4
内存:4G
硬盘:300G
网卡:一个,单网口,DHCP连接家庭上网的Switch,Swtich WAN口连接外网;

一、下载CentOS
从CentOS主站点(https://www.centos.org/download/) 页面,选择“Everything ISO”,在打开的下载列表里面选择一个速度比较快的站点,例如:http://mirrors.nju.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1708.iso

二、在宿主机安装CentOS
(1) 制作USB安装镜像
如果没有将ISO文件写到USB的工具,在windows系统下可下载一个rufus工具(http://rufus.akeo.ie/ ),利用该工具制作USB安装镜像;在Linux系统下,可在管理员权限下直接通过命令:
第一步,查看磁盘: fdisk -l
第二步,制作USB镜像: dd -if=xxx/xxx.iso of=/dev/sdxxx
if的参数为iso文件路径,of的参数为USB盘
(2) 安装USB镜像
重启电脑,选择从USB启动,从启动列表选择"Install CentOS 7",开始图形界面下的安装
第一步:在Welcome to CentOS页下,选择语言、区域(例如:中文、中文简体)
第二步:在“安装信息摘要”页下,
“软件>软件选择”中选择安装模式(例如:“基础环境”选择“开发及生成工作站”,“已选环境的附加项”中勾选“开发工具、FTP服务器、图形生成工具、性能监控工具、KDE、大系统性能、传统X window系统的兼容性、办公套件和生产率、科技写作)
“系统>安装位置”中选择合适的磁盘,磁盘分区建议手工调整一下(例如:boot分区(1G, ext3, /boot)、home分区(16G或32G, ext3, /home)、根分区(16G或32G, ext3, /)、var分区(可比较大, ext3, /var)、swap分区(内存小于4G时乘2或1.5、大于等于4G时乘1,swap)
开始安装后,
“配置>ROOT密码”中设在号管理员密码,“配置>创建用户”中可新建一个用户

(3) 完成安装后,重启电脑,以ROOT用户登陆,通过ifconfig命令可查看到已经通过DHCP获得IP及对应的有线网卡名eno1(普通PC下可能是eth0),通过如下命令可查看网络配置文件:
ls /etc/sysconfig/
其中ifcfg-eno1显示如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eno1
UUID=zzzzzz-xxxxxxx-xxxxx
DEVICE=eno1
ONBOOT=no
IPV6_PRIVACY=no
将此文件备份到其他目录下,例如:在/root下创建子目录bak,将上述文件复制过去,后续配在桥接如果失败,可尝试恢复配置文件;
另外,如果网卡没有通过DHCP获得IP,可尝试打开上方的主工作条“应用程序“并选择菜单”系统工具>设置“,在打开的图形界面中,通过选择点击“网络”进入网络设置,在之后的设置页选择“有线网络”,可在其中“添加配置”;
输入法的设置:打开上方的主工作条“应用程序“并选择菜单”系统工具>设置“,在打开的图形界面中,通过选择点击“区域和语言”,在之后的设置页“输入源”右侧的“选项”可配在输入法是否所有窗口共用,在“输入源”下方的列表中点击“汉语”在之后选择“汉语>汉语pinyin”输入法,即可添加拼音输入法,之后可在屏幕右上方的输入法栏中为窗口选择合适的输入法;

通过console终端进行如下配置:
第一步:查看yum软件库源,输入命令: ll /etc/yum.repos.d/
第二步:创建备份目录,输入命令:mkdir /opt/centos-yum.bak
第三步:备份yum软件库源,输入命令:mv /etc/yum.repos.d/* /opt/centos-yum.bak

第四步: 下载阿里云软件库源,输入命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
注意:命令行中最后的版本号7与当前CentOS大版本为7需要一致,当前CentOS版本号可通过如下命令查到:
cat /etc/redhat-release
第五步:清除软件库源缓存,输入命令:yum clean all
第六步:安装第三方软件库源,输入命令:yum -y install epel-release
注意:如果失败,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉,即可。

如下第七步~第十步为支持多媒体编解码所用,不是必须的;
第七步(可选):安装nux仓库,输入命令:
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
之后可通过命令查看软件库源列表:yum repolist
第八步(可选):安装mplayer,输入命令:yum install mplayer
第九步(可选):安装支持NTFS文件系统,输入命令:yum install ntfs-3g
第十步(可选):安装支持pdf文件,输入命令:yum install evince

(4) 在宿主机更新CentOS
KDE环境下,以ROOT身份,打开上方的主工作条“应用程序“并选择菜单”系统工具>软件更新“,在打开的界面中,勾选全部,点击“安装更新”;
KDE环境下,以ROOT身份,打开上方的主工作条“应用程序“并选择菜单”系统工具>Application Installer“,在打开的界面中,选择TAB页中的“更新”,可看到待更新的插进,选择“重启并安装”;
注意:如果使用命令行方式,输入:yum update即可;

三、在宿主机安装KVM
KDE环境下,打开上方的主工作条“应用程序“并选择菜单”系统工具“,如能看到“虚拟系统管理器”,则说明已经有KVM,通常不需要再安装;
否则,以管理员身份通过如下步骤安装KVM;
(1) 检查CPU是否支持虚拟化,输入命令: cat /proc/cpuinfo |grep vmx
如果执行结果中有vmx相关的关键字,则为支持;
(2) 安装KVM及其依赖的包,输入命令:
yum install -y qemu-kvm qemu-key-tools virt-manager libvirt virt-install python-virtinst bridge-utils
(3) 检查KVM已经安装,输入命令:lsmod |grep kvm
如果已经安装,应该能看到相关的列表
(4) 检查KVM加载,输入命令:virsh -c qemu:///system list
如果已经加载,应该能看到running状态,否则需要重启

四、下载OpenSUSE
从OpenSUSE主站点(https://software.opensuse.org/ )页面,选择“OpenSUSE Leap”的下载,之后在选择一个速度比较快的站点,例如:http://mirrors.shuosc.org/opensuse/distribution/leap/42.3/iso/openSUSE-Leap-42.3-DVD-x86_64.iso

五、安装KVM虚拟机OpenSUSE
KDE环境下,以ROOT身份,打开上方的主工作条“应用程序“并选择菜单”系统工具>虚拟系统管理器“,在打开的界面中"创建新的虚拟机“,选择安装文件为所下载的ISO镜像,按照图形界面提示,配置好CPU/内存/硬盘,之后:
(1) 在“选择网络”配置页,由于采用与宿主机一样获取动态IP的方式,虚拟机的网络选用“主机设备 eno1:macvtap”、“源模式”选择“桥接”;
(2) 安装OpenSUSE
第一步:启动虚拟机,选择“Installation"开始安装,"Initializing...“过程较长,之后设置硬盘分区、计算机所在时区,选择有KDE界面的安装模式;
第二步:在“Installation settings”中:如果需要默认启用文本模式,注意在"Default system target"中配置;如果虚拟机对外提供SSH,注意在"Firewall and openSSH"中开启相应的选项“SSH port will be open"、"SSH service will be enabled";
第三步:安装完成侯,以root用户登陆openSUSE,可通过ifconfig命令看到系统网卡etho0已经有ip地址、MAC地址;可通过如下命令查看相应的配置文件:
vi /etc/sysconfig/ifcfg-eth0
例如文件内容为:
BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
DHCLIENT_SET_DEFAULT_ROUTE='yes'
在宿主机上执行命令ifconfig能看到
macvtap0的MAC地址与虚拟机的eth0网卡MAC地址相同;在虚拟机上通过Firefox浏览器能正常上网;