我有一个embedded式设备,我需要将我的/ var和/ tmp放在内存中,以减less驱动器(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
这个脚本有问题吗? 如果没有,我应该把他们包括在官方和终止脚本中?
对于所有有同样的问题,我已经解决了我的问题(种)
我贴的两个脚本是正确的,完成这项工作。 你必须小心的是你把它们放在哪里。
在Slackware中,第一个运行脚本是rc.S。 起初我复制粘贴我的第一个脚本到那个中间。 它绝对应该在那里,而不是我放在哪里。 您必须查看脚本rc.S从/ var调用特定目录或文件的位置。 创建虚拟磁盘应该在这些行之前。
关闭脚本应该被添加到rc.6脚本的底部(关机脚本)
另外我应该指出的是,虽然这提高了驱动器的预期寿命,但它有点不稳定,有时会随机重启,所以要小心。
很好的脚本…但在我看来,这是挥发性的几个原因。 首先,你告诉系统最大ramdisk大小…首先作为内核参数….. linux / vmlinuz ramdisk_size=204800
……然后在rc mke2fs -t ext2 /dev/ram1 204800
…. 。也许使用ram1而不是ram0 …….也可以使用手动将ramdisk内容保存到/var.....cp -a /mnt/ramdisk/var/. /var
的脚本/var.....cp -a /mnt/ramdisk/var/. /var
/var.....cp -a /mnt/ramdisk/var/. /var
……..备份真正的/ var到另一个目录中的tar压缩,但引入tar压缩以减小数据大小可能会引入滞后,延迟和不稳定性。 在我看来,是这样的。