centos 虚拟机 windows centos安装虚拟机
如何在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已经永久激活。
CentOS上配置VirtualBox虚拟机及安装Windows的教程
开始之前,首先需要使用 VirtualBox最小化安装 CentOS 7.0。
系统设置
使用 root账号登录,进行系统设置。
安装组件
安装系统必须的组件。
复制代码
代码如下:
yum install gcc bzip2 kernel-devel wget
修改主机名称
设置一个便于识别的主机名称,便于以后使用 ssh登录时方便识别。
复制代码
代码如下:
vi/etc/hostname
SSH设置
取消 DNS解析,使 ssh登录更快。编辑/etc/ssh/sshd_config文件,更改以下配置项:
复制代码
代码如下:
UseDNS no
安装 VBoxGuestAdditions
安装了 VBoxGuestAdditions后才可以使用共享目录的功能。
注意:此时需要重启一下系统,否则可能无法继续安装。
点击 VirtualBox运行界面的 Devices菜单,选择 Insert Guest Additions CD Image。
挂载光盘并安装 VBoxGuestAdditions
复制代码
代码如下:
mkdir/media/cdrom
mount/dev/cdrom/media/cdrom
/media/cdrom/VBoxLinuxAdditions.run
umount/media/cdrom
rm-rf/media/cdrom
用户配置
设置 root用户密码为 vagrant。
创建 vagrant用户,密码与用户名相同。
配置 vagrant用户执行 sudo命令时不需要输入密码。并且可以后台执行指令。运行 visudo命令。然后添加如下配置:
复制代码
代码如下:
vagrant ALL=(ALL) NOPASSWD: ALL
Defaults requiretty
设置 vagrant用户证书,使其可以无密码登录系统
复制代码
代码如下:
cd/home/vagrant
mkdir.ssh
wget--no-check-certificate
chmod 700.ssh
chmod 600.ssh/authorized_keys
chown-R vagrant:vagrant.ssh
清理系统
清理临时文件以减小制作出来的 Box文件体积。
复制代码
代码如下:
yum clean all
rm-rf/tmp/*
rm-f/var/log/wtmp/var/log/btmp
history-c
然后关闭虚拟系统。
打包
回到物理机终端,使用下面的命令打包输出 box.
复制代码
代码如下:
vagrant package--base [virtualbox name]--output [box name].box
创建一个 windows的虚拟环境
开始之前,需要先准备一个 windows的安装文件,如 win2003.iso。
使用命令行创建 VirtualBox虚拟机
创建一个名为 win2003的虚拟机:
复制代码
代码如下:
vboxmanage createvm--name win2003--register
设置虚拟机
复制代码
代码如下:
#设置系统类型
vboxmanage modifyvm win2003--ostype Windows2003
#开启电源管理
vboxmanage modifyvm win2003--acpi on
#设置系统内存
vboxmanage modifyvm win2003--memory 512
#添加网卡,网络模式为 NAT
vboxmanage modifyvm win2003--nic1 nat
创建一个的虚拟硬盘,容量为 5G
复制代码
代码如下:
vboxmanage createhd--filename win2003.vdi--size 5000
绑定虚拟硬盘
复制代码
代码如下:
#创建虚拟机的硬盘控制器
vboxmanage storagectl win2003--name HDD--add ide--bootable on
#绑定创建的虚拟硬盘
vboxmanage storageattach win2003--storagectl HDD--port 0--device 0--type hdd--medium win2003.vdi
添加光驱并绑定系统安装文件
复制代码
代码如下:
vboxmanage storageattach win2003--storagectl HDD--port 0--device 1--type dvddrive--medium win2003.iso
启动并安装系统
复制代码
代码如下:
vboxheadless-s win2003
在桌面环境的电脑上使用远程桌面软件,连接服务器的 3389端口就可以看到虚拟机的画面,并进行安装操作了。
使用 vboxheadless命令启动的虚拟机是会话模式的,而且默认启用了远程桌面功能 VRDP。适合首次运行虚拟机安装系统。安装完系统后,想要以后台服务的方式运行,应当使用 vboxmanage startvm命令:
复制代码
代码如下:
vboxmanage startvm win2003--type headless
安装增强包
VirtualBox默认安装好系统后,使用起来不是很顺畅。特别是鼠标操作时,迟滞感十分严重。安装增强包可以明显改善操作感。首先下载 VirtualBox Guest Additions增强包: VBoxGuestAdditions_4.3.20.iso。然后使用下面的命令挂载增强包到光驱:
复制代码
代码如下:
vboxmanage storageattach win2003--storagectl HDD--port 0--device 1--type dvddrive--medium VBoxGuestAdditions_4.3.20.iso
然后启动系统,双击光驱盘符,执行安装程序后重启完成。
添加共享目录
共享目录方便虚拟机和主机之间交换文件,使用下面的命令进行共享目录的添加和删除:
添加共享目录:
复制代码
代码如下:
vboxmanage sharedfolder add win2003--name share-name--hostpath/host/path/folder/--automount
删除共享目录:
复制代码
代码如下:
vboxmanage sharedfolder remove win2003--name share-name
其它常用技巧
1.添加 NAT网络模式下的端口转发
复制代码
代码如下:
#添加远程桌面的转发
vboxmanage modifyvm vmname--natpf1"remote desktop,tcp,,33089,,3389"
vboxmanage modifyvm vmname--natpf2"remote desktop,udp,,33089,,3389"
2.关闭虚拟机
复制代码
代码如下:
vboxmanage controlvm vmname poweroff
3.开机自动启动虚拟机
设置自动开机的数据库路径:
复制代码
代码如下:
vboxmanage setproperty autostartdbpath/etc/vbox
添加要开机启动的虚拟机:
复制代码
代码如下:
vboxmanage modifyvm vmname--autostart-enabled on--autostop-type acpishutdown
启动管理服务:
复制代码
代码如下:
service vboxautostart-service restart
如何将centos7重装成windows
在CentOS 7系统上重装为Windows操作系统,首先需要准备Windows的安装镜像,然后通过制作启动盘、调整系统分区、安装新系统以及配置引导等步骤来实现。
首先,需要准备一个可用的Windows安装镜像文件,通常可以从Microsoft官方网站下载。同时,准备一个足够大的U盘,用于制作Windows系统的安装启动盘。可以使用Windows操作系统自带的工具或者其他第三方软件如Rufus来制作启动盘。
接下来是调整系统分区。由于CentOS和Windows的文件系统不同,因此需要为Windows系统创建新的分区。这可以通过使用Linux下的分区工具如GParted或者在安装Windows过程中进行分区来完成。在分区时,需要确保分配给Windows的分区足够大,并且能够支持Windows系统的运行。
安装新系统时,将制作好的Windows启动盘插入电脑,重启电脑并进入BIOS设置,将U盘设置为启动首选设备。重启电脑后,系统会自动从U盘启动,并进入Windows安装界面。按照安装向导的提示进行操作,选择之前准备好的分区进行安装。
最后,配置系统引导。在安装完成后,可能需要修复或重新配置引导加载程序,以确保电脑启动时能够正确选择Windows或保留的CentOS系统。这通常涉及到修改GRUB配置文件或者使用Windows的引导修复工具。
举个例子,如果在虚拟机中操作,可以先在虚拟机设置中添加一个新的硬盘或者调整现有硬盘的分区,然后挂载Windows安装镜像并启动虚拟机。在物理机上操作类似,只是需要实际制作U盘启动盘,并在BIOS中设置启动顺序。
总的来说,将CentOS 7重装为Windows系统需要一定的技术知识和操作经验。在操作过程中,务必谨慎并备份重要数据,以防数据丢失或系统损坏。如果遇到问题,可以查阅相关文档或寻求专业人士的帮助。