- KNOPPIX の記事一覧
-
- 新しい方 - Knoppix カテゴリーの記事一覧 - palm84.com
- ここの日記 - Knoppix カテゴリーの記事一覧 - Palm84 某所の日記
2011.8.18 原因・対処とか間違ってました。すみません。。。
KNOPPIX など最近の Linux LiveCD はアイコンクリックでマウントできて便利になってますが、USBメモリなどFAT(16/32) パーティションでは日本語ファイル名が文字化けすることがありますねんなお話。
USBメモリなどFATを使用する場合は、確認のために事前にWindows上で日本語名なファイルを保存しておくことを強くおすすめ致す次第と存じ奉りまする。。
- INDEX
尚、Linuxユーザーにとっては超基本的言わずもがなことゆえ知らない人は全く知らない、関係ない人には全く関係ないことなのかもしれませぬー。
- 【注意】フォーマットが FAT の場合でござる!
-
ここに書いてる例は、USB HD(USBメモリ)などのフォーマットが FAT(FAT32/FAT16) の場合でござりんす。フォーマットがNTFSの場合は英語版OSを除き文字化けは殆ど起こらないと思われます。
ファイル名の文字コードとエンコード
インターネット上で「Windows のファイル名の文字コードは SJIS が使用される」という情報が散見されますが、正確には、Windows2000, WindowsXP などの NT 系 Windows カーネルでは、Windows カーネル内部では、ファイル名は全て Unicode で扱われており、状況によって SJIS への変換が行われます。
NTFSは Unicode ですがUSBメモリなど FAT(16/32) では Shift_JIS によってエンコードされとるわけですな。
- 参考リンク
問題が出るパターン
【2011.8.18 追記】原因については浅薄な勘違い、というかよくわかってませんでした。すみません。。。
NTFSとFATは同じではござらぬ!
codepage=932
で一応おkですが正確には codepage=cp932
です(汗)。
Windows でFATに保存したファイル名が KNOPPIX で文字化け
- 原因
-
マウント時にcodepage=932
指定されない。cp437, cp850 などで処理される(?)マウント時に
codepage=932
,iocharset=utf8
指定されない。 - 対処
-
iocharset=utf8
(及びcodepage=932
)を指定して再マウントすればおk
KNOPPIX でFATに保存したファイル名が Windows で文字化け
NTFS上でちゃんと表示されてたんでFATへそのままコピー。KNOPPIX 上でおk、されど Windows で見たら文字化けしたがじゃ。
- 原因
-
FATのマウント時に。しかし Windows 上では cp932 で処理されるため。codepage=932
指定されない。cp437, cp850 などで保存される(?)マウント時に
codepage=932
,iocharset=utf8
指定されない。 - 対処
-
同じPCでやり直す場合は・・・
- KNOPPIX 上で表示が正常なNTFS領域へコピー
- or ネットワークでWindowsマシンへコピー
- or USBメモリを KNOPPIX 起動前にNTFSフォーマットしておいて、コピー
- or FATなUSBメモリなら
iocharset=utf8
(及びcodepage=932
)を指定にて再マウントしてからコピー(※ 後述)
或いは、移動先の Windows が起動できるPCで KNOPPIX 起動させてとか。
- (Windows 上では文字化けでも KNOPPIX上では正常な筈なので)USBメモリ内のファイルを内蔵HDなどNTFS領域へコピー
再マウントするには
- KNOPPIXを使う前に・・・
-
確認のために事前に Windows 上で使用するUSBメモリなどに日本語名のファイルを保存しておきませう。
Windows で保存した日本語名ファイルが正常表示されない場合は再マウントが必要になります。
- FATパーティションのマウントポイント(or デバイス名)を確認 -
/media/sdx1
など - アンマウント(マウント解除)する
codepage=932,iocharset=utf8
を指定して再マウント
※ KNOPPIX ではデバイス /dev/sdb1
は 通常マウントポイント /media/sdb1
にマウントされる。小容量USBメモリなどでパーティションが切られていない(大容量FD形式)の場合は最後の数字(パーティション番号)はありませぬ。
【追記】 /media/<ボリュームラベル名>
の場合もありますな。
まず、マウントポイント名の確認!
※ 下記はデバイス /dev/sdb1
、マウントポイント /media/sdb1
の場合です!
コンソール(ターミナル・エミュレーター)でコマンド打つべし!
左下のアイコン...
またはメニューから...
- 基本的には・・・
-
-o utf8
のみの追加指定でおkかもしれません。念のため基本通りやった方がいいかと思いますけど。- 一例:
$ sudo umount /media/sdb1 $ sudo mount -o utf8 /media/sdb1
- アンマウント(マウント解除)
$ sudo umount /media/sdb1
- オプション指定してマウント
$ sudo mount -t vfat -o codepage=932,iocharset=utf8,shortname=winnt,uid=knoppix,gid=knoppix /dev/sdb1 /media/sdb1
※ KNOPPIX では一般ユーザでもマウントできますが、オプションの変更・追加は sudo を使い root 権限で実行するナリ。
shortname=winnt
- 英字の大文字小文字をそのままでuid=knoppix,gid=knoppix
(uid=1000,gid=1000
) - root 権限でマウントしてるので指定しないとファイル・マネージャなどで削除など変更処理ができなくなる
- 参考ページ
- 【追記】コマンド打ったのに文字化けしたままやん!orz な場合
-
バージョン 7.x で確認してみまするとファイルマネージャーに設定がなかなか反映されないことがある模様です。
※ 確認のために事前に Windows 上で使用するUSBメモリなどに日本語名のファイルを保存しておきませう。
- ファイルマネージャ開いた状態でF5キー押す(更新する)
- ファイルマネージャをも一遍開きなおす
- ファイル名の日本語がキタ?
と、なりました。(ならなかったらすみません。orz)
バージョン 6.7.1(6.4.4) と 5.3.1 の違い
【追記】産総研版 7.0.2DVD、ライブCDの部屋さん版 7.0.3CD でも FAT は文字化けしてました。
- 6.7.1(6.4.4)
-
【注意】産総研版の例です。ライブCDの部屋さん版 6.7.1, 7.0.3, 7.2.0 では文字化けは発生しませんでした。
FATのマウント時に
codepage=932
,iocharset=utf8
が指定されないので下記両方のパターン発生。- Windows で保存したファイル名が KNOPPIX で文字化け
- KNOPPIX で保存したファイル名が Windows で文字化け
FATで日本語ファイル名を扱う場合は
,codepage=932
iocharset=utf8
指定で手動マウントが必定やき! - 5.3.1
-
基本的にはNTFS同様FATでも問題ないことが多いです。しかし、日本語ファイル名のないFATをマウントする際に
codepage=932
,iocharset=utf8
が指定されない場合があるがじゃ。- KNOPPIX で保存したファイル名が Windows で文字化け
確認のため事前に Windows 上で日本語名ファイルを保存しときませう。
オプションなどを確認
コンソール(ターミナル・エミュレーター)でコマンド打つべし!
デフォルトで指定される mount のオプションを確認するには cat /etc/fstab
と打ちます
KNOPPIX日本語版ではファイル /etc/fstab
が起動時に編集されるのでこのファイルの内容を確認。6.4.4 では codepage
が指定されません。
knoppix@Microknoppix:~$ cat /etc/fstab # DEFAULT BASE FSTAB, UNCONFIGURED proc /proc proc noauto 0 0 sysfs /sys sysfs noauto 0 0 # Added by KNOPPIX /dev/sr0 /media/sr0 auto ro,noauto,users,exec 0 0 # Added by KNOPPIX /dev/sr1 /media/sr1 iso9660 noauto,users,exec 0 0 # Added by KNOPPIX /dev/sda5 /media/sda5 vfat noauto,users,exec,umask=000,shortname=winnt,uid=knoppix,gid=knoppix 0 0 # Added by KNOPPIX /dev/sda1 /media/sda1 ntfs noauto,users,exec,umask=000,uid=knoppix,gid=knoppix 0 0 # Added by KNOPPIX /dev/sdb1 /media/sdb1 vfat noauto,users,exec,umask=000,shortname=winnt,uid=knoppix,gid=knoppix 0 0
マウント済の状態を確認するには mount
と打ちます
knoppix@Microknoppix:~$ mount rootfs on / type rootfs (rw,relatime) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) /dev/sr1 on /mnt-system type iso9660 (ro,relatime) tmpfs on /ramdisk type tmpfs (rw,relatime,size=2097152k) /dev/cloop on /KNOPPIX type iso9660 (ro,relatime) unionfs on /UNIONFS type aufs (rw,relatime,si=9044977c,noplink) unionfs on /home type aufs (rw,relatime,si=9044977c,noplink) usbfs on /proc/bus/usb type usbfs (rw,relatime) tmpfs on /UNIONFS/var/run type tmpfs (rw,relatime,size=10240k) tmpfs on /UNIONFS/var/lock type tmpfs (rw,relatime,size=10240k) tmpfs on /UNIONFS/var/log type tmpfs (rw,relatime,size=102400k) tmpfs on /tmp type tmpfs (rw,relatime,size=2097152k) udev on /dev type tmpfs (rw,relatime,size=20480k) tmpfs on /dev/shm type tmpfs (rw,relatime,size=2097152k) devpts on /dev/pts type devpts (rw,relatime,mode=1777) cgroup on /cgroup/cpu type cgroup (rw,relatime,cpu,release_agent=/usr/sbin/cgroup-remove) /dev/sdb1 on /media/sdb1 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp850,iocharset=iso8859-1,shortname=winnt,errors=remount-ro)
6.4.4 では codepage=cp850,iocharset=iso8859-1
となっとりますですな。このままだと日本語ファイル名は KNOPPIX上では正常でもWindows上で文字化けしてしまいます。
- 5.3.1 では
-
必ずではないけどまっさらのUSBメモリなどでKNOPPIX上では正常・Windowsで文字化け状態となることもがあります。
その場合のオプションはこんなかんじでした。
/dev/sda1 on /media/sda1 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,fmask=0000,dmask=0000,codepage=cp437,iocharset=iso8859-1,shortname=winnt)
この例では
,codepage=932,iocharset=utf8
で再マウントすればおk!でした。