2016-10-13 8 views
1

RP3でRaspbian 1.0、v9/15を実行しています。私は収集されたデータを保存するために専用のUSBフラッシュドライブにアクセスするアプリケーションに取り組んでいます。データを書き込む静的パスは "/ media/user/kingston"です。これは、 "/ media/user/kingston"の所有者とグループがrootに変更され、フラッシュドライブのマウントポイントが "/ media/user/kingston1"に変更された時点でシステムクラッシュが発生しない限り素晴らしい結果が得られます私のアプリケーションで定義された静的パスでは(明確に)動作しません。このデバイスとOSで使用できる標準の動的パスオプションはありますか?事前のおかげで...USBドライブにプログラム的にアクセスするRaspberry Pi 3(Raspbian):これを行う最善の方法は?

更新:BJブラックの助言に基づいてが、これは私がファイルシステムのルートに/ USBという名前のディレクトリを作成した後、fstabのために追加するもので、

/dev/sda1 /usb vfat noatime,nofail,user,rw,exec,umask=000 0 3 

利点、 1)USBドライブが挿入されていなくても起動できます。 2)USBストレージデバイスをここで使用できるようにします。

フラッシュドライブを取り外す前に、システムの電源を落とす(またはドライブをアンマウントする)必要があります。それ以外の場合は、悪いことが起こります(これを試しました)。質問:まだマウントされている間に誰かがUSBを引き出した場合の「悪いこと」を減らすために私ができることはありますか?前もって感謝します。

+0

うまくいえば、誰もあなたにsyncオプションを使ってドライブをマウントするよう指示してくれないでしょう。それはフラッシュへの重大な書き込みを引き起こし、それを速く着用します(ただし、停電などでファイルシステムが破損する可能性は低くなります)。スペアのRAMがあり、停止時にデータが失われても、RAMディスクにログして、rsyncまたはlogrotateを使用して定期的にフラッシュするようにしてください。または、ロープロファイルUSBスティック(http://p3e9.qrなど)を使用することもできます。ai)あなたのユーザーが愚かになる可能性を排除して減らすことを難しくします:-) –

+0

これは離れた場所にあり、カメラボードとソーラーパネルと充電式バッテリーに接続されたRaspberry Piになります。キーボードやモニターはありません。 Techsは数週間おきにサイトを訪問し、電源を切断し、USBを取り外し、新しいUSBを挿入し、電源を再接続する。 – portsample

+0

Hmm。それはデバイスが良い形になっていることを確認するためにステータスLEDまたは2つを置く価値がありますか?さもなければ、私は幸せな媒体としてf2fsのようなログ構造のファイルシステムを使います。 https://en.m.wikipedia.org/wiki/F2FSを参照してください。 –

答えて

1

一般に、この種のものにはハードマウントポイントを使用する方が好きです。/sysに(またはmount(1)や/ proc/mountsの出力に対してgrepを使って)きちんとしたトリックがあるかもしれませんが、他のベンダーのためにキングストンのスティックを変更するとすぐに失敗します)。

this linkを見て、あなたのUSBスティックを自動マウントする方法とそのメカニズムをオフにする方法を理解してください。

永久場所に取り付けに関しては、私はどちらか試してみた:

  1. は、マウントポイントを作成します(たとえば/データ)と、fstabにエントリを入れる(5)それはブート時に自動的にマウントされます。
  2. 1と同じですが、noautoとuserを使用して、アプリケーションからmount(1)を明示的に呼び出してください。
  3. autofsをインストールしてauto.miscにエントリを入れて、/dev/sda1)を使用しています。次に、symlink/data - >/misc/dataを実行します。

これらのうち、アイドル時に自動的にスティックがマウント解除されるので、私はオプション3が最も好きです。次に、アプリケーションでは、パスが事前に書き込み可能であることを再確認するだけで済みます。

cheapieのUSBスティックは大きなブロックで消去される傾向があり、そのウェアレベリングはしばしば弱いので(小さなランダム書き込みと大きな書き込みの両方がフラッシュを速く着用する傾向があるため)、書き込みには注意が必要です。 f2fsや慎重な書き込みバッファリングの使用(およびmountのnoatimeオプションが役立ちます)。そして、あなたのアプリで常にfsync()を呼び出さないでください!

関連する問題