NFS共有(NTFS形式のファイルシステム)をutf8
としてCentOS 6.5
にマウントする方法
mount -o iocharset=utf8
mount -o nfs=utf8
mount -o utf8=1
mount -o utf8
Umlauts(äöü)を含むUNIXドライブにファイルを作成し、そのファイルをNFS共有にエクスポートすると、Windowsにbroken文字が表示されます(例:A¼
)壊れた文字は、ファイル名-コンテンツにはありません。
ロケール設定が間違っている可能性はありますか?LC_* = "en_US.UTF-8"
また試しましたde_DE.UTF-8
ウムラウトのある共有のウィンドウでファイルを作成すると、UNIXでは?
と表示されます。ロケール設定に問題があると思います。
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
すべて試しました-改善なし。
mount 192.168.1.1:/SHARE share -o nolock,nfsvers=4.1
私のWindowsサーバーはall NFSプロトコルを許可しますが、CentOSは4.1を選択しませんでした。 NFS 4.1では、ウムラウトの問題は解消されました。
NFSバージョン4.1を使用してNTFSファイルシステムをマウントする @ Lucasの回答 は魔法のように思えるかもしれません。これが、この特定の問題を解決した理由です。 Network File System(NFS)Version 4 Minor Version 1 Protocol 、具体的には セクション14.4、UTF-8機能 と題されたIETF RFCに目を通した場合:
抜粋
14.4. UTF-8 Capabilities
const FSCHARSET_CAP4_CONTAINS_NON_UTF8 = 0x1;
const FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 = 0x2;
typedef uint32_t fs_charset_cap4;
Because some operating environments and file systems do not enforce
character set encodings, NFSv4.1 supports the fs_charset_cap
attribute (Section 5.8.2.11) that indicates to the client a file
system's UTF-8 capabilities. The attribute is an integer containing
a pair of flags. The first flag is FSCHARSET_CAP4_CONTAINS_NON_UTF8,
which, if set to one, tells the client that the file system contains
non-UTF-8 characters, and the server will not convert non-UTF
characters to UTF-8 if the client reads a symlink or directory,
neither will operations with component names or pathnames in the
arguments convert the strings to UTF-8. The second flag is
FSCHARSET_CAP4_ALLOWS_ONLY_UTF8, which, if set to one, indicates that
the server will accept (and generate) only UTF-8 characters on the
file system. If FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 is set to one,
FSCHARSET_CAP4_CONTAINS_NON_UTF8 MUST be set to zero.
FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 SHOULD always be set to one.
これは4.1で追加され、以前には存在していませんでした。少なくとも私がこの問題を研究しているところによると。
NFSサーバーを管理していて4.0を使用している場合、次のことを想定して4.1を使用することをお勧めします。
NFSバージョン4のマイナーバージョン1はNFSバージョン4のマイナーバージョン0に依存せず、別個のプロトコルと見なされます。したがって、このドキュメントは更新も廃止もありません RFC 35 。 NFSマイナーバージョン1は、機能を失うことなく、NFSマイナーバージョン0よりも優れていると見なされており、バージョン0よりも優先的に使用されます。NFSマイナーバージョン0と1は、同じクライアントとサーバー間の同じネットワークで同時に使用できます。