·ChinaUnix首页 ·论坛 ·博客 
Linux首页 | Linux新闻 | Linux文档 | Linux论坛 | Linux下载 | Linux博客 | Linux搜索
新手入门 | 安装启动 | 管理员指南 | 开发手册 | 桌面应用 | 程序开发 | 数据库 | 网络技术| CentOS | Fedora | MySQL | Apache | Ubuntu | Gentoo| OSCON08
  Linux时代 >> 技术文档 >> 网络技术
 
制作CPIO格式的INITRD
来源: ChinaUnix博客  日期: 2008.06.02 22:47 (共有条评论) 我要评论
 

                                LINUX内核自从2.6版以后,就大力推荐CPIO-INITRD.
现在各大LINUX发行版的INITRD都是CPIO格式的.
这次主要说下如何制作CPIO-INITRD.
首先假设咱们已经用BUSYBOX或KLIBC或别的什么做好了根文件系统,位于~/rootfs下.
按照IBM DEVELOPERWORKS里的文章说,可以用以下命令制作CPIO-INITRD:
cd ~/rootfs
find . | cpio -c -o > ../initrd.img
gzip ../initrd.img
其实这是不对的.
我用这几条命令制作CPIO-INITRD,结果都是KERNEL PANIC.
参照我用的ARCHLINUX发行版的mkinitcpio命令的脚本代码,应该是用gen_init_cpio命令来制作CPIO-INITRD.
gen_init_cpio命令源码通常与LINUX内核源码一块儿打包,位于内核源码目录的usr/下面.
编译其源码得到gen_init_cpio可执行文件,这还不够.
gen_init_cpio的参数是一个文本文件,这个文件的内容类似于这种格式:
dir /sbin 755 0 0
slink /sbin/makedevs ../bin/busybox 777 0 0
slink /sbin/modprobe ../bin/busybox 777 0 0
slink /sbin/switch_root ../bin/busybox 777 0 0
slink /sbin/sysctl ../bin/busybox 777 0 0
slink /sbin/lsmod ../bin/busybox 777 0 0
slink /sbin/getty ../bin/busybox 777 0 0
slink /sbin/ifconfig ../bin/busybox 777 0 0
......
很明显,这是个文件列表.
手工制作这个文件列表是不现实的,usr/目录下还有个gen_initramfs_list.sh,这个脚本就是用来自动生成文件列表的.
好了,下面咱们就可以得出生成CPIO-INITRD的完整步骤了:
cd ~
gen_initramfs_list.sh rootfs/ > filelist
gen_init_cpio filelist > rootfs.cpio
gzip rootfs.cpio
最后得到的这个rootfs.cpio.gz,就是咱们要的CPIO-INITRD了.
在BOOTLOADER里修改一下参数:
append initrd=rootfs.cpio.gz ramdisk_size=8192 vga=792
结果怎么样?
(全文完)
参考链接:
Linux2.6 内核的 Initrd 机制解析
http://www.ibm.com/developerworks/cn/linux/l-k26initrd/index.html
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/70719/showart_724272.html
  发表评论 查看评论(共有条评论) 我要提问
 
 


最新资讯更多>> 
· 开发者发行版:Debian Live 5...
· 再谈 Ubuntu 8.04 Hardy LTS 软..
· 加拿大魁北克省政府被控无视自..
· Mozilla 85%资金来自谷歌 将再..
· 保障Linux系统桌面安全的九个小..
· 开源编译器GCC 4.3.2发布
· Ubuntu发布最新版安全更新 以修..
· 比苹果的操作系统更加的豪华Ub..
· 坏运连连 红帽RHEL自带Perl再爆..
· 点评番茄花园事件
论坛热点更多>> 
· 突然发现了初恋女友的下落。..
· ubuntu 上网设置问题 郑州广..
· 『有奖征集』ChinaUnix论坛L..
· 团长老婆多大?
· 一直打喷嚏
· 看看你是不是带错了!!!!!!!!!!zt
· 这有大学肄业的没?说说原因吧。
· sudo的问题。棘手
· 看到一个大二的孩子说把GCC和..
· MIPS资料合集
文档更新更多>> 
· traceroute命令和tcpdump命令
· Linux磁盘管理指令集(二)
· Linux磁盘管理指令集(一)
· 给笔记本电脑装Linux系统
· set uid ,set gid,sticky bit的三..
· 文件结构体struct file(Linux 2...
· rpm包的安装、删除、效验、查询
· git-svn 简介
· 基础_tar.gz,tar.bz2
· 使用yum 代替up2date 自动更新升..
 
关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 友情链接 | 免费注册

Copyright © 2001-2008 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们