「NTFS-3G」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(→‎圧縮ファイル: セクション名を英語版と同じに)
 
(2人の利用者による、間の3版が非表示)
119行目: 119行目:
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
  +
  +
=== Unsupported reparse point ===
  +
  +
Windows 10のNTFSファイルシステムをマウントし、ファイルまたはディレクトリを読み取る際、以下のようになることがあります
  +
  +
# 'unsupported reparse point' を指す壊れたシンボリックリンクが見える、''もしくは''
  +
# {{ic|cannot access ''some_file'': Input/output error}} というエラーメッセージが表示される (この場合、[[journal]]に{{ic|Could not load plugin /usr/lib64/ntfs-3g/ntfs-plugin-80000017.so: Success}} と表示されます)。
  +
  +
この原因は[[Wikipedia:NTFS reparse points|NTFS reparse points]]によるもので、NTFS-3Gはデフォルトで一部のタイプの再解析ポイントをサポートしていないためです。次の再解析ポイントで定義されている機能の一部との互換性を提供するためにNTFS-3Gプラグインが使えるかもしれません。
  +
  +
* システム圧縮
  +
* 重複ファイル
  +
* OneDriveファイル
  +
  +
さらなる詳細は [https://jp-andre.pagesperso-orange.fr/junctions.html#other このページ] を参照してください。
  +
  +
"Compact OS" として知られるシステム圧縮は、特定のファイルを圧縮しています。システム圧縮の回避策は2つ考えられます。
  +
  +
NTFS-3Gプラグイン {{Aur|ntfs-3g-system-compression}} をインストールする。現在、このプラグインでは読み取りのみサポートされていますが、書き込みはサポートされていません。つまり、ファイルの作成または更新はサポートされていません。
  +
  +
もしくは、Windows10のシステム圧縮機能を無効にすることです
  +
  +
C:\WINDOWS\system32> compact.exe /CompactOS:never
   
 
=== 破損した NTFS ファイルシステム ===
 
=== 破損した NTFS ファイルシステム ===

2023年6月5日 (月) 20:00時点における最新版

関連記事

NTFS-3G は Microsoft の NTFS ファイルシステムの読み書きサポートを含むオープンソース実装です (Linux カーネルは NTFS の読み込みだけサポートしています)。開発を円滑に進めポータビリティを得るために NTFS-3G の開発者は FUSE ファイルシステムを使っています。

インストール

ntfs-3g パッケージをインストールしてください。

手動マウント

NTFS パーティションを手動でマウントする方法は2つあります。伝統的な方法:

# mount -t ntfs-3g /dev/your_NTFS_partition /mount/point

Arch ではマウントタイプ ntfs-3g を明示的に指定する必要はありません。ntfs-3g パッケージがインストールされていれば mount コマンドはデフォルトで /usr/bin/ntfs-3g にシンボリックリンクされている /usr/bin/mount.ntfs を使用します。

2つ目の方法は ntfs-3g を直接呼び出すことです:

# ntfs-3g /dev/your_NTFS_partition /mount/point

利用可能なオプションは ntfs-3g(8) を見てください。

フォーマット

警告: どんなときでも、デバイスのパスをよく確認するようにしてください。
# mkfs.ntfs -Q -L diskLabel /dev/sdXY
ノート: -Q についてのマニュアル: クイック(高速)フォーマットを実行します。ボリュームをゼロで埋めるのと不良セクタのチェックが省略されます。

設定

NTFS パーティションを自動でマウントするように設定したり、マウントしたいと思った時に特定の方法でマウントできるように事前に設定することができます。この設定は固定的なファイルシステムの設定 (fstab) か udev ルールを使って行います。

デフォルト設定

デフォルト設定を使うと起動時に NTFS パーティションがマウントされます。この方法では、パーティションがマウントされている親のフォルダに適切なユーザーやグループのパーミッションがあれば、そのユーザーやグループはパーティションを読み書きすることができます。

以下のように /etc/fstab に記述してください:

/etc/fstab
# <file system>   <dir> <type>    <options>             <dump>  <pass>
/dev/NTFS-part  /mnt/windows  ntfs-3g   defaults          0       0

Linux 互換のパーミッション

通常、Linux システムではフォルダは 755 に、ファイルは 644 にパーミッションが設定されます。定期的に NTFS パーティションを使う場合は NTFS パーティションにもこれらのパーミッションを同じように設定するのが推奨されています。以下の例では上記のパーミッションを通常ユーザーに指定しています:

# Mount internal Windows partition with linux compatible permissions, i.e. 755 for directories (dmask=022) and 644 for files (fmask=133)
/dev/NTFS-partition  /mnt/windows  ntfs-3g uid=userid,gid=groupid,dmask=022,fmask=133 0 0

グループ・ユーザーを許可する

/etc/fstab (NTFS-3G ドライバー) にパーティションへのアクセス(読み取り)を許可するように他のオプションを指定することも可能です。例えば、groupid グループに入っているユーザーへアクセスを許可するには:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   gid=groupid,umask=0022    0       0

デフォルトで、上記の行は書き込みサポートは root にだけ有効にします。ユーザーによる書き込みを有効にするには、書き込みパーミッションを与えるユーザーを指定する必要があります。uid パラメータとユーザーの名前を使ってユーザーの書き込みを有効にしてください:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=userid,gid=groupid,umask=0022    0       0

動かしているのがシングルユーザーマシンの場合、ファイルシステムの所有者を自分自身にして全てのパーティションを与えることができます:

/dev/NTFS-partition  /mnt/windows  ntfs-3g   uid=userid,gid=groupid    0       0

基本的な NTFS-3G のオプション

ほとんどの場合、上記の設定で十分なはずです。以下は、様々な Linux ファイルシステムのオプションと共通しているその他のオプションです。完全なリストは ntfs-3g(8) § OPTIONS を見て下さい。

umask
umask は新しく作成したファイルにファイルパーミッションを自動的に設定するシェルの組み込みコマンドです。Arch Linux では、root と user のデフォルト umask は 0022 になっています。0022 では新しいフォルダのパーミッションは 755 に、新しいファイルのパーミッションは 644 になります。umask パーミッションに関する詳細は ここ で読めます。
fmask と dmask
umask と似ていますがファイルとディレクトリをそれぞれ個別に定義します。
noauto
noauto が設定されている場合、/etc/fstab の NTFS エントリは起動時に自動ではマウントされません。
uid
ユーザー id 番号。これを使うことで特定のユーザーにパーティションへの完全なアクセスをさせることができます。あなたの uid は id コマンドで調べられます。
windows_names
Windows で許可されていない名前でファイルやディレクトリ、拡張属性を作成できないようにします。

ユーザーにマウントを許可する

デフォルトでは、/etc/fstab に "user" オプションを設定していたとしても、ntfs-3g はファイルシステムをマウントするのに root 権限を必要とします。詳しくは ntfs-3g-faq を読んでください。fstab の user オプションは必須です。ユーザーとしてマウントするには、多少の設定が必要になります:

まず、使用したいマウントデバイスへのアクセスができるか確認してください。一番簡単な方法は次のコマンドで disk グループに追加することです:

# gpasswd -a username disk
ノート: 場合によってはグループの効果を適用するために再起動が必要です。

また、使用したいマウントポイントへのアクセス権も必要になります。このマウントポイントでユーザーとして何かマウントすることになるので、所有者を変更したほうが良いでしょう:

# chown user /mnt/mountpoint

次に、完全な FUSE サポートを付けてコンパイルされた NTFS-3G ドライバーをインストールしてください。公式リポジトリの ntfs-3g パッケージには完全なサポートがありませんが、AUR に ntfs-3g-fuseAUR があります。

これで root 権限なしで NTFS パーティションをマウントすることができるようになっているはずです。

ノート: アンマウントの権限については問題があり、上記の設定をした場合でも、ファイルシステムをアンマウントしたいときは root 権限が必要になります。fusermount -u /mnt/mountpoint を使ってファイルシステムを root 権限を使わずにアンマウントすることは可能です。また、/etc/fstabuser オプションではなく users オプション (複数形) を使用した場合、mountumount コマンドを使ってファイルシステムをマウント・アンマウントできるようになります。

NTFS パーティションをリサイズする

ノート: 重要なデータがある場合はリサイズする前にバックアップを取るようにしてください。

購入したパソコンには Windows がプリインストールされている場合がほとんどなので、Arch Linux をインストールする際に完全に Windows を消去してしまいたくない人もいるでしょう。その場合、既存の Windows パーティションをリサイズして Linux のパーティションを一つか二つ作るための領域を用意すると便利です。これには基本的に Live CD やブータブル USB サムドライブを使用します。

Live CD を使う場合は ISO ファイルをダウンロードして、CD に焼き込み、その CD から起動するのが常套手段です。要件を満たす Windows 用のフリーの (GPL3 の) CD/DVD 書き込みアプリケーションとして InfraRecorder があります。ブータブル USB メディアを使う場合は、USB インストールメディアに書かれているブータブル USB スティックを作る方法を見て下さい。

ブータブル CD/USB イメージは多数存在します。このリストは完全ではありませんが、起点としては役に立つはずです:

  • GParted — x86 ベースのコンピュータ向けの小さなブータブル GNU/Linux ディストリビューション。GParted アプリケーションの最新版の全ての機能が使用できます。追加パッケージの System Rescue CD は含まれておらず、ディスク暗号化はサポートしていません。
http://gparted.sourceforge.net/ ||
  • Parted Magic — 完全なハードディスク管理ソリューション。Partition Editor を使ってパーティションをリサイズ・コピー・移動することができます。C: ドライブを拡大・縮小することが可能です。新しいオペレーティングシステムのために領域を作成できます。消失したパーティションからデータを救出する機能もあります。
http://partedmagic.com/ ||
  • SystemRescueCD — 大抵の場合でシームレスに動作させることができるツールです。起動すると、GParted が実行されすぐに操作することができます。
http://www.sysresccd.org/ ||

NTFS パーティションをリサイズするのに必要なプログラムには util-linux パッケージに入っている fdisk や (G)parted などのユーティリティや ntfs-3g が含まれます。"上級"ユーザーでないのならば、ユーザーによる間違いによってデータが消失する可能性をできるだけ少なくするために、リサイズ操作には GParted などのツールを使うことが推奨されます。

既に Arch Linux をインストール済みで、既存の NTFS パーティションをリサイズしたいだけの場合、parted と ntfs-3g パッケージを使ってリサイズできます。任意で、GParted パッケージをインストールして GParted GUI を使うことも可能です。

トラブルシューティング

Unsupported reparse point

Windows 10のNTFSファイルシステムをマウントし、ファイルまたはディレクトリを読み取る際、以下のようになることがあります

  1. 'unsupported reparse point' を指す壊れたシンボリックリンクが見える、もしくは
  2. cannot access some_file: Input/output error というエラーメッセージが表示される (この場合、journalCould not load plugin /usr/lib64/ntfs-3g/ntfs-plugin-80000017.so: Success と表示されます)。

この原因はNTFS reparse pointsによるもので、NTFS-3Gはデフォルトで一部のタイプの再解析ポイントをサポートしていないためです。次の再解析ポイントで定義されている機能の一部との互換性を提供するためにNTFS-3Gプラグインが使えるかもしれません。

  • システム圧縮
  • 重複ファイル
  • OneDriveファイル

さらなる詳細は このページ を参照してください。

"Compact OS" として知られるシステム圧縮は、特定のファイルを圧縮しています。システム圧縮の回避策は2つ考えられます。

NTFS-3Gプラグイン ntfs-3g-system-compressionAUR をインストールする。現在、このプラグインでは読み取りのみサポートされていますが、書き込みはサポートされていません。つまり、ファイルの作成または更新はサポートされていません。

もしくは、Windows10のシステム圧縮機能を無効にすることです

C:\WINDOWS\system32> compact.exe /CompactOS:never

破損した NTFS ファイルシステム

NTFS ファイルシステムにエラーが存在する場合、NTFS-3G はファイルシステムを読み取り専用でマウントします。NTFS ファイルシステムを修復するには、Windows をロードしてディスクチェックプログラムの chkdsk を実行してください。 ntfsfix で修正できるエラーは限られているので注意してください。ntfsfix が失敗する場合でも、chkdsk が成功することがあります。

NTFS ファイルシステムを修復するには、デバイスをアンマウントしておく必要があります。例えば、/dev/sda2 にある NTFS パーティションを修復するには:

# umount /dev/sda2
# ntfsfix /dev/sda2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
NTFS partition /dev/sda2 was processed successfully.
# mount /dev/sda2

全てが上手く行けば、ボリュームは書き込み可能になるはずです。

"Metadata kept in Windows cache, refused to mount"

Windows 8 や 10 とデュアルブートをしている場合、Windows に見えているパーティションをマウントしようとすると以下のエラーが表示されることがあります:

 The disk contains an unclean file system (0, 0).
 Metadata kept in Windows cache, refused to mount.
 Failed to mount '/dev/sdc1': Operation not permitted
 The NTFS partition is in an unsafe state. Please resume and shutdown
 Windows fully (no hibernation or fast restarting), or mount the volume
 read-only with the 'ro' mount option.

この問題は Windows 8 の新しい"高速スタートアップ"と呼ばれる機能が原因です。高速スタートアップが有効になっていると、マウントされる全てのパーティションのメタデータの一部が以前に終了したときの状態に復帰します。結果として、Linux によって加えられた変更が消失しています。Windows 8 を終了するときに"シャットダウン"や"ハイバネート"を選べば内蔵ディスクのどのパーティションにもデータの消失が起こる可能性があります。ただし、"再起動"で Windows 8 を終了するのは安全のようです。

他のオペレーティングシステムのパーティションへの書き込みを有効にするときは、Windows 8 の高速スタートアップを無効にしてください。管理者権限で次のコマンドを実行することで無効にできます:

powercfg /h off

現在の設定は コントロールパネル > ハードウェアとサウンド > 電源オプション > システム設定 > 電源ボタンの動作を選択する で確認が可能です。"高速スタートアップを有効にする" のチェックが外れているか表示がなくなっているはずです。

Windows のハイバネートメタデータを削除する

上記のようにシャットダウンする方法以外に、ハイバネートの後に保存される NTFS のメタデータを完全に消去するという方法もあります。Windows を起動することがなく完全にシャットダウンした場合のみ適しています。ntfs-3g を使って NTFS ファイルシステムをマウントするときに remove_hiberfile オプションを指定してください:

# mount -t ntfs-3g -o remove_hiberfile /dev/your_NTFS_partition /mount/point
警告: 上記の方法を使うと保存されている Windows のセッションが完全に消失します。自己責任で使ってください。

マウントが失敗する

このガイドに従っても NTFS パーティションをマウントできない場合、/etc/fstab の全ての NTFS パーティションでデバイス名の代わりに UUID を使うようにしてみてください。これが fstab のサンプルです。

参照