注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

widebright的个人空间

// 编程和生活

 
 
 

日志

 
 

Redhat Linux 安装程序Anaconda (水蟒?) 相关资料  

2009-04-07 23:07:08|  分类: linux相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概览 http://fedoraproject.org/wiki/Anaconda

Anaconda/Kickstart http://fedoraproject.org/wiki/Anaconda/Kickstart

Anaconda/Options http://fedoraproject.org/wiki/Anaconda/Options

Anaconda/SourceOverview http://fedoraproject.org/wiki/Anaconda/SourceOverview

在线查看源代码http://git.fedorahosted.org/git/anaconda.git

可以看 概览里面的开发说明。

它的整个安装过程大概是这样的:

编译 anaconda之后,可以得到 init 、loader和一个stage2.img   , init 和loader 是两个静态编译的程序,不依赖其他库了,就是编译anaconda源代码目录下的loader目录下的C代码得到。 这两个程序放在最后用来启动安装时的Linux系统的initrd image里面。 anaconda的其他部分代码主要是 python 写的都是放到stage2.img里面去了。

其实就是用个Linux内核和个简单的initrd image来启动系统,如果可以采用PXE网络启动方式安装的话,可以采用 mknbi这个命令(一个脚本)来把Linux内核文件 bzimage 和initrd image文件打包成一个叫做 tagged image简单格式的tftp image里面去,不过好像各种网络启动的所用的格式稍稍有点不同,自己搜索ethboot 等,可以看到相关说明。

通过修改initrd 的init文件,可以做些初始化比如加载必须的驱动等工作,然后 在调用 anaconda的init程序,init程序会初始化console ,/dev文件系统,mount相应的目录等等。然后init程序会调用loader程序,就开始了安装过程。loader程序中会进行网络接口network interface 的配置等相关工作,如果指定了网络上的kickstart文件,他也会下载下来保存为/tmp/ks.cfg ,然后从kickstart 配置文件中获取到stage2.img   所在的位置。如果stage2.img实在nfs服务器上的话,(stage2.img和其他系统安装需要的文件是放在一起的),他就把这个目录nfsmount到/mnt/runtime /mnt/source 目录下。stage2.img里面的anaconda的程序运行所需要的很多比如python的支持库啊等很多*.so文件也都是在这时mount过来之后,好像是复制到/lib 目录下,然后配置好LD_LIBRARY_PATH环境变量,然后等会stage2.img里面的程序运行时候就可以找的库到了。当然还有最后系统到底目录啊,这时也mount到一个目录下,比如说要安装系统到磁盘上,就是把这个盘先mount到一个目录下吧,再在state2.img 里面的程序把系统安装的配置都写到这个目录去吧。

最后,loader程序调用 /tmp/updates/anaconda 这个shell脚本,/tmp/updates/anaconda 再调用 state2.img里面(这时已经被mount出来了,好像还复制到/usr/bin了,没仔细看)的anaconda程序,这个anaconda就是anaconda源代码根目录下的python写anaconda那个。然后安装完重启系统就装完了。

那个loader程序测试的时候,也可以在机器上直接运行的,指定一个--test参数给他就可以了。如果想调试init和loader程序,可以看他生成的/tmp/anaconda.log文件,可以修改一下/tmp/updates/anaconda ,让他不系统stage2的 anaconda程序,就会自动进入sh终端,就可以检查/tmp/anaconda.log里面的内容了。代码里面用logMessage函数打印的东西都会放到/tmp/anaconda.log里面去的。系统安装完成后,在/var/log目录下也可以找到这个anaconda.log文件。

安装哪个版本的系统,由initrd image根目录下的.buildstamp 文件确定

  评论这张
 
阅读(696)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017