pup_save*.2fs あるいは pup420*_.sfs が vfat あるいは ntfs上にあるとき
そのパーーティションの日本語ファイル名が vfatでは文字化け、
ntfsではファイルがそもそも見えなくなります。
この問題はパピーリナックスの以前のバージョンも同様です。
さきの記事で報告したように、
vfatの場合は initrdを改造することで解決可能ですが、
ntfsの場合はちょっとやっかいそうです。
これまでに分かったことだけを報告しておきます。
パピーリナックスでは ntfsのマウントに ntfs-3gを使ってます。
LANG=ja_JP.UTF-8 を設定したり locale=ja_JP.UTF-8 のオプションを追加したりしましたが
いずれもダメでした。
そもそもPuppy Linux 4.2.0は 4.2.1などとは異なる
ntfs-3gの新しいバージョン 2009.2.1 が採用されており
これらのオプションがなくても日本語ファイル名の読み取りには問題ないはずです。
ところが...
Puppy Linux 4.2.0 の本番で使われる /bin/ntfs-3g と、
initrdの中に組み込まれている ntfs-3g とは別物のようです。
これらはバージョンが異なるとともにファイルサイズも桁違いに異なります。
本番用 - ファイルサイズ: 32kB、バージョン 2009.2.1
initrd版 - ファイルサイズ: 326kB、バージョン 1.2812
initrdにあるものは必要なライブラリを組み込んでいるために大きくなっているものと思われます。
しかもそのために、たとえ nls_utf8 モジュールが存在していても、それを使えない。
なので -o locale=ja_JP.UTF-8 も効かないのだと、想像します。
たぶん initrdの中の ntfs-3g を本番用のものと差し替えても動かないでしょう。
けっきょく新しいバージョンの ntfs-3g を initrd用に
必要なライブラリを組み込んだ形でコンパイルすることが必要なのかなと思います。
それができれば localなどのオプションも不要のはず。
私が調べ、考えたことはここまでです。。
誰か興味と根性のある方、この続きをやってみません?