centos6.5安装gcc,linux安装gcc命令
如何在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安装bugzilla问题一大堆
1.安装依赖程序安装Bugzilla相当简单。这篇文章特别针对Ubuntu14.04和CentOS6.5两个版本(不过也适用于更老的版本)。为了获取并能在Ubuntu或CentOS系统中运行Bugzilla,我们要安装Apache网络服务器(启用SSL),MySQL数据库服务器和一些需要来安装并配置Bugzilla的工具。要在你的服务器上安装使用Bugzilla,你需要安装好以下程序:Perl(5.8.1或以上)MySQLApache2BugzillaPerl模块使用apache的Bugzilla正如我们所提到的本文会阐述Ubuntu14.04和CentOS6.5/7两种发行版的安装过程,为此我们会分成两部分来表示。以下就是在你的Ubuntu14.04LTS和CentOS7机器安装Bugzilla的步骤:准备所需的依赖包:你需要运行以下命令来安装些必要的包:Ubuntu版本:$sudoapt-getinstallapache2mysql-serverlibapache2-mod-perl2libapache2-mod-perl2-devlibapache2-mod-perl2-docperlpostfixmakegccg++CentOS版本:$sudoyuminstallhttpdmod_sslmysql-servermysqlphp-mysqlgccperl*mod_perl-devel注意:请在shell或者终端下运行所有的命令并且确保你用root用户(sudo)操作机器。2.启动Apache服务你已经按照以上步骤安装好了apache服务,那么我们现在需要配置apache服务并运行它。我们需要用sodo或root来敲命令去完成它,我们先切换到root连接。$sudo-s我们需要在防火墙中打开80端口并保存改动。#iptables-IINPUT-ptcp--dport80-jACCEPT#serviceiptablessave现在,我们需要启动服务:CentOS版本:#servicehttpdstart我们来确保Apache会在每次你重启机器的时候一并启动起来:#/sbin/chkconfighttpdonUbuntu版本:#serviceapache2start现在,由于我们已经启动了我们apache的http服务,我们就能在默认的127.0.0.1地址下打开apache服务了。3.配置MySQL服务器现在我们需要启动我们的MySQL服务:CentOS版本:#chkconfigmysqldon#servicestartmysqldUbuntu版本:#servicemysql-serverstartmysql用root用户登录连接MySQL并给Bugzilla创建一个数据库,把你的mysql密码更改成你想要的,稍后配置Bugzilla的时候会用到它。CentOS6.5和Ubuntu14.04Trusty两个版本:#mysql-uroot-p#password:(You'llneedtoenteryourpassword)#mysql>createdatabasebugs;#mysql>grantallonbugs.*toroot@localhostidentifiedby"mypassword";#mysql>quit注意:请记住数据库名和mysql的密码,我们稍后会用到它们。4.安装并配置Bugzilla现在,我们所有需要的包已经设置完毕并运行起来了,我们就要配置我们的Bugzilla。那么,首先我们要下载最新版的Bugzilla包,这里我下载的是4.5.2版本。使用wget工具在shell或终端上下载:wget/bugzilla/AddHandlercgi-script.cgiOptions+Indexes+ExecCGIDirectoryIndexindex.cgiAllowOverrideLimitFileInfoIndexes接着,我们需要编辑.htaccess文件并用“#”注释掉顶部“Options-Indexes”这一行。让我们重启我们的apache服务并测试下我们的安装情况。CentOS版本:#servicehttpdrestartUbuntu版本:#serviceapache2restartbugzilla-install-success这样,我们的Bugzilla就准备好在我们的Ubuntu14.04LTS和CentOS6.5上获取bug报告了,你就可以通过本地回环地址或你网页浏览器上的IP地址来浏览bugzilla了。
如何在Ubuntu / CentOS 6.x上安装Bugzilla 4.4
1.安装依赖程序
安装Bugzilla相当简单。这篇文章特别针对Ubuntu 14.04和CentOS 6.5两个版本(不过也适用于更老的版本)。
为了获取并能在Ubuntu或CentOS系统中运行Bugzilla,我们要安装Apache网络服务器(启用SSL),MySQL数据库服务器和一些需要来安装并配置Bugzilla的工具。
要在你的服务器上安装使用Bugzilla,你需要安装好以下程序:
Perl(5.8.1或以上)
MySQL
Apache2
Bugzilla
Perl模块
使用apache的Bugzilla
正如我们所提到的本文会阐述Ubuntu 14.04和CentOS 6.5/7两种发行版的安装过程,为此我们会分成两部分来表示。
以下就是在你的Ubuntu 14.04 LTS和CentOS 7机器安装Bugzilla的步骤:
准备所需的依赖包:
你需要运行以下命令来安装些必要的包:
Ubuntu版本:
$ sudo apt-get install apache2 mysql-server libapache2-mod-perl2 libapache2-mod-perl2-dev libapache2-mod-perl2-doc perl postfix make gcc g++
CentOS版本:
$ sudo yum install httpd mod_ssl mysql-server mysql php-mysql gcc perl* mod_perl-devel
注意:请在shell或者终端下运行所有的命令并且确保你用root用户(sudo)操作机器。
2.启动Apache服务
你已经按照以上步骤安装好了apache服务,那么我们现在需要配置apache服务并运行它。我们需要用sodo或root来敲命令去完成它,我们先切换到root连接。
$ sudo-s
我们需要在防火墙中打开80端口并保存改动。
# iptables-I INPUT-p tcp--dport 80-j ACCEPT
# service iptables save
现在,我们需要启动服务:
CentOS版本:
# service httpd start
我们来确保Apache会在每次你重启机器的时候一并启动起来:
#/sbin/chkconfig httpd on
Ubuntu版本:
# service apache2 start
现在,由于我们已经启动了我们apache的http服务,我们就能在默认的127.0.0.1地址下打开apache服务了。
3.配置MySQL服务器
现在我们需要启动我们的MySQL服务:
CentOS版本:
# chkconfig mysqld on
# service start mysqld
Ubuntu版本:
# service mysql-server start
用root用户登录连接MySQL并给Bugzilla创建一个数据库,把你的mysql密码更改成你想要的,稍后配置Bugzilla的时候会用到它。
CentOS 6.5和Ubuntu 14.04 Trusty两个版本:
# mysql-u root-p
# password:(You'll need to enter your password)
# mysql> create database bugs;
# mysql> grant all on bugs.* to root@localhost identified by"mypassword";
#mysql> quit
注意:请记住数据库名和mysql的密码,我们稍后会用到它们。
4.安装并配置Bugzilla
现在,我们所有需要的包已经设置完毕并运行起来了,我们就要配置我们的Bugzilla。
那么,首先我们要下载最新版的Bugzilla包,这里我下载的是4.5.2版本。
使用wget工具在shell或终端上下载:
wget/pub/mozilla.org/webtools/bugzilla-4.5.2.tar.gz
你也可以从官方网站进行下载。
从下载下来的bugzilla压缩包中提取文件并重命名:
# tar zxvf bugzilla-4.5.2.tar.gz-C/var/www/html/
# mv-v bugzilla-4.5.2 bugzilla
注意:这里,/var/w/html/bugzilla/就是Bugzilla主目录.
现在,我们来配置buzilla:
# cd/var//html/bugzilla/
./checksetup.pl--check-modules
检查完成之后,我们会发现缺少了一些组件,我们需要安装它们,用以下命令即可实现:
# cd/var/www/html/bugzilla
# perl install-module.pl--all
这一步会花掉一点时间去下载安装所有依赖程序,然后再次运行checksetup.pl--check-modules命令来验证有没有漏装什么。
现在我们需要运行以下这条命令,它会在/var/www/html/bugzilla路径下自动生成一个名为localconfig的文件。
#./checksetup.pl
确认一下你刚才在localconfig文件中所输入的数据库名、用户和密码是否正确。
# nano./localconfig
# checksetup.pl
如果一切正常,checksetup.pl现在应该就成功地配置Bugzilla了。
现在我们需要添加Bugzilla至我们的Apache配置文件中。那么,我们需要用文本编辑器打开/etc/httpd/conf/httpd.conf文件(CentOS版本)或者/etc/apache2/apache2.conf文件(Ubuntu版本):
CentOS版本:
# nano/etc/httpd/conf/httpd.conf
Ubuntu版本:
# nano etc/apache2/apache2.conf
现在,我们需要配置Apache服务器,我们要把以下配置添加到配置文件里:
<VirtualHost*:80>
DocumentRoot/var/www/html/bugzilla/
</VirtualHost>
<Directory/var/www/html/bugzilla>
AddHandler cgi-script.cgi
Options+Indexes+ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit FileInfo Indexes
</Directory>
接着,我们需要编辑.htaccess文件并用“#”注释掉顶部“Options-Indexes”这一行。
让我们重启我们的apache服务并测试下我们的安装情况。
CentOS版本:
# service httpd restart
Ubuntu版本:
# service apache2 restart
这样,我们的Bugzilla就准备好在我们的Ubuntu 14.04 LTS和CentOS 6.5上获取bug报告了,你就可以通过本地回环地址或你网页浏览器上的IP地址来浏览bugzilla了。