我一直希望能够保存用户数据(主要是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自动保存家目录的办法”
dir2sb /mnt/live/memory/changes/ changes.sb
mv changes.sb /slax/modules
以前都是这么干的。。
恩,你这样也可以~可以写个类似的脚本自动执行。