ログイン新規登録

気に入った記事にいいねで気持ちを伝えませんか?💚

いいねした記事はマイページのいいねした記事一覧からいつでも読み返せます

9

この記事は最終更新日から5年以上が経過しています。

exFATでフォーマットされた外部ストレージを任意のパーミッションでマウントする

最終更新日 投稿日 2016年07月02日

USBに入れたデータをいろんな環境で使いたいと思って、一番汎用性があるexFATでフォーマットしたまでは良かったのですが、Raspberry PiでマウントしてWebDAVで共有するまでに幾つか引っかかったので残しておきます。

使ってるOSはRaspbian Liteです

USBメモリをマウントする。

自動マウントするために/etc/fstabに書くと思うんですが、マウント元の記載方法をモダンなものにしてみました。

マウント元の記法はいくつかあって、

1.sdaやsda1のような/dev以下に置かれたデバイスファイル

2.USBメモリに割り振られたUUIDを指定する

3.ストレージに貼られたラベルを指定する。

があります。

1は
/dev/hogehoge /mnt/hoge vfat defaults 0 2

2は
UUID=xxx-xxx-xxx-xx /mnt/hoge vfat defaults 0 2

3は
LABEL=hoge /mnt/hoge vfat defaults 0 2

1に比べて2と3はデバイスファイルが変わってもマウントできるというメリットが有り、2と比べて3は何をマウントしているのかわかりやすいというメリットが有ります。

1.2は特に何もしなくてもそれぞれデバイスファイル/UUIDを調べれて指定すればOKですが、3はまずUSBメモリにラベルを貼る必要があります。

ラベルを貼るコマンドですが、フォーマット形式ごとに使用するコマンドが違いますので注意しましょう。

Linuxで一般的なext2/3はe2labelというコマンド、あまりLinuxでは使わないと思いますがNTFSではntfslabel(多分パッケージをインストールする必要あり)を、vfat(FAT32)ではmlabelを、そしてexFATではexfatlabelを使います。

exFATでフォーマットしたUSBメモリにラベルを付けるには以下のようになります。

なお、USBメモリはsda1であるとします。

$ sudo exfatlabel /dev/sda1 usbmem

そして、ラベルをつけた後、/etc/fstabで

LABEL=usbmem /mnt/hoge exfat defaults 0 2

と指定すればマウントファイルが変わろうと自動的にマウントされます。わかりやすいですね。

ちなみに、exfatでフォーマットされたストレージをマウントする場合はフォーマット形式をexfatとします。

マウントしたUSBメモリを任意のパーミッションにする

Linuxですと、ext2/3/4でないかぎり、マウントした後中に入っているファイル/フォルダのパーミッションを変更できないと思います(ここはもしかしたら違うかも)

じゃあどこで定義するのかというとマウント時に定義するのですが、fstabに書くときに引っかかりました。

LABEL=usbmem /mnt/hoge exfat defaults,gid=30,umask=003,dmask=003,fmask=003 0 2

上のと比べるとdefaultsの後に幾つかパラメータを追加しています。

詳しいパラメータの種類は各自で調べてもらうとして、ここにマウント時のオプションを書きます。

ここで指定しているのはgidと3つのmaskです。

gidはこのUSBメモリに入っているファイル/フォルダは複数のソフトで使うことを想定しているので所属グループを指定しています。

uidというパラメータで所属ユーザーを指定することも出来ます。

どちらとも指定しなければ所属はrootになります。

重要なのはその次、umask,fmask,dmaskのmaskシリーズです。これでマウント時と新規作成時のパーミッションを指定できます。

それぞれ、

umask=新規ファイル作成時のパーミッション

fmask=マウントしたストレージ中の「ファイル」のパーミッション

dmask=マウントしたストレージ中の「フォルダ」のパーミッション

指定しなければ自動的に751になります。

ここでは所属グループにも書き込み権限が欲しかったので774にすることを想定し、003としています。

こうすることによって、マウントしたストレージ中のデータのパーミッションを指定することが出来ます。

なお、個別にパーミッションを指定することは出来ません。

exFATやFATにはパーミッションという概念がないみたいですし、仕方ないと言ったら仕方ないのかもしれません。

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
  3. ダークテーマを利用できます
ログインすると使える機能について

コメント

この記事にコメントはありません。

いいね以上の気持ちはコメントで

記事投稿キャンペーン開催中
Qiita×Findy記事投稿キャンペーン 「自分のエンジニアとしてのキャリアを振り返ろう!」
~
9

新規登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる

ソーシャルアカウントでログイン・新規登録

メールアドレスでログイン・新規登録