Ramdisk的做法

转自 http://blog.chinaunix.net/u/31934/showart_331091.html

Ramdisk的做法     我个人喜欢在研发阶段使用的Ramdisk文件系统,之后再转成其他的比如squashfs,cramfs..,以前我都是使用一个叫做mkramdisk.sh 的script文件来制作ramdisk的,

rm -rf /tmp/tmpmnt
mkdir /tmp/tmpmnt
rm -rf /tmp/ramrootfs
dd if=/dev/zero of=/tmp/ramrootfs bs=1k count=15288
mke2fs -F -m 0 -i 2000 /tmp/ramrootfs
mount -o loop -t ext2 /tmp/ramrootfs /tmp/tmpmnt
cd /tmp/tmpmnt
cp -av ~/ramdisk * .
cd /tmp
umount /tmp/tmpmnt
cat /tmp/ramrootfs | gzip -9 > /tftpboot/ramdisk.gz
echo Copying ramdisk image to /tftpboot




这里的~/ramdisk是target根目录,/tftpboot/ramdisk.gz就是最后做出来的ramdisk压缩文件。
可是后来发现这种方法做出来就不工作了,会看到这样的信息
Freeing init memory: 88K
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init= option to kernel. 感觉好像是做ramdisk的机器上linux kernel版本的原因,因为原来使用的是redhat9,kernel很旧,现在都用fedora,ubuntu,至少是2.6以后的。
现在找到另外一种方法,使用genext2fs,
sudo ./genext2fs -b 12096 -i 512 -d ~/work/intel/temp1/ramdisk ramdisk
gzip --best -f ramdisk 很简单。而且genext2fs还可以支持根据dev.txt来添加device.
不知道还有其他方法吗?

你可能感兴趣的:(#嵌入式linux)