OS起動時にHDDをマウントする時に、マウントポイントに指定のUID、GIDの所有権を設定したいというケースではまったのでメモ。
googleで調べた
mount時にuidやgidを指定したい場合は/etc/fstabに以下のように書く。
/dev/sdb1 /media/data ext4 uid=1000,gid=1000 0 0
マウントオプションの部分にuid,gidを指定するということ。
エラー
しかし以下のようにエラーになった。
EXT4-fs (sdb): Unrecognized mount option "uid=1000" or missing value
uidというマウントオプションが使用できない。
原因
ext4はuid,gidというマウントオプションをサポートしていない。
uid=1000やgid=1000のマウントオプションは、実際にはfstabのルールではなく マウントするfilesystemのルールになる。 したがって、使用したいfilesystemがそのマウントオプションをサポートしていなければエラーとなる。
この場合、googleで調べた情報が古かったためext3向けの情報で、 それをext4に適用しようとしたためエラーとなってしまった。
ちょっと古めの情報は、filesystemのマウントオプションという視点ではなく fstabに書けるオプションという感じに読み取れるため誤解しやすい。
解決方法
一度、対象のストレージをマウントして、以下のようにchmodでパーミッションを指定する。
$ sudo mount /dev/sdb1 /mnt/data $ sudo chown -R user:user /mnt/data
そして、fstabのマウントオプションからuid,gidの記述を抜く。
これで、次回からuser:userというパーミッションでマウントされるようになる。