Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1151927
  • 博文数量: 101
  • 博客积分: 110
  • 博客等级: 民兵
  • 技术积分: 1842
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-24 13:26
个人简介

专注linux

文章分类

全部博文(101)

文章存档

2017年(2)

2016年(12)

2015年(17)

2014年(41)

2013年(27)

2012年(3)

分类: LINUX

2014-01-09 11:26:14

initramfs

最初的想法是Linus提出的: 把cache当作文件系统装载。
他在一个叫ramfs的cache实现上加了一层很薄的封装,其他开发人员编写了一个改进版tmpfs,这个文件系统上的数据可以写出到,而且可以设定一个tmpfs装载点的最大尺寸以免耗尽内存。initramfs就是tmpfs的一个应用。
优点:
(1)tmpfs随着其中数据的增减自动增减容量.
(2)在tmpfs和page cache/ cache之间没有重复数据.
(3)tmpfs重复利用了Linux caching的代码, 因此几乎没有增加尺寸, 而caching的代码已经经过良好测试, 所以tmpfs的代码质量也有保证.
(4)不需要额外的文件系统驱动.
另外, 机制被设计为旧的"root="机制的前端,而非其替代物,它假设真正的根设备是一个, 而且也假设了自己不是真正的根设备,这样不便将NFS等作为。最后/linuxrc不是以PID=1执行的, 因为1这个进程ID是给/sbin/init保留的。 机制找到真正的根设备后将其设备号写入/proc/sys/kernel/real-root-dev, 然后控制转移到由其装载并启动/sbin/init。
initramfs则去掉了上述假设, 而且/init以PID=1执行, 由init装载并用exec转到真正的/sbin/init, 这样也导致一个更为干净漂亮的设计。[1]

生成initramfs镜像命令

若镜像根目录为/,执行下面命令在当前用户主文件夹中生成myinitramfs.gz镜像。
cd /
find .|cpio -o -H newc|gzip>~/myinitramfs.gz
生成的是gzip压缩过的。
阅读(1368) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~