免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1082 | 回复: 0
打印 上一主题 下一主题

将Initrd写入到Vmlinuz的方法。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-09 18:47 |只看该作者 |倒序浏览

                前段时间做了一个与Linux移植相关的项目,期间反复编译了很多遍的内核,修改了很多几次Initrd文件系统,经常因为内核版本和Initrd里面相应的驱动版本不同,导致系统无法引导,浪费了很多的时间。
项目结束之后,回过头想了一下,其实可以将Initrd直接写入到Vmlinuz的,这样就一个内核压缩文件,操作起来很方便。经过一番试验后,总结制作方法如下:
1、首先是用BusyBox编译出来一个简单的Ramdisk系统,里面包含了基本的可执行程序,其实这个系统很小的,应为几乎所有的命令都指向了busybox这一个可执行文件。
2、创建一个目录busybox-initramfs ,将刚刚编译完成的BusyBox目录(我用的是_Install)拷贝到该目录下,在创建一些常见的目录,最后目录结构如下所示:[root@localhost linux-2.6.26.5]# ls ../busybox-initramfs/bin  dev  etc  home  init  proc  root  sbin  tmp  usr  var[root@localhost linux-2.6.26.5]# 这样一个最简单的Initrd就做好了,其实我在公司做的Initrd里面还有很多启动程序和相应的驱动,在这里就不详述了。
3、配置内核,使用make menuconfig命令进入内核配置菜单,进入General setup菜单,将如下菜单选中:
  • Initial RAM filesystem and RAM disk (initramfs/initrd) support  
    这时候在弹出的窗口中指定我们刚刚建立的目录地址,我用的是/opt/busybox-initramfs。
    4、保存退出后,查看.config文件时,能够看到:CONFIG_INITRAMFS_SOURCE="/opt/busybox-initramfs"说明配置成功。
    5、这时候我们之前制作的BusyBox-initramfs就已经被编译到内核中了,并且内核会将该目录编译成cpio格式的?ramdisk文件系统。
    6、使用编译出来的内核引导,就可以直接进入到BusyBox中。
    以上内容是参照了jserv的一片文章,文章地址如下:http://blog.linux.org.tw/~jserv/archives/001954.html
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1028/showart_1389218.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP