3

我有一个嵌入式设备,我需要将我的 /var 和 /tmp 放在 ram 中,以减少驱动器上的写入次数(紧凑型闪存)。我知道如何使用 /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

这个脚本有问题吗?如果不是,我应该在哪个初始化和终止脚本中包含它们?

4

2 回答 2

0

对于所有有同样问题的人,我已经解决了我的问题(有点)

我发布的两个脚本是正确的并完成了这项工作。你必须小心的是你把它们放在哪里。

在 Slackware 中,第一个运行脚本是 rc.S。起初我将我的第一个脚本复制粘贴到那个脚本的中间。它绝对应该在那里,而不是我放的地方。您必须查看脚本 rc.S 在哪里调用 /var 中的特定目录或文件。ramdisk 的创建应该在这些行之前。

关闭脚本应该添加在rc.6脚本的底部(关闭脚本)

另外我应该指出,虽然这提高了驱动器的预期寿命,但它有点不稳定,有时会随机重启,所以要小心。

于 2012-06-18T03:37:18.603 回答
0

Nice script...but it seems to me that it is volatile for several reasons. First did you tell the system max ramdisk size...first as a kernel argument.....linux /vmlinuz ramdisk_size=204800......then in rc mke2fs -t ext2 /dev/ram1 204800.....and maybe use ram1 not ram0.......also use a script for manual saving of ramdisk contents to /var.....cp -a /mnt/ramdisk/var/. /var........backup real /var to another directoryusin tar compression, but introducing tar compression to reduce data size probably introduces lag, latency and instability. Just seems to me to be so.

于 2013-06-25T02:16:36.527 回答