h_nari @ 熊本市のブログ。電子工作、プログラミング、ゲーム、TV、 政治、インターネットなどに日々の思い付きを、 うだうだ~と書いていきたい。
このブログにはコメント欄を設けておりません。 記事への御意見、ご質問はtwitter @h_nari宛に お願い致します。


アーカイブ


アマゾン・ベストセラー

メタ情報
RSS
Login

Raspberry PiのUSBメモリのファイルを実行可能にする

Raspberry Piを業務で使用する時は fsprotectとaufsを使用し、 いつでも電源切断可能な状態で運用している。 情報を保存する必要がある場合には USBメモリに保存する。 今回、顧客からプログラムのアップデート機能を 追加して欲しいという要望があった。 プログラムをUSBメモリに置けば良いかと考え、 試すが動かない。

調べるとUSBメモリ上のファイルに 実行可能許可ビット(+x)が付いていない。 chmod +xしても付かない。 ちなみにファイルシステムは Windows機からも使用可能なようにvfatにしてある。 おなじくvfatでmountしてある /bootパーティションは すべてのファイルに +x がついている。 よく見る風景だ。

なんやかんや調べたところ、USBメモリは X-window動作→ファイルマネージャ(pcmanfm)が udisks2を使用してmount,この際 showexec という オプションを付けているため +xがつかないらしい。

+xをつけないのは、セキュリティの面から理解できる。 しかし、今回は何とかして+xをつけたい。 いろいろ調べて udisks2を止めて usbmountでマウントすると オプションを指定できるとか、 udisks2が使用する mountコマンド があるフォルダーを指定できるので、ここに偽のmountコマンドを 置いてオプションをいじる方法などみつけたが、いまいち 気が乗らない。

調査の途中、udisks2のソースで"showexec"かかれた場所は 特定していた。 udisksはパッケージで管理されているので、 ソース入手、コンパイル等はできるはず、ということで やってみたら無事 +x をつけることができるようになった。

くわしくは Qiitaに書いたので参照して欲しい。