Initrd is too big 的一次错误尝试



Initrd is too big 的一次错误尝试

Luo Weifeng 2011-5-2

 

昨天编译完内核开始制作initrd,由于在编译的时候选择了调试信息,所以肯定编译出来的东东就超级的大,是李老师让做内核调试搞的,所以也没有办法,网络上关于这个too big的问题一般都是 disable memory hole,但是我在vmware bios里边没有找到这个选项,于是,决定根据现有的内核的initrd生成新版内核的initrd。由于编译出来的东西都带有调试信息,所以使用了strip,确定的说这是一种错误的尝试,不要模仿。而且结果很显然是失败的。

 

至于怎么处理initrd的这里不说,毕竟是个错误。写下来留作纪念,全当是复习python了。

 

#! /usr/bin/python ################################################################### # initrdhelper.py # [email protected] # Usage: python initrdhelper.py /lib/modules/yourkernel ################################################################### import os import sys import shutil files = [] def dogetname(arg,dr,flst): for filename in flst: fullf = os.path.join(dr,filename) if os.path.isfile(fullf): files.append(fullf) def main(fpath,tpath,me): os.path.walk('.',dogetname,0) for f in files: if f[2:] == me: continue print os.path.join(fpath,f[2:]) ffilefullname = os.path.join(fpath,f[2:]) tfilefullname = os.path.join(tpath,f[2:]) todirname = os.path.dirname(os.path.join(tpath,f[2:])) if not os.path.exists(ffilefullname): print '++++++++++++++++++++++++++++++++++++++++++++++++++++' print 'File :' + ffilefullname +' Not Found!' continue if not os.path.exists(todirname): print 'Making Dir:' + todirname os.makedirs(todirname) print 'Copy from: '+ ffilefullname print 'To: '+tfilefullname if shutil.copy(ffilefullname, tfilefullname): print '################################################' print 'Erro While Do Copy ' print 'Copy from: '+ ffilefullname print 'To: '+tfilefullname print '################################################' os.system('/usr/bin/strip '+ tfilefullname) if __name__ == '__main__': frompath = sys.argv[1] topath = '..'+os.sep+os.path.basename(frompath) me = sys.argv[0] main(frompath,topath,me)  

你可能感兴趣的:(vmware,python,网络,File)