解决方案

我的系统有CF卡和硬盘,经常出现CF卡上文件目录莫名其妙的被删除掉,这种情况发生时硬盘都有问题(或者损坏或者有无法删除的坏文件),我的程序是定时用rm命令删除硬盘上目录,我怀疑是这个命令导致的,但是为什么会删掉CF卡上的东西令人匪夷所思,因为硬盘映射到/fs目录与CF卡的目录没有交叉,难道是QNX系统的问题,现在只有想别的招了,请教几个问题:
1)删除目录除了rm -R有没有别的安全方法,怎么防止目录误删
2)CF卡除了设置为只读能否做到某些目录隐藏防止被删除

/fs是QNX常使用的默认mount路径,也许怎样就冲突并出现问题了。

不管怎样,给你的硬盘和CF卡mount到一个肯定是唯一的路径试试。
如硬盘mount到/xhd试试.

最好先确认原因。

比如保持一段时间不删硬盘上的文件,看是不是还是有问题。除非能确认,否则钻得太深反而得不偿失。

也可能你本身使用的cf卡比较劣质,用工业用的cf卡试试看。

我用的就是工业级CF卡,应该与CF卡质量无关吧,是rm造成的误删目录,曾经换过mount到其他目录,也是一样,我就是不明白删除硬盘目录为什么会把CF卡上的目录也删掉,顺便说一下,正常时没有问题,出问题时硬盘的目录会有corrupt file system的错误,有没有别的安全的方法呢?

qnx的新版本修正了系统的一些bug,以前的文件系统不安全

pidin ar 把你系统执行过的命令列下来,让大家帮你看看,是不是哪里mount的有问题,会不会多次mount?

唯一对磁盘删除的命令就是rm -R /fs/,其中是mount到硬盘的目录,另外CF卡被删除的目录没有规律,头痛呀!

只在启动脚本中将硬盘mount到/fs/data目录,其他没有地方mount

怎么解决呀!老大

首先,你肯定是 rm -R … 造成的吗?而不是别的对CF卡的操作造成的?因为rm -R 而造成的可能性比较小。

然后,好象你的CF卡不能mount成只读?

可以试试:

1)把CF卡上要保护的文件置成只读 (chmod 444 )
2) 在硬盘上建立文件、目录时,保证它是全可读写的 (chmod 777 )
3) 在你的程序做 rm -R 的时候,先把自己变成 "none root"用户。(seteuid()/setegid()) 然后再进行删除。