首先,以loongson服务器的做盘为例,由于loongson服务器与我们平时所用的x86架构不太一样,因此它的整个做盘过程都是基于在loongson的机器上实现的:
先从简单的打补丁开始讲解(就以我这次修改anaconda为例):
[root@localhost ~]# rpm -ivh anaconda-13.21.195-1.el6.loongson.1.src.rpm //将.src.rpm进行安装
1:anaconda ########################################### [100%]
[root@localhost ~]# cd rpmbuild/
[root@localhost rpmbuild]# ls
SOURCES SPECS
[root@localhost rpmbuild]# rpmbuild -bp ./SPECS/anaconda.spec //解压与打补丁的过程
[root@localhost rpmbuild]# ls
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
[root@localhost rpmbuild]# ls BUILD
anaconda-13.21.195
/下面呢,以为修改 anaconda-13.21.195/yuminstall.py 为例
[root@localhost rpmbuild]# cp -r anaconda-13.21.195 anaconda-13.21.195-ori
[root@localhost rpmbuild]# vim BUILD/anaconda-13.21.195/yuminstall.py //修改你想要修改的代码
[root@localhost rpmbuild]# diff -Naur BUILD/anaconda-13.21.195-ori anaconda-13.21.195 > SOURCE/anaconda-isoft-kernel.patch //一定要注意文件的顺序,没有被修改过的文件放在前面,被修改过的文件放在后面
[root@localhost rpmbuild]# vim SPECS/anaconda.spec //修改spec文档 只需修改%prep这个地方,下面为部分截图
Patch1011: anaconda-isoft-default-timezone.patchPatch1012: anaconda-isoft-translation.patchPatch1013: anaconda-isoft-no-updates-after-install.patchPatch2000: anaconda-mips64el-isoft.patchPatch2001: anaconda-isoft-mips64el-check-sda1-type.patchPatch2002: anaconda-isoft-mips64el-second-kernel.patchPatch2003: anaconda-isoft-fix-noexists-device-exception.patch%prep%setup -q%patch1000 -p1%patch1002 -p1%patch1003 -p1# isoft patches%patch1005 -p1%patch1006 -p1%patch1007 -p1%patch1008 -p1%patch1009 -p1%patch1010 -p1%patc
[root@localhost rpmbuild]# rpmbuild -bp ./SPECS/anaconda.spec //这样补丁就打上了,当然此处可以用-ba ,-ba会在RPMS下生成rpm包,在SRPMS下生成.src.rpm包
[root@localhost rpmbuild]# rpmbuild -ba ./SPECS/anaconda.spec //此时就生成我们想要的rpm包
接下来就需要用到做盘脚本,每个公司都有自己的做盘脚本,因情况不同,根据实际来操作:
一般在x86平台上,直接用./build.sh 就可以生成*.iso了。
但在loongson服务器上,因为脚本运行太慢,需要运行两步。在此不在多说,有想了解的可以私聊。
你要想检查下你做的盘是否成功,可以自己安装一下这个系统。
以龙芯服务器为例,龙芯服务器内核启动的过程中会默认的找sda1下vmliunx \ initrd.img硬盘安装:
load /dev/fs/ext2@wd0/vmlinux
initrd /dev/fs/ext2@wd0/initrd.img
g console=tty rdinit=/sbin/init
安装成功,可以初步判定做的盘没有问题。可以将*.iso刻录入光盘:
[root@localhost rpmbuild]# cdrecord -scanbus
[root@localhost rpmbuild]# cdrecord -v -eject dev=*,*,* driveropts=burnfree *.iso