红帽linux安装init,Redhat Linux 安装程序Anaconda

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

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

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

其实就是用个Linux内核和个简单的initrd p_w_picpath来启动系统,如果可以采用PXE网络启动方式安装的话,可以采用 mknbi这个命令(一个脚本)来把Linux内核文件 bzp_w_picpath 和initrd p_w_picpath文件打包成一个叫做 tagged p_w_picpath简单格式的tftp p_w_picpath里面去,不过好像各种网络启动的所用的格式稍稍有点不同,自己搜索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 p_w_picpath根目录下的.buildstamp 文件确定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值