3. 制作RAM disk(RamDisk也就是内存盘的意思)
所谓的RAM disk,实际上是把系统内存划出一部分当作硬盘使用。对于操作系统来讲内存的存取速度远远大于机械磁盘,所以RAM驱动器肯定要比机械的硬盘快得多。你可以把整个应用程序都安装在RamDisk的驱动器中,然后用内存的速度运行它.
ARM Linux采用RAM disk的方式来装载根文件系统,所有在运行内核之前,需要先制作RAM disk,将必须的文件和设备加入到RAM disk中,当内核启动后,会从指定地址去读取根文件系统,这里我们使用RAM disk,在内存中虚拟一个磁盘,具体方法如下:
1)首先创建一个512k的虚拟磁盘,文件名为initrd.img:
dd if=/dev/zero of=initrd.img bs=1k count=512
2)将虚拟磁盘文件格式化成ext2文件系统格式:
mkfs.ext2 -c initrd.img
这就生成了一个支持ext2文件系统的ramdisk
3)添加文件和设备
mount这个文件系统到/tmp下,mount -o loop -t ext2 initrd.img /tmp
4)向/tmp中添加linux启动必须的文件和设备
/bin/sh
/bin/init
/dev/console
/etc/rc
/etc/motd
以上这几个程序和设备是启动Linux必须的,这样得到的ram disk大约是400k。
代码:针对这几个目录的解释(感谢david的搜集整理)
.
/bin/sh (/bin/sh是一个SHELL,用来启动系统时执行很多脚本程序的)
/bin/init init进程的启动程序,在核内引导完成后,LINUX KERNEL都会执行/sbin/init,/etc/init or /bin/init
/dev/console 是系统控制终端,可以理解为console指向激活的那个tty(准确地说是激活的那个tty才将输出显示到console)
/etc/rc 当改变服务的运行级别时,此文件负责启动/停止服务
/etc/motd 在管理员希望向 Linux 服务器的所有用户传达某个消息时使用,比如登陆时会打印出来 这里面的内容 |
|