另一种Slax自动保存家目录的办法

我一直希望能够保存用户数据(主要是root的家目录),但是由于从U盘启动,用perch参数启动的话,Slax会利用changes这个文件夹存放所有变更的文件,但是这样会奇卡无比,每个程序运行都会卡顿,实在是奇葩。aufs又没有commit参数之类的能够降低Disk I/O(我估计是因为读写太频繁,而USB 2.0带宽小,根本忙不过来,所以会卡)。于是我看中了rootcopy这个文件夹,rootcopy下的文件会被全部拷贝到Slax运行中的根目录(/)下,所以rootcopy完全可以起到备份用户数据的目的。

我又对Slackware的rc.d研究了很久……不想写System V的initscript,感觉太麻烦了,但是BSD-style的script写出来本身又不能被执行,后来干脆改了rc.6和rc.S让它们直接调用我写的autosaver脚本。下面简要说一下本方法适用的条件和使用办法。

  • 存放Slax相关文件的必须是EXT2/EXT3/EXT4等POSIX-compatible的文件系统分区(也就是DOS分区如NTFS、exFAT、FAT32、FAT均不可以)
  • Slax的内核启动参数不可以用perch(你用perch的话还用我这个办法干嘛?)和toram(toram不会自动挂载启动分区,手动挂载的话挂载点也不对了)!

下载我的这个附件,解压得到rc.d文件夹,把这个文件夹放到slax/rootcopy/etc(没有就新建)下,然后确保rc.d里面的三个文件均具有可执行的权限,没有的话要chmod +x加上!

进入Slax系统后,打开终端运行

/etc/rc.d/rc.autosaver status

如果终端显示Autosaver: ON说明autosaver已经成功运行了,在你关闭Slax系统(关机或者重启)的时候就会自动备份主目录。感兴趣的可以去看看我写的这个脚本(献丑了),如果显示的是OFF的话,就手动开启autosaver!

/etc/rc.d/rc.autosaver start

简而言之,我觉得实时对Slax所在分区进行读写操作来保存用户数据的办法太二缺了,不仅没必要,而且对磁盘要多进行N次读写操作。个人更喜欢Puppy那种只在关机/重启操作时保存数据的做法。

使用本脚本后,如果你觉得还有其它目录有备份到rootcopy的必要,请回复本博文。

2 responses to “另一种Slax自动保存家目录的办法”

  1. 路人甲 avatar
    路人甲

    dir2sb /mnt/live/memory/changes/ changes.sb
    mv changes.sb /slax/modules

    以前都是这么干的。。

    1. librehat avatar

      恩,你这样也可以~可以写个类似的脚本自动执行。