centos kvm安装centos7(centos7下载地址)
如何在centos6.5的kvm虚拟机中永久激活windows2008
一、激活原理
目前激活Windows7/Windows2008的各种方法充斥互联网,但公认比较完美的激活方式是将品牌机(例如DELL、LENOVO等)的SLIC信息表刷写进需要安装Windows系统的计算机BIOS中,将该计算机“仿真”为品牌机,然后安装微软的OEM版Windows7/Windows2008并自动激活。
相信喜欢搞破解的童鞋都应该知道其中的奥秘,微软和PC厂商为了减轻对于操作系统的激活负荷,对大多数品牌机实行了有别于联网激活的“SLIC激活机制”:当Windows操作系统启动时,就会自行读取本机BIOS中的SLIC信息表,以及操作系统的“OEM密钥”和“OEM证书”,如果三者完全吻合、验证一致,Windows7/Windows2008系统就会被识别为自动激活的OEM版本。
笔者研究发现,Windows2012(注意不是Windows2012_R2,下同)与以往激活Windows7/Windows2008的方式类似,依然可以采用刷写BIOS中SLIC信息表安装OEM版系统的方式实现永久激活,只不过激活Windows2012需要SLIC2.2版,经测试SLIC2.2能够向下兼容SLIC2.1/2.0。
众所周知,虚拟机软件也是有BIOS的,目前市场上常见的虚拟机软件,如VMware、Xen、Kvm等均通过软件仿真的方式“模拟”硬件BIOS。既然可以采用刷写计算机硬件BIOS的方式实现永久激活,那么如果能够将SLIC2.2信息表通过软件再编译方式“灌入”虚拟机的BIOS中,然后再安装Windows2012的OEM版本,不就可以与刷写BIOS硬件实现自动激活“异曲同工”了吗?
二、核心问题
激活原理已经非常明确了,现在的关键问题是如何重新编译Linux虚拟机的问题了,这涉及Linux内核的重新编译,一些菜鸟可能望而生畏,尽管编译 Linux全部内核确实需要较高的技术水平,但重新编译Linux的BIOS难度并不高,初学者也可以轻松实现。本文以Linux的常见版本CentOs6.5为例,详细讲解重新编译KVM虚拟机BIOS的步骤。本文的方法同样适用Ubuntu等 Linux版本。
CentOs6.5虚拟机KVM的BIOS实际是一个二进制的可执行文件,默认安装路径为/usr/share/seabios/bios.bin。笔者研究发现,KVM虚拟机BIOS使用的是开源软件 seabios,该软件的源代码可以在互联网上找到,开源组织也制作了为seabios软件增加相应SLIC信息表的补丁包,下载seabios的源代码并打上该补丁包,然后重新编译并替换Linux默认的bios.bin文件,就可以将虚拟机“仿真”为品牌机,然后自动激活OEM版的Windows2012系统了,这种激活方式是永久激活,激活后的Windows2012可以打上微软的后续补丁且绝对不会被封杀。
三、详细步骤
1.获取SLIC2.2信息表。当前SLIC2.1的信息表网上很容易找到,SLIC2.2的信息表不多,比较容易找到的是DELL版的SLIC2.2信息表。当然也可以找一台预装了Windows2012的品牌机(市面上比较常见的是DELL的机器),然后使用SLIC_Toolkit3.2工具导出该机器的SLIC表。SLIC2.1/2.2表为二进制文件,长度均为374字节(这一点一定要注意)。
2.安装CentOs6.5_x64版操作系统。记得把gcc安装上,然后将上一步已经获取的SLIC2.2表拷贝在/ opt目录中(假定文件名称为DELL_SLIC2.2.BIN)。
3.在root用户下安装git,、iasl及所有依赖包。
#yum install git
#yum install iasl//这是必须安装的包
4.使用git获取sealic项目的源码。
# mkdir bios//目录可以自己随便建
#cd bios
#git clone git://github.com/ghuntley/seaslic//获取源代码
#ls-ls
Seaslic//用git软件获取源代码后会有多出一个目录
# cd seaslic
#ls
patch.sh README.markdown seabios.patch seabios.submodule
//该目录共包含三个文件和一个子目录,其中子目录seabios.submodule需要删除掉,用我们后面下载的内容重建。
#rm-rf seabios.submodule
5.从地址code.coreboot.org/p/seabios下载的SeaBios的源码并解压。注意源代码一定要下载1.7.3.2版本的,这一点也很关键,千万不能搞错了。
#tar xzvf seabios-1.7.3.2.tar.gz解压在/bios目录下。
6.重建seabios.submodule
#cd/bios
# cp–r seabios-1.7.3.2 seaslic/seabios.submodule
# cd seaslic
# ls
patch.sh README.markdown seabios.patch seabios.submodule
进入我们重建的seabios.submodule目录,可以发现有bios的源代码存在:
# cd seabios.submodule
# ls
COPYING COPYING.LESSER Makefile README README.CSM src TODO tools vgasrc
# cd src
可以发现seabios的源代码,我们需要重新编译这些源代码,生成新的bios.bin文件,用于替代CentOs6.5系统自带的bios.bin。
7.查看/bios/seaslic/patch.sh文件。这是一个批处理文件,只有2行有用。用Linux的命令方式执行,为防止输入错误,最好从patch.sh中复制粘贴后在root用户下执行:
①将SLIC2.2文件转换为C语言包含文件格式(acpi-slic.hex)的命令:
#xxd-i/opt/DELL_SLIC2.2.BIN| grep-v-E"len"| sed's/unsigned char.*/static char SLIC[]={/'> seabios.submodule/src/acpi-slic.hex
说明:这条命令执行后将会把SLIC2.2表(即/opt/DELL_SLIC2.2.BIN文件)转换为C语言包含文件格式(文件名../src/acpi-slic.hex),并以数组形式存在。这一步非常非常关键,转换完成的acpi-slic.hex文件应为2333字节。如果本条命令执行不成功的话,编译出来的bios.bin文件不会包含SLIC2.2信息,也就无法实现激活了。
②为acpi.c文件打补丁的命令:
# cd/bios/seaslic/seabios.submodule
#patch-p1<../seabios.patch
说明:这条语句执行后将给../ src/acpi.c文件打上补丁,执行后系统将会提示:
Hunk#1 succeeded at 20 with fuzz 2(offset-194 lines).
Hunk#2 succeeded at 37 with fuzz 2(offset-194 lines).
Hunk#3 succeeded at 631 with fuzz 2(offset-205 lines).
注意:至此我们的准备工作已经全部完成了,下面将重新编译生成新的bios了。
8.重新编译生成bios.bin文件
# cd/bios/seaslic/seabios.submodule
#make//编译需要花几十秒钟吧,应提示无错误、无警告,否则可能需要仔细检查以上步骤。
查看..seabios.submodule/out/bios.bin
看到最后生成的结果了吧,会在..seabios.submodule/out/中多出一个bios.bin文件,这个文件就是我们重新编译生成的虚拟机的bios,将用来替换KVM的系统原有的bios.bin文件。
说明:这里编译生成bios.bin文件包含有DELL品牌机的SLIC2.2,可以激活DELL的Windows2012_OEM版。同理,我们只要找到其他品牌机的SLIC2.2信息表,重新编译后就可以安装激活其他品牌机的OEM版Windows7/2008/2012(SLIC2.1只能支持Vista/Win7/2008,不支持 Win2012;SLIC2.2则支持XP/Vista以及Win2008/2012并兼容SLIC2.1),与刷写计算机硬件BIOS实现自动激活的方式相比,采用这种方式激活Windows的风险为零,非常适合批量激活虚拟机的Windows2008/Windows2012。
9.替换CentOs6.5系统默认的bios.bin文件
# cp out/bios.bin/usr/share/seabios/bios.bin
#reboot//重新启动一下宿主机,然后再重新启动Windows虚拟机,在启动KVM虚拟机的时候,可以发现虚拟机的bios已经更新为最新版本了。
10.激活windows2012
至此KVM虚拟机的bios已经重新配置完成,在KVM中启动WINDOWS客户机,然后利用SLIC_Toolkit3.2工具检查SLIC,会发现你的SLIC信息已经获取成功,如果你安装的是OEM版本的 Win2008/2012的话,无需输入key和证书就能自动激活。你可以从网上百度如下OEM镜像(我已试验过可自动激活):
(1)Lenovo的OEM版Windows2008_R2镜像:
Windows_Server-2008_R2_ENT_OEM.iso或者
Win_Server_08_R2_SP1_33in1.iso
(2)Dell的OEM版Windows2012镜像:
Ser2012_ST_DA_OEM.iso
(3)如果你手上暂时没有OEM版的话,也不要紧,可以用slmgr命令手工增加证书及OEM序列号也可以激活Windows2008/20012。直接用管理员身份进入命令行模式:
①slmgr-ilc DELL2.2.XRM-MS//这里找到的是DELL计算机的Windows2012版OEM证书。
②接下来就是写入注册号了:
slmgr-ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
说明:下面是我从网上找到的 OEM版序列号(经测试可以激活):
Windows Server 2012 Standard DELL OEM KEY
2G9DG-XKFR6-VG8D3-DN9T9-CDG98
Windows Server 2012 Datacenter DELL OEM KEY
2BVGY-TNRWK-6927W-866R9-66J3H
Windows Server 2008 R2 Standard DELL OEM KEY
D7TCH-6P8JP-KRG4P-VJKYY-P9GFF
Windows Server 2008 R2 Enterprise DELL OEM KEY
BKCJJ-J6G9Y-4P7YF-8D4J7-7TCWD
③执行slmgr–dlv//显示全部激活信息
④执行slmgr-xpr//显示Windows2008/2012已经永久激活。
CentOS7安装及配置qemu-kvm保姆教程
1.在图形界面中点击右键,打开终端。
2.执行以下命令:
yum install qemu-kvm libvirt virt-manager libguestfs-tools virt-install.noarch-y
来安装qemu-kvm。
3.由于kvm默认的网络接口只有NAT,无法与宿主机处在统一逻辑网段,因此需要在KVM中添加空网桥。在终端中运行命令:brctl addif br1 enp3s0,其中br1为空网桥名称,enp3s0为物理机网卡名称。新建的虚拟机网络接口选择br1,这样虚拟机就能与宿主机处于同一个网段。
4.但是,通过以上操作可能会遇到一个问题,即系统重启后网桥br1会回到空状态,无法保存与enp3s0的绑定。此时可以进行以下操作:
使用命令cd/etc/sysconfig/network-scripts进入网络设备配置文件界面,然后运行ls命令,可以看到所有“ifcfg-”+“设备名”的网络设备接口配置文件。以enp3s0为例,网桥为br1,因此运行vim ifcfg-enp3s0编辑接口配置的文本文件。首先在文本中添加BRIDGE=br1,将网卡与br1绑定,然后将所有TCP/IP相关的配置前面添加“#”注释掉,最后将DEFROUTE的值设置为no(为了不影响其他网卡访问外网和互访)。保存退出,重启设备,这样绑定的配置就不会解除了。
5.第4条中提到的问题多出现在笔记本等家用设备中,在配置专业服务器时有一定几率出现,但概率不高。一般配置专业服务器时,只需将用作网桥的物理网卡enp3s0设置为DHCP模式,网桥在建立时配置固定地址,然后两者绑定即可。如果出现问题,可以参考第4条中提到的办法进行优化。
6.KVM虚拟机文件的存放地址为/var/lib/libvirt/images,如果需要备份,可以到这个文件夹中复制虚拟机文件。
7.备注:在实际操作中,经过以上设置,虚拟机启动且网桥绑定的网卡连接到网络后,其他网卡的运作和内外访问肯定不受影响。如果网桥绑定网卡未连接到网络,有时其他网卡也无法正常运作,但实际工作中这种情况无意义,故忽略。只是提醒,如果发生此类问题,可以考虑这方面的原因。
CentOS7中安装配置与使用KVM(图形化操作方式)
在 CentOS 7环境下配置与使用 KVM的图形化操作步骤如下:
一、实验环境准备:使用 CentOS 7 x64系统,配置处理器核心为4,运行内存8G,存储空间100G。推荐使用最新版本的 Vmware 16,但其他版本亦可。
二、开启虚拟化设置:在 CentOS系统中,确保虚拟化支持已经开启,这是运行虚拟机的前提。
三、在 Vmware中创建高配置的 CentOS7虚拟机:安装 CentOS 7软件包,构建虚拟机。虚拟机软件应包含必要的硬件配置,以实现高效运行。
四、安装配置与使用 KVM:
1.检查 CPU是否支持虚拟化:在 CPU标准输出中寻找 vmx或 svm,确认支持虚拟化功能。
2.检查 KVM模块是否加载:通过命令确认 KVM模块是否已加载。
3.关闭 SELinux:编辑/etc/selinux/config文件,修改配置后重启系统,确保 SELinux不影响 KVM的正常运行。
4.安装 KVM相关软件包:使用 yum安装 qemu-kvm、qemu-img、virt-manager等,确保所有组件正确安装并确认安装过程无误。
5.启动 libvirt并设置开机自启动。
6.创建存放系统镜像和虚拟机硬盘的目录。
7.桥接设备关联网卡:查看网卡信息,根据实际情况配置设备,确保虚拟机与物理网络正常连接。
8.安装虚拟机:在图形化管理界面中新建虚拟机,上传镜像文件,配置内存、CPU、存储空间等参数,并定义虚拟机存储位置。
五、实现虚拟机内部安装 CentOS:
1.在图形化界面中创建虚拟机,上传镜像文件。
2.选择安装介质和系统镜像路径。
3.配置虚拟机的内存与 CPU,定义存储空间大小。
4.选择虚拟机存储目录和存储池名称,确保虚拟机文件正确存储。
5.添加存储卷,确保虚拟机文件有足够空间存放。
6.定义虚拟机名称,启动虚拟机,执行正常的 CentOS安装流程。
通过以上步骤,您可以在 CentOS 7环境下成功配置与使用 KVM,实现高效、灵活的虚拟化管理。