Arch LinuxでNTFSファイルシステムを扱う

こんにちは。今回のテーマは『Arch LinuxでNTFSファイルシステムを扱う』です。Ubuntuを使っていると当たり前にできたことがArch LinuxやSlackwareだと壁にぶつかることがあります。ファイルシステムや文字コードの取扱などが該当するのではないでしょうか。今回扱うNTFSファイルシステムの取扱もUbuntuでは特に意識せずにマウントできていたのですが、Arch Linuxでは少々設定が必要でしたので記事にしてみました。


【目次】
Arch LinuxでNTFSが正しくマウントできない?
ntfs-3gをインストール
ntfsフォーマットのドライバをマウントす
ntfs-3gのオプションについて
fstabに設定してマウントする
Windowsとデュアルインストールしている場合

Arch LinuxでNTFSが正しくマウントできない?

筆者はHDDにバックアップ用のパーティションを作りNTFSファイルシステムにフォーマットしてファイルのバックアップを行っていました。Windowsを使用していた頃の名残だったのですが、Windowsに接続すればすぐにファイルを救出できる利点もあり割とntfsフォーマットは気に入っています。Ubuntuでは特に意識することなくマウントできたntfsフォーマットですが、Arch Linuxではntfs-3gがインストールされていないために読み込み専用でしか読み込めない状態に陥りました。

–2016/04/09追記–
コメント欄にて「ntfs-3gなしではマウント自体できないはず」とのコメントいただきましたが、Arch LinuxのカーネルはNTFSサポートが有効となっているため読み込み専用でならマウント可能です。Arch wikiのNTFS項にも記載されています。他のディストリビューションではマウントできない場合もありますので追記しておきます。

ntfs-3gをインストール

Arch Linuxでntfsフォーマットを扱うにはまずはntfs-3gをインストールしましょう。以下コマンドを実行します。

$ sudo pacman -S ntfs-3g

ntfsフォーマットのドライバをマウントする

ntfsをマウントするコマンドはいくつかあるのですが、まずはオーソドックスなmountコマンドを使います。以下のコマンドでマウント出来ます。

root# mount -t ntfs-3g -o <オプション> <デバイス> <マウントポイント>

例えばntfs形式でフォーマットされたsda2を読み込むときには以下のようなコマンドになります。

root# mount -t ntfs-3g /dev/sda2 /media/ntfs

mountコマンドを使わなくてもntfs-3gコマンドでもマウント出来ます。一般的なコマンドとしては以下の通りです。

root# ntfs-3g -o <オプション> <デバイス> <マウントポイント>

ntfs-3gのオプションについて

ntfs-3gコマンドでは以下のようなオプションを使用可能です。詳細はmanコマンドでも調べられますしhttp://www.tuxera.com/community/ntfs-3g-manual/でも調べることが可能です。ここではいくつか紹介するに留めます。
画像はman ntfs-3gで出したマニュアル画面
01

主要なオプション

uid
所有者を指定する際に使います。値はidコマンドで取得できます。

gid
所有グループを指定する際に使います。値はuidの場合と同じくidコマンドで取得できます。

ro
読み込み専用でマウントしたい場合にはroオプションを指定します。

umask
新規作成のファイルとディレクトリのパーミッションを設定します。Arch Linuxではrootとuserのデフォルとumaskが0022に設定されています。この設定ではディレクトリは775,ファイルは644のパーミッションになります。umaskについてはコチラが詳しいです。

使用例

以下のようなコマンドとして使用します。

root# mount -t ntfs-3g -o uid=1000,gid=100 /dev/sda2 /media/ntfs

fstabに設定してマウントする

現代的なGUIデスクトップ環境では大抵GUIで手軽にデバイスのマウントが簡単になりましたが、起動時に自動的にマウントしたり、マウントポイントを意図的に指定したい場合はfstabに指定しておくと便利です。今回はデバイスをsda2、マウントポイントを/media/ntfsとしてfstabを設定してみます。

まずはエディタで/etc/fstabを開きます。今回はvimを使用しますがnanoや他のエディタでも構いません。ルート権限で開いて下さい。

$ sudo vim /etc/fstab

fstabの書式に従い以下の例のようなフレーズを追記します。
【書き方例】

/dev/sda2   /media/ntfs    ntfs     uid=1000,gid=100,umask=0022    0   0

尚、fstabは記載を誤ると起動できなくなることがありますので、注意して下さい。もし起動不可能になったらArch Linux等のLiveCD/DVDを用いてfstabの修正を行って下さい。また、本記事の内容でもうまく行かない場合はArch wikiも参考にして下さい。

Windowsとデュアルインストールしている場合

–2016/04/09追記–
コメント欄にて「ntfs-3gのインストールだけでは不足でWindwosの高速スタートアップをオフにする設定が必要なので情報不足」とコメント頂きましたので、本項を設けました。筆者がWindowsを使っていないために特にきにしていなかったのですが、調べてみると高速スタートアップがネックとなっているケースが見受けられたので触れておきます。本項はWindowsとのデュアルインストールをしている方のみ対象となります。

Arch wikiにも記事があるのですがWindows 8や10とデュアルインストールしている場合には「高速スタートアップ」機能が原因でマウント時にエラーが出ることがあるそうです。この問題は高速スタートアップを無効化することにより解決できるようですが、前述の通り筆者はWindows機がなく検証できていませんので、無効化する際にはご自身の責任でお願いします。

【ご参考:外部リンク】
Windows 10で高速スタートアップを無効にする方法
Windows 8 / 8.1で高速スタートアップを無効にする方法

最後に

わざわざ記事にするほどのこともないかと思いましたが、案外引っかかるポイントかも知れないと思い記事にしました。Windowsとデュアルインストールにする方はntfsファイルシステムをマウントする機会も多いと思います。本記事がお役に立てば幸いです。

【関連記事】
Arch Linuxのインストール後の環境設定まとめ
Arch LinuxをUEFI + GPT環境にインストールする

Sponsored Link


6件のコメント

  • ntfsを読み書き可能でマウントするポイントは2つあります。
     ・ntsf-3gをインストールする。
     ・windowsの高速スタートアップをオフにする。

    高速スタートアップはwindows8から追加された機能です。
    BIOSで設定変更できます。

    ntsf-3gのインストールだけでは解決しませんし、
    インストールされていなかったら、読み込み専用どころかマウント自体できませんよ。

    クロさんのブログは知名度あると思うので、正しい情報を載せてもらいたいです。

    • komqixさん

      コメントありがとうございます。以下返信させていただきます。

      > ・windowsの高速スタートアップをオフにする。
      私自身がWindowsを使わないためにWindows 8や10とデュアルインストールをしているユーザーを考慮していませんでした。
      記事中には高速スタートアップに関する項目を設けました。

      > インストールされていなかったら、読み込み専用どころかマウント自体できませんよ。

      Arch Linuxで実際に試した上でのコメントでしょうか?カーネルのNTFSサポートが無効化されているディストリビューションではNTFSは認識できませんがArch LinuxではNTFSサポートが有効となっております。そのため読み込み専用であればマウントすることが可能です。私も実際にntfs-3gなしでNTFSファイルシステムがマウントできることは検証済みです。

      > クロさんのブログは知名度あると思うので、正しい情報を載せてもらいたいです。

      知名度はそこまで高くないと思いますが、常に正確な情報を発信するよう心がけ、記事にする内容は基本的には自分自身で検証した事象を記事にするようにしています。
      (ディストロのレビュー等は主観ですが・・)
      ただし私もまだまだ未熟なので記事に誤りがないとは言えません。皆様からのコメントも頂きながら記事が正確なものになっていけば良いと考えています。今後共宜しくお願いいたします。

      • クロさん

        今回は軽率にコメントしてしまい、すみませんでした。
        私の方こそ、正しく情報を理解することを心がけていきたいと思います。

        今後もよろしくお願いします。

        • komqixさん

          本ブログは多くの方にご意見いただきながら適宜修正を行っています。活発に議論した上で多くの人の役に立つ情報を発信できることが重要と考えていますので、どうか気にしないで下さい。これからもご意見いただければと思います。
          どうぞ宜しくお願いいたします。

  • クロさん
    はじめまして、mabox linuxを使っています。
    市販のusb(seagate)が、認識せず困っていました。
    こちらの記事で、解決しました。ありがとうございました。
    sudo mkdir /media
    sudo mkdir /media/ntfs
    sudo mount -t ntfs-3g -o uid=1000,gid=100 /dev/sdb1 /media/ntfs

    • 返信遅くなり恐縮です。
      記事がお役に立ったなら幸いです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です