日本語のファイル名・ディレクトリ名が表示されない

よく聞かれる問題とその回答

モデレータ: 暇人, YoN, nyu

返信する
アバター
暇人
記事: 2392
登録日時: 07/08/12(日) 23:33
お住まい: 埼玉県xx市並4
連絡する:

日本語のファイル名・ディレクトリ名が表示されない

投稿記事 by 暇人 »

Q  windows領域が起動ドライブになっている場合、日本語のファイル名・ディレクトリ名が表示されない。

A まだ解決されていません。
アバター
ビズアイユ
記事: 222
登録日時: 08/09/24(水) 13:27
お住まい: Bahir Dar, ETHIOPIA
連絡する:

投稿記事 by ビズアイユ »

FATだったらinitスクリプトをいじれば解決するんですけど、
NTFSだと今のところ無理っぽいですね。
mountの前に日本語ロケールを読み込んでいる必要があるそうで…。
さすがにこのレベルの課題はお手上げです(汗
アバター
YoN
Site Admin
記事: 1239
登録日時: 07/04/01(日) 08:00
お住まい: 信州

投稿記事 by YoN »

ズアイユさんのinitファイルを参考に4.1.2-retro-JPのinitファイルを以下のように変更してみました。
起動時にマウントされたWindowsパーティションにある日本語名のファイルの文字化けが直りました(ただしWindowsパーティションがvfatフォーマットの場合だけのようですね)。
古いPCをvfatフォーマットでお使いの方(私)には朗報と思います。
変更前
画像

変更後
画像

initファイル
1:
95行目

コード: 全て選択

ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw 2>/dev/null #default is rw

コード: 全て選択

ntfs-3g $MNTPRMS -o locale=ja_JP.UTF-8,uumask=0,no_def_opts,noatime,rw 2>/dev/null #default is rw
とする。

2:
106行目付近

コード: 全て選択

ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,force 2>/dev/null

コード: 全て選択

ntfs-3g $MNTPRMS -o locale=ja_JP.UTF-8,umask=0,no_def_opts,noatime,rw,force 2>/dev/null
とする。

3:659行目付近

コード: 全て選択

mntfunc -t $PUPSAVEFS -o noatime /dev/$PUPSAVEDEV /mnt/dev_save

コード: 全て選択

if [ "$PUPSAVEFS" = "vfat" ];then
  mntfunc -t $PUPSAVEFS -o shortname=mixed,utf8,noatime /dev/$PUPSAVEDEV /mnt/dev_save
 else
  mntfunc -t $PUPSAVEFS -o noatime /dev/$PUPSAVEDEV /mnt/dev_save
 fi
としました。

修正した4.1.2-retro-JPのinitファイル
(元のファイルをバックアップしてからinitとリネームして下さい)
http://yon8844.googlepages.com/412retro ... fixed.init

そのinitファイルで作った4.1.2-retro-JP用initrd.gzファイル
(元のファイルをバックアップしてからinit.gzとリネームして下さい)
http://yon8844.googlepages.com/412retro ... .initrd.gz

詳しい使い方(導入方法)は説明を省略します(スミマセン)。

initrd.gzファイルの展開の方法(ビズアイユさんより):

コード: 全て選択

# zcat initrd.gz | cpio -i -d
再圧縮の方法(ビズアイユさんより):

コード: 全て選択

# find . | cpio -o -H newc | gzip -9 > ../initrd.gz
コマンドによる、ディレクトリからISOファイルを作成する方法(暇人さんより):

コード: 全て選択

# mkisofs -D -R -o [作成するISOファイル名] -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table [作成ディレクトリ]

以上です。
[Puppy4.1.2-retro-JP] EPSON Endeavor MT-3500
Celeron 533MHz 256MB
[Lupu-5.0.1 LiveCD + lang_support_ja-1.4.sfs] SOTEC Whitney System CR Board
Celeron 766MHz 512MB
アバター
暇人
記事: 2392
登録日時: 07/08/12(日) 23:33
お住まい: 埼玉県xx市並4
連絡する:

投稿記事 by 暇人 »

3:659行目付近

コード: 全て選択

mntfunc -t $PUPSAVEFS -o noatime /dev/$PUPSAVEDEV /mnt/dev_save

コード: 全て選択

if [ "$PUPSAVEFS" = "ntfs" ];then
  mntfunc -t ntfs-fuse  /dev/$PUPSAVEDEV /mnt/dev_save
elseif [ "$PUPSAVEFS" = "vfat" ];then
  mntfunc -t vfat -o shortname=mixed,utf8,noatime /dev/$PUPSAVEDEV /mnt/dev_save
 else
  mntfunc -t $PUPSAVEFS -o noatime /dev/$PUPSAVEDEV /mnt/dev_save
 fi
構文的に合ってる?
やっぱ間違ってる模様、立ち上がらない。
管理人見習い
NEC Express5800 S70/SR G6950 2.8GHz/1G
lenovo S10-3 AtomN450 1.66G/1G
暇人/貳馬力/2CV
アバター
暇人
記事: 2392
登録日時: 07/08/12(日) 23:33
お住まい: 埼玉県xx市並4
連絡する:

投稿記事 by 暇人 »

とりあえず

コード: 全て選択

if [ "$PUPSAVEFS" = "ntfs" ];then
  mntfunc -t ntfs-fuse  /dev/$PUPSAVEDEV /mnt/dev_save
#elseif [ "$PUPSAVEFS" = "vfat" ];then
#  mntfunc -t vfat -o shortname=mixed,utf8,noatime /dev/$PUPSAVEDEV #/mnt/dev_save
 else
  mntfunc -t $PUPSAVEFS -o noatime /dev/$PUPSAVEDEV /mnt/dev_save
 fi
と思ったら、grubがntfsに対応してないぜorz
前にwindows2000領域から立ち上げたのは、vfatだったのか....

grub2はntfsに対応している
grub4dosはntfsに対応している(↑)はこれを使用。
管理人見習い
NEC Express5800 S70/SR G6950 2.8GHz/1G
lenovo S10-3 AtomN450 1.66G/1G
暇人/貳馬力/2CV
アバター
暇人
記事: 2392
登録日時: 07/08/12(日) 23:33
お住まい: 埼玉県xx市並4
連絡する:

投稿記事 by 暇人 »

ntfs-3g の最新版はデフォでutf-8に対応した。

これを組み込んだinitrd.gzとgrub4dosでntfs領域からブート。
OK 日本語ファイル名が表示された!
最後に編集したユーザー 暇人 [ 09/01/26(月) 14:32 ], 累計 1 回
管理人見習い
NEC Express5800 S70/SR G6950 2.8GHz/1G
lenovo S10-3 AtomN450 1.66G/1G
暇人/貳馬力/2CV
アバター
暇人
記事: 2392
登録日時: 07/08/12(日) 23:33
お住まい: 埼玉県xx市並4
連絡する:

おっしゃ

投稿記事 by 暇人 »

vfatの対策と合わせればこの件は解決ですね。
実に幸せ。

ntfsに対応したgrubもisoにいれなきゃだめか。GRUB2とか
画像
http://nami4.dyndns.org/p_blog/resources/initrd.gz

検証が不十分なのでご注意下さい。
412のinitrd.gzベース、vfatにも対応済み(未検証)
管理人見習い
NEC Express5800 S70/SR G6950 2.8GHz/1G
lenovo S10-3 AtomN450 1.66G/1G
暇人/貳馬力/2CV
返信する