【cifs−4】AWSのubuntuで cifs マウントすると文字化けする件

投稿者: | 2015年5月1日

AWSのUbuntu 14.04LTSのEC2インスタンスからWindows Server (2012 R2)にcifsマウントすると
日本語フォルダとファイルが正常に表示できない(文字化けした)ので色々対応し、
最終的には表示できるようになった。

その際の作業メモ。

※エビデンスが足りないので別途追記予定。

EC2のUbuntuの文字化け

デフォルトでは英語表示なので、EC2の日本語化手順の後にcifsマウントしてみたものの、マウントしたWindows側のフォルダが文字化けしてしまう。

# mount.cifs -o username=test //windows-server/share/ /mnt/windows/
Password for test@//windows-server/share/ :
#
# ls -l /mnt/windows/
合計 520
drwxr-xr-x 2 root root      0  3月  3 15:53 TEST
drwxr-xr-x 2 root root      0 10月 31 15:35 ????????
-rwxr-xr-x 1 root root  16294  7月 22  2013 ???????????.docx
#

日本語化の手順を実施したのに、「?????」みたく表示されてしまう。
半角のファイルやフォルダは表示される。

localeの設定は正しそう・・・。

# cat /etc/default/locale 
LANG="ja_JP.UTF-8"

その他、sambaの設定(smb.conf)を確認しても特に問題なし。

※testparmコマンドを実行してもエラーやらワーニングは発生していない。

VMwareにクリーンインストールしたUbuntuで確認

同一の事象が発生するかESXiに新規にインストール(インストール時に日本語のパッケージなどを選択)したUbuntuで確認する。
OS側の設定(localeなど)、SAMBAのバージョン(Ver4)や、インストールされてるパッケージなどが同一であることを確認した上で、cifsマウントを実行してみる。

# mount.cifs -o username=test //windows-server/share/ /mnt/windows/
Password for test@//windows-server/share/ :
#
# ls -l /mnt/windows/
合計 520
drwxr-xr-x 2 root root      0  3月  3 15:53 TEST
drwxr-xr-x 2 root root      0 10月 31 15:35 新しいフォルダー
-rwxr-xr-x 1 root root  16294  7月 22  2013 適当なドキュメント.docx
#

→こちらは正常に表示が可能!

EC2のubuntuとVMwareの差分を調べる

OS側の設定(localeなど)は全く同じであることを確認。
また、SAMBAのバージョン(Ver4)や、インストールされてるパッケージなどが同一であることを確認した。
smb.confの記述内容もEC2側とVMware側の記述は全く同一の記述になっている。

色々探って行くとカーネルにインストールされているモジュールに違いがあることがわかった。

VMwareのUbuntuのモジュール

⇒「ntfs」「msdos」などのモジュールが存在する。

# cat /proc/modules
btrfs 836001 0 - Live 0xffffffffa03ee000
raid6_pq 97812 1 btrfs, Live 0xffffffffa03d5000
xor 21411 1 btrfs, Live 0xffffffffa03ce000
ufs 74890 0 - Live 0xffffffffa03ba000
qnx4 13317 0 - Live 0xffffffffa0346000
hfsplus 107516 0 - Live 0xffffffffa039e000
hfs 54677 0 - Live 0xffffffffa038f000
minix 36140 0 - Live 0xffffffffa034c000
ntfs 97369 0 - Live 0xffffffffa032d000
msdos 17332 0 - Live 0xffffffffa0327000
jfs 181348 0 - Live 0xffffffffa0361000
xfs 912399 0 - Live 0xffffffffa0247000
libcrc32c 12644 2 btrfs,xfs, Live 0xffffffffa0242000
arc4 12608 0 - Live 0xffffffffa0234000
md4 12595 0 - Live 0xffffffffa023d000
coretemp 13435 0 - Live 0xffffffffa022f000
crct10dif_pclmul 14289 0 - Live 0xffffffffa022a000
crc32_pclmul 13113 0 - Live 0xffffffffa01b6000
ghash_clmulni_intel 13216 0 - Live 0xffffffffa01cc000
ppdev 17671 0 - Live 0xffffffffa01bb000
aesni_intel 55624 0 - Live 0xffffffffa021b000
aes_x86_64 17131 1 aesni_intel, Live 0xffffffffa0215000
lrw 13286 1 aesni_intel, Live 0xffffffffa01c7000
gf128mul 14951 1 lrw, Live 0xffffffffa01c2000
glue_helper 13990 1 aesni_intel, Live 0xffffffffa015d000
ablk_helper 13597 1 aesni_intel, Live 0xffffffffa0146000
vmw_balloon 13415 0 - Live 0xffffffffa0141000
cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper, Live 0xffffffffa0137000
serio_raw 13462 0 - Live 0xffffffffa0126000
vmwgfx 175292 1 - Live 0xffffffffa01e9000
ttm 93424 1 vmwgfx, Live 0xffffffffa01d1000
drm 303102 2 vmwgfx,ttm, Live 0xffffffffa016b000
i2c_piix4 22155 0 - Live 0xffffffffa0164000
vmw_vmci 62966 0 - Live 0xffffffffa014c000
shpchp 37032 0 - Live 0xffffffffa012c000
parport_pc 32701 1 - Live 0xffffffffa011d000
mac_hid 13205 0 - Live 0xffffffffa0115000
nls_utf8 12557 2 - Live 0xffffffffa002f000
cifs 462779 4 - Live 0xffffffffa00a3000
lp 17759 0 - Live 0xffffffffa008c000
fscache 63988 1 cifs, Live 0xffffffffa0092000
parport 42348 3 ppdev,parport_pc,lp, Live 0xffffffffa0080000
psmouse 106714 0 - Live 0xffffffffa0064000
mptspi 22542 2 - Live 0xffffffffa001a000
mptscsih 40150 1 mptspi, Live 0xffffffffa0059000
mptbase 101822 2 mptspi,mptscsih, Live 0xffffffffa003f000
vmw_pvscsi 22858 0 - Live 0xffffffffa0034000
vmxnet3 49693 0 - Live 0xffffffffa0021000
floppy 69418 0 - Live 0xffffffffa0008000
pata_acpi 13038 0 - Live 0xffffffffa0000000
#

EC2のUbuntuのモジュール

⇒「ntfs」「msdos」などのモジュールが存在しない。

#  cat /proc/modules
arc4 12608 0 - Live 0xffffffffa00bf000
md4 12595 0 - Live 0xffffffffa009d000
cifs 462779 2 - Live 0xffffffffa00c8000
fscache 63988 1 cifs, Live 0xffffffffa00ae000
dm_crypt 23177 0 - Live 0xffffffffa00a3000
syscopyarea 12529 0 - Live 0xffffffffa0098000
sysfillrect 12701 0 - Live 0xffffffffa0093000
sysimgblt 12640 0 - Live 0xffffffffa008e000
fb_sys_fops 12703 0 - Live 0xffffffffa0070000
serio_raw 13462 0 - Live 0xffffffffa0089000
isofs 39837 0 - Live 0xffffffffa007e000
crct10dif_pclmul 14289 0 - Live 0xffffffffa0076000
crc32_pclmul 13113 0 - Live 0xffffffffa0066000
ghash_clmulni_intel 13216 0 - Live 0xffffffffa006b000
aesni_intel 55624 0 - Live 0xffffffffa0057000
aes_x86_64 17131 1 aesni_intel, Live 0xffffffffa004e000
lrw 13286 1 aesni_intel, Live 0xffffffffa0046000
gf128mul 14951 1 lrw, Live 0xffffffffa0012000
glue_helper 13990 1 aesni_intel, Live 0xffffffffa003a000
ablk_helper 13597 1 aesni_intel, Live 0xffffffffa0035000
cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper, Live 0xffffffffa0040000
psmouse 106714 0 - Live 0xffffffffa0019000
floppy 69418 0 - Live 0xffffffffa0000000
#

EC2との差分箇所について

正常に稼働しているubuntuと比較してみると(lsmod、/pro/modules)、
カーネルに以下のモジュールが読み込まれていないことが判明。

ntfs 97369 0 - Live 0xffffffffa032d000
msdos 17332 0 - Live 0xffffffffa0327000

足りないモジュールについて、Google先生の情報から確認してみると、
ファイルシステム系やCIFSに関係して文字コードに関係しそうな「nls_utf8」というモジュールが、
正常に動いている方には入っていて問題がある方には入っていないことが判明。

追加のモジュールをインストールする

「nls_utf8」というモジュールが含まれるパッケージを探した結果、
以下のパッケージに含まれることが分かったのでインストールしてみる。

# aptitude install linux-image-extra-3.13.0-48-generic

※カーネルのバージョンは現在利用しているものと同じ。アップデートしたりすると変わるので注意。

【解決】日本語フォルダが正常に表示される

モジュールの追加後、cifsマウントで日本語フォルダが正常に表示されることを確認した。

# mount.cifs -o username=test //windows-server/share/ /mnt/windows/
Password for test@//windows-server/share/ :
#
# ls -l /mnt/windows/
合計 520
drwxr-xr-x 2 root root      0  3月  3 15:53 TEST
drwxr-xr-x 2 root root      0 10月 31 15:35 新しいフォルダー
-rwxr-xr-x 1 root root  16294  7月 22  2013 適当なドキュメント.docx
#



【cifs−4】AWSのubuntuで cifs マウントすると文字化けする件」への1件のフィードバック

  1. ピンバック: AWSのubuntuを日本語化 | インフラエンジニアのメモ

コメントを残す