• 手把手教您定制化Centos6.x安装界面


    1.获取安装界面代码

         挂载image/install.img:mount image/install.img /mnt/5 -o loop
         复制挂载后的代码至self_intall:cp -r /mnt/5 self_install
     
    2.自定义glade图形界面
         具体的开发见python下的GTK开发笔记
     
         所有的ui都在"self_install/5/usr/share/anaconda/ui/"中,可以先参考实例,然后在自己使用glade作图,注意在table前加入align,做好glade后,如命名tscfg.glade,放入"self_install/5/usr/share/anaconda/ui/"目录中;同时进入目录,以vim打开tscfg.glade与其它任一glade,添加一些前置属性
     
    3.添加图形控制代码,根目录为"self_install/5/"
         1).添加启动项及对应的UI后台控制
              在"usr/lib/anaconda"目录下
                   dispatch.py中installSteps元组中,添加'("tscfg",),'元素
                   在gui.py的stepToClass元组中,添加'"tscfg" : ("tscfg_gui", "TscfgWindow"),'元素
                        这里的含义是tscfg ui的后台使用iw目录下的tscfg_gui.py的TscfgWindow类:定义输入框值的获取方式,及getNext()即点击next时的动作,将interactive动作的值传入给后台
              在usr/lib/anaconda/iw/中定义tscfg_gui.py进行前台UItscfg.glade的后台控制
     
         2).添加ks.cfg识别的command tscfg
              在"usr/lib/python2.6/site-packages/pykickstart/commands"目录下
                   添加ts.cfg文件,以network.py为样本(涉及到多个键值对的传递),在class FC3_TscfgData的__init__方法定义需要封装的变量,及以'_'开头的属性方法:与NetworkData对应;
                             以timezone.py为样本定义class FC3_Tscfg,并定义_getParser与parse方法
                                       指定ks.cfg文件的解析方法
                   在__init__.py文件中引入"import tscfg"
              在"usr/lib/python2.6/site-packages/pykickstart/handlers"目录下
                   修改control.py在commandMap的所有子字典中添加'"tscfg":tscfg.FC3_Tscfg,'键值对:这里添加后,在ks.cfg中添加ks.cfg才能识别
                        在dataMap的所有子字典中添加'"TscfgData":tscfg.FC3_TscfgData,'键值对,所有键值对的值都需要这种形式来保存
     
              在usr/lib/anaconda/kickstart.py中添加数据封装方法:
                             在dataMap字典中添加'"TscfgData":TscfgData,',commandMap字典中添加'"tscfg":Tscfg,'
                             并定义class TscfgData(commands.tscfg.FC3_TscfgData):及execute方法
                             定义class Tscfg(commands.tscfg.FC3_Tscfg):及execute方法
                                       将ks.cfg中的默认参数复制给对应的anaconda.id.tscfg对象,Data用来保存键值对的参数
     
         3).写入最终系统的方法
              在"usr/lib/anaconda"目录下
                   在instdata.py中:
                             class InstallData的reset()方法中添加'self.tscfg = tscfg.Tscfg()'(可以以timezone为参考例子进行相应内容的添加),指明self.tscfg为tscfg.py的Tscfg()实例,并且import tscfg
                                  writeKS()方法中添加self.tscfg.writeKS(f)
                                  write()方法中添加self.tscfg.write(self.anaconda.rootPath)
                                       分别调用tscfg.py中Tscfg类的writeKS()与write()方法:将配置写入安装后的anaconda_ks.cfg与配置文件中
                                            安装完后,有backend.py的writeConfiguration方法,进一步调用tscfg的write(),此时没有参数传递,需要将write()方法的除self外参数去掉,来写入Data形式的配置文件
                   
                             
         4).安装步骤的调整:
              在dispatch.py的installSteps全局变量中,将tscfg放到第一个,在系统安装时先进行配置
     
         5).设置此步不可跳过:
              在usr/lib/anaconda/kickstart.py的setSteps()/setStep()方法中添加dispatch.skipStep('tscfg', skip=0)
     
    4.整合打包
         使用"mksquashfs self_install/ install.img"重新生成install.img,然后替换掉image目录下的install.img,并在isolinux/ks.cfg中添加启动项tscfg,在打包为镜像
     
    5.图片及其他信息的修改
         安装图片在"self_install/5/usr/share/anaconda/pixmaps"目录下
         在isolinux目录下也有一个,其修改见"定制Centos系统"笔记
         系统启动按Esc后,出现的Start Centos在"/etc/centos-release"中修改
  • 相关阅读:
    AtCoDeer and Election Report
    乒乓球
    dp(装箱)
    《非你莫属》面试者现场跟面试官用英文对话,一口流利的英语口语厉害了
    冬天喝酸奶,可以加热吗?冬天喝酸奶,这4个方面要注意
    滑县两个富豪打赌,一人吃了一泡狗屎
    为什么外国富豪都喜欢捐光所有财产
    发的微博有敏感词
    社交网络
    怎么把word中的文字拉细变瘦长
  • 原文地址:https://www.cnblogs.com/uttu/p/6265328.html
Copyright © 2020-2023  润新知