我个人喜欢在研发阶段使用的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.
不知道还有其他方法吗?
阅读(3614) | 评论(1) | 转发(0) |