我有一个嵌入式设备,我需要将我的/ var和/ tmp放在ram中,以减少驱动器上的写入次数(Compact flash)。我知道如何使用/ tmp,因为我不必在重启或关机时恢复任何东西。
但/ var目录有重要的东西。我一直在研究,我发现了这一点,但它似乎并没有起作用。
这是脚本:
# insert this on file 'rc.sys.init'
# after the mount of the root file system
# to create the /var on ramdisk
echo "Create ramdisk........."
#dd if=/dev/zero of=/dev/ram0 bs=1k count=16384
mkfs.ext2 -j -m 0 -q -L ramdisk /dev/ram0
if [ ! -d /mnt/ramdisk ]; then
mkdir -p /mnt/ramdisk
fi
mount /dev/ram0 /mnt/ramdisk
if [ -L /var ]; then
tar -xf /vartmp.tar -C /mnt/ramdisk
else
tar -C / -cf /vartmp.tar var
cp -a /var /mnt/ramdisk
rm -rf /var
ln -s /mnt/ramdisk/var /var
fi
# insert this into file 'halt'
# to stop the ram disk properly on shutdown.
#
if [ -e /vartmp.tar ]; then
rm -f /vartmp.tar
fi;
tar -C /mnt/ramdisk -cf /vartmp.tar var
这个脚本有问题吗?如果没有,我应该在其中包含他们的inicialization和终止脚本?
答案 0 :(得分:0)
对于所有有同样问题的人,我已经解决了我的问题(种类)
我发布的两个脚本都是正确的并完成了这项工作。你需要小心的是你把它们放在哪里。
在Slackware中,第一个运行脚本是rc.S.起初我将我的第一个脚本粘贴到那个脚本的中间。它肯定应该在那里,而不是我把它放在哪里。您必须查看脚本rc.S从/ var调用特定目录或文件的位置。 ramdisk的创建应该在这些行之前。
应该在rc.6脚本(关闭脚本)的底部添加关闭脚本
另外我应该指出,虽然这会提高驱动器的预期寿命,但它有点不稳定,有时会随机重启,所以要小心。
答案 1 :(得分:0)
很好的剧本...但在我看来,由于几个原因它是不稳定的。首先你告诉系统max ramdisk size ...首先作为内核参数..... linux / vmlinuz ramdisk_size=204800
......然后在rc mke2fs -t ext2 /dev/ram1 204800
.....和也许使用ram1而不是ram0 .......也可以使用脚本手动保存ramdisk内容到/var.....cp -a /mnt/ramdisk/var/. /var
........ backup real / var到另一个目录的tar压缩,但引入了tar压缩减少数据大小可能会引入滞后,延迟和不稳定性。在我看来就是这样。