Ubuntu Linux

Ubuntu / Linux でNTFSフォーマットのHDDをマウントしていて問題が発生したので、NTFS HDDのマウント設定について見なおした。

 

 

環境

Desktop (Ubuntu v16.04, NTFS-HDD)

エラーメッセージ

NTFSフォーマットの3TB HDD上でC言語で書いたプログラムを実行するとパーミッションに関するエラーメッセージが表示される。

# NTFS-HDD上のCのプログラム実行
$ ./a.out
Bash : Permission denied

とりえあずファイルのパーミッションを確認するもデフォルト通りで問題なし。

# パーミッションの確認
$ ls -l
-rwxrwxr-x 1 hiyoshi hiyoshi 13280  2月  6 22:38 a.out

解決

手元で色々試しながら確認してみると、システムドライブ上では通常通りプログラムが実行できて、データディスクとしてマウントしているNTFSフォーマットのHDD 3台どれもがCのプログラムを実行できなかった。

マウントオプションに問題がありそうだったので試行錯誤したところ上手く行った。

設定変更前の /etc/fstab はこちら。

$ sudo vim /etc/fstab 
UUID=a80e678d-0f83-4ed6-bf26-3bd8a1c96ad1 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=516105e9-62d5-46bb-b913-22c7d8eaeb1a none            swap    sw              0       0
#UUID=844C3B0A4C3AF690 /mnt/dd ntfs-3g auto,nosuid,nodev,nofail,x-gvfs-show,users,permissions 0 0
#UUID=0A622D03622CF4DB /mnt/da ntfs-3g auto,nosuid,nodev,nofail,x-gvfs-show,users,permissions 0 0
#UUID=708045EF8045BC7A /mnt/db ntfs-3g auto,nosuid,nodev,nofail,x-gvfs-show,users,permissions 0 0
//192.168.3.4/hddr /mnt/na cifs username=pi,password=Lapis729,defaults 0 0

ひとまずマニュアルを開いてオプションの詳細についてざっくり確認した。

# 後ろの方にマウントのオプションについて記載あり
$ man 
mountMOUNT(8)                               System Administration                              MOUNT(8)

NAME
       mount - mount a filesystem

SYNOPSIS
       mount [-l|-h|-V]

       mount -a [-fFnrsvw] [-t fstype] [-O optlist]

       mount [-fnrsvw] [-o options] device|dir

       mount [-fnrsvw] [-t fstype] [-o options] device dir
...

設定変更後の /etc/fstab がこちら。

defaults オプションを利用したので見た目は大分すっきりしました。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda6 during installation
UUID=a80e678d-0f83-4ed6-bf26-3bd8a1c96ad1 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=516105e9-62d5-46bb-b913-22c7d8eaeb1a none            swap    sw              0       0
UUID=844C3B0A4C3AF690 /mnt/dd ntfs-3g defaults,x-gvfs-show,permissions 0 0
UUID=0A622D03622CF4DB /mnt/da ntfs-3g defaults,x-gvfs-show,permissions 0 0
UUID=708045EF8045BC7A /mnt/db ntfs-3g defaults,x-gvfs-show,permissions 0 0
//192.168.3.4/hddr /mnt/na cifs username=pi,password=Lapis729,defaults 0 0

簡単にオプションについてまとめると

defaults オプションでブート時の自動マウントなどを行う。

x-gvfs-show オプションでファイラーへの表示を有効にする。

permissions オプションでパーミッションの変更を有効にする。

マニュアルに載ってないオプションもありますが試行錯誤とオプション名から大体このような感じだと推定。

ちなみに users オプションを外すとC言語のプログラムが実行できるようになりました。

 

【Linux】UbuntuでNTFSのHDDをマウントする設定
Tagged on:     

コメントを残す