昨日の不安定な動作の原因を探っていて、とりあえず現象を起こすきっかけを確認。
CDROMなどのRead Onlyのメディア上のファイルのアトリビュートに
Read Only属性が着いているのだが、このRead Only属性がバッチファイルに
付いていると、バッチファイルから生成されたディレクトリが
Read Onlyになってしまうのだ。
そのため、プログラムがファイルを書き込もうとして書き込めずアボートとなる。
きっかけは分かったが、対策が・・
CDROM上のファイルアトリビュートをRead/Writeに変更できるのかな?
いざとなったら、このバッチファイルをHDD上にコピーして、そちらを
優先的に実行させるか・・
全く同じ仕組みで去年までは問題なかったんだけどなぁ
対策NG
ブート時に問題となるバッチファイルをローカルにコピーして、アトリビュートを変えたけれどNGだ。
昨日の確認では、R/Wのバッチファイルからは問題なくディレクトリが作成できたのだが、今日試すと、R/Wのバッチファイルが作ったディレクトリもR/Oになっている・・
なんで?
コメント by 組み込まれたエンジニア — 2007年8月29日 @ 8:42 AM
アクセスコントロールなのか?
ls -lで見ると、r-xの形の上に最後に+マークが付いている。これは、ACLで制御されているということか?
とりあえず、setfaclを使ってディレクトリの属性をrwxに変更することからはじめようか・・
動いたり動かなかったり、再現性がない動きをするので、非常に厄介だ。
コメント by 組み込まれたエンジニア — 2007年8月30日 @ 5:33 PM
アクセスコントロールで正解かも?
試してみたらちゃんと動きそうだ。
といっても、色々なPCで試さないと危ないが・・
コメント by 組み込まれたエンジニア — 2007年8月31日 @ 7:07 AM