重编译 centos(centos中文)

大家好,重编译 centos相信很多的网友都不是很明白,包括centos中文也是一样,不过没有关系,接下来就来为大家分享关于重编译 centos和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 5.5下如何编译安装新内核

第一步:下载内核

传送门:地址.笔者下载的是3.2.84版本

第二步:解压编译内核

由于我下的是.tar.xz文件,用tar命令不能直接解压。

1.我的系统里不带xz解压软件,先下载xz-5.0.3.tar.bz2文件并解压安装

tar-jvxf xz-5.0.3.tar.bz2 cd/opt/xz-5.0.3#进入解压后的文件夹./configure make make install

2.解压内核

xz-d linux-3.2.84.tar.xz tar-xvf linux-3.2.84.tar

3.如果是第一次编译内核,并没有上次残留的文件可以跳过该步骤(最好仔细看下指令对应的功能)

make mrproper make clean删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块 make mrproper删除所有的编译生成文件,还有内核配置文件,再加上各种备份文件 make distclean mrproper删除的文件,加上编辑备份文件和一些补丁文件。

4.搭建编译内核所需要的环境

yum-y install gcc yum install ncurses ncurses-devel yum install openssl-devel

5.进入内核解压文件夹配置内核参数

由于我是个小白不会选,为了方便,直接用make localmodconfig命令,这个命令是以本来的.config文件为基础去选,可以参考论文:嵌入式linux系统的裁剪优化和测试技术.然后我就一直回车直到结束。然后再输入make menuconfig命令进入图形选择菜单,将kenel hacking中的Sample..选项去掉(具体那一项我忘了,尴尬),退出保存。然后编辑.config文件中的“CONFIG_SYSFS_DEPRECATED”,默认该选项为not set,被注释掉的,将其改为y,即修改为“CONFIG_SYSFS_DEPRECATED=y”,之后可能还要修改,后面再说。

6.编译新内核

make bzImage&& make modules&& make modules_install

7.安装内核

8.编译安装可能出现的情况

应该是没什么问题,不过也不排除会出现下面的情况:make:警告:检测到时钟错误。您的创建可能是不完整的。解决办法:find.-type f-exec touch{} \;重新编译下就好了。

9.处理下img中的东西(我说不清楚==)

1)解压initrd文件

# cp/boot/initrd-3.2.84.img/tmp# cd/tmp/# ls initrd-2.6.30.4.img# mkdir newinitrd# cd newinitrd/# zcat../initrd-2.6.30.4.img| cpio-i

释放之后看到如下内容

# ls bin dev etc init lib proc sbin sys sysroot

2)编辑init,删掉其中重复的四行中的两行 echo“Loading dm-region-hash.ko module” insmod/lib/dm-region-hash.ko echo“Loading dm-region-hash.ko module” insmod/lib/dm-region-hash.ko 3)重新打包initrd

# find.| cpio-c-o>../initrd 11538 blocks# cd..# gzip-9< initrd> initrd.img# ls initrd-2.6.30.4.img initrd initrd.img

这里面的initrd.img就是重新打包后的文件。 4)把initrd.img复制到/boot下命令:#cp initrd.img/boot 5)修改grub.config,在/etc文件夹下把initrd-3.2.84.img改为initrd.img就可以了 6)reboot重启记得选择自己的内核!别错过啦!

以上内容就是小编为大家带来的关于CentOS 5.5下编译安装新内核的方法了,希望可以帮助到大家!

redhat跟centos的区别

Redhat和CentOS的主要区别在于它们的来源、支持和服务。

1.来源和所有权

Redhat是企业级的Linux发行版本,由Red Hat公司主导开发。而CentOS是社区驱动的开源项目,基于Redhat的源代码重新编译和发布,属于免费开源的Linux发行版本。

2.官方支持

Redhat提供全面的官方支持,包括技术文档、在线帮助、专业培训和高级技术支持等。而CentOS不提供官方的直接支持,主要依靠社区力量进行维护和支持。这意味着在遇到重大问题时,Redhat用户可以获得专业的官方帮助,而CentOS用户则需要依赖社区论坛和开源社区来解决。

3.更新和稳定性

由于Redhat是官方发布,其更新和版本迭代都有严格的测试和质量控制流程,因此稳定性和安全性较高。而CentOS虽然紧跟Redhat的版本,但由于是社区维护,可能在某些更新上不如Redhat及时。但另一方面,由于社区的力量,CentOS可能拥有更多的自定义选项和第三方软件支持。

4.使用场景

Redhat因其稳定性和官方支持,更适用于企业级的关键业务应用和生产环境。而CentOS由于其开源和免费的特点,更受开发者和测试人员的欢迎,常用于搭建测试环境、开发环境和部分生产环境。

总的来说,Redhat和CentOS都是基于Linux的优质操作系统,主要区别在于它们的来源、支持、更新速度和适用场景。对于需要官方支持和稳定性的企业用户,Redhat可能是更好的选择;而对于预算有限或对自定义有更高需求的用户,CentOS可能更合适。

阅读剩余
THE END