Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.4952】の中の記事をすべて表示しています

【No.4952】のスレッド
08/01/21(月) 03:04:44 投稿者[木箱] [No.4952]のスレッド内
【No.4952】 タイトル[玄箱HGのHDDを玄箱PROでマウントすると] この記事がスレッドの最初です
機種:玄箱HG・同PRO
ディストリビューション:両方とも標準

玄箱HGがおかしくなったので、使っていたHDDを玄箱PROで読む羽目になりましたが、
sambaを使って窓機にマウントしたところ、日本語のファイル名が文字化けして使い物

なりませんでした。telnetやシリアルコンソールでファイル名を確認すると、EUCでは
文字化け、SJISでは正常だったので、ファイル名がSJISで記録されているためのよう
です。

玄箱HGのsmb.confは

client code page = 932
coding system = sjis

になっているので、玄箱PROのsmb.confを

dos charset = cp932
unix charset = cp932

にすればできそうな気がするのですが、dos charsetやunix charsetをcp932、
eucJP-ms、utf-8のどれにしてもうまくいきませんでした。
本来は
クライアントに渡すコードを設定するdos charsetはcp932、
Linux(玄箱PRO)側のunix charsetはeucJP-ms
にしますが、
玄箱PRO側のファイル名がSJISなので、unix charsetをcp932にしても、逆にdosとunix

両方をeucJP-msにしてもうまくいきませんでした。

試しに玄箱PROにではなく窓機に接続してExt2fsdで直接マウントしたところ、標準設
定で
文字化けしませんでしたが、作業しているうちに他の原因で動作がおかしくなって実
用に
なりませんでした。いくつかのファイルを取り出すくらいならできそうです。
Ext2fsdは英語版ソフトなので、標準設定では日本語の配慮はされていなさそうですが...
KNOPPIX(EUC)やMacOSX(unicode)でマウントすると化けたような気がします。

このままのシステムで、何かうまい方法ありませんか?ご教示下さい。
どなたか試された方いらっしゃいませんか?

08/01/21(月) 12:55:54 投稿者[doi] [No.4952]のスレッド内
【No.4956】 タイトル[Re: 玄箱HGのHDDを玄箱PROでマウントすると] 【No.4952】に対する返信
既に遅い話でしょうが、私のsamba設定はこんなのです。
[global]
dos charset = cp932
unix charset = eucJP-ms
display charset = eucJP-ms
すなわち、窓機からsambaへの書き込みはすべてeucに変換されます。
また、玄箱初代(Vine4.2)ですが、システムのcharsetはデフォルトで
eucにしてあります。2byte文字でファイルを書き込んでいるディレクトリを
lsしたときに既に文字化けしないでしょうか?
一旦、窓機にファイルを吸い上げて、玄箱proのsamba設定をシステムに
沿うような形で設定。書き込みする。と言うような事になりそうですが、、、

もしも、sjisで確定で在れば、そのファイル名をまずは確認してみては
いかがでしょう?
ls | nkf -e
そして正しいファイル名が解れば、
cp -p `printf "(正しいファイル名)" | nkf -s ` (正しいファイル名)
とすることで、sjisで書き込んでしまったファイルをシステムのcharset
に変換できるかと思いました。

一応、私のサーバでsjisでファイルを作り、復元してみました。
-bash-2.05b$ touch `printf "あいうえお" | nkf -s`
-bash-2.05b$ ls
??????????
-bash-2.05b$ ls ?????????? | nkf -e
あいうえお
-bash-2.05b$ cp -p `printf "あいうえお" | nkf -s` あいうえお
-bash-2.05b$ ls
??????????
あいうえお

シェルスクリプトでも作ってみればいいのですが、何か役に立つと良いなと
思っています。

08/01/22(火) 10:31:51 投稿者[木箱] [No.4952]のスレッド内
【No.4958】 タイトル[Re: 玄箱HGのHDDを玄箱PROでマウントすると] 【No.4956】に対する返信
レスありがとうございます。

> 既に遅い話でしょうが、私のsamba設定はこんなのです。
> [global]
> dos charset = cp932
> unix charset = eucJP-ms
> display charset = eucJP-ms
> すなわち、窓機からsambaへの書き込みはすべてeucに変換されます。

本来、設定はこうすべきですね。
玄箱・HGは2.xですが、同様の設定ができるはずですが、
どうしてSJISなんでしょうね?
netatalk(Macとのファイル共有)との関係でもなさそうですし...

> また、玄箱初代(Vine4.2)ですが、システムのcharsetはデフォルトで
> eucにしてあります。2byte文字でファイルを書き込んでいるディレクトリを
> lsしたときに既に文字化けしないでしょうか?

その通りです。EUCでは文字化け、SJISではちゃんとしています。

> もしも、sjisで確定で在れば、そのファイル名をまずは確認してみては
> いかがでしょう?
> ls | nkf -e
> cp -p `printf "(正しいファイル名)" | nkf -s ` (正しいファイル名)
> とすることで、sjisで書き込んでしまったファイルをシステムのcharset
> に変換できるかと思いました。

確かにできそうな気がしましたが、送信=受信=EUCにしましたが、telnetのせいか、
Flash bootのせいなのか、EUCコードで送った文字列だけが抜け落ちていました。
AあBCいう12え3お と送ると、ABC123 しかエコーバックされませんでした。
送信=受信=SJISにして、
cp -p (正しいファイル名) `printf "(正しいファイル名)" | nkf -e`
でもSJISの字だけ抜け落ちてダメでした。
これはまた別の原因ですね。シリアルコンソールならできますかねぇ?
KNOPPIXでテストしたらうまくいきました。

> シェルスクリプトでも作ってみればいいのですが、何か役に立つと良いなと
> 思っています。

それから調べたところ、samba用にsmbchartoolというツールがありました。
ズバリこのためのツールでした。
ところが、コード変換はできlsでは正常になりましたが、sambaでは依然として
化けたままです。
コードが変わったので化け方は変わりました。

08/01/22(火) 13:42:15 投稿者[doi] [No.4952]のスレッド内
【No.4959】 タイトル[Re: 玄箱HGのHDDを玄箱PROでマウントすると] 【No.4958】に対する返信
>レスありがとうございます。
>
>> 既に遅い話でしょうが、私のsamba設定はこんなのです。
>> [global]
>> dos charset = cp932
>> unix charset = eucJP-ms
>> display charset = eucJP-ms
>> すなわち、窓機からsambaへの書き込みはすべてeucに変換されます。
>
>本来、設定はこうすべきですね。
>玄箱・HGは2.xですが、同様の設定ができるはずですが、
>どうしてSJISなんでしょうね?
木箱さん、2.xってsambaのバージョンですか?2.x台は国際化対応用の
パッチや修正用のマイナーバージョンがあるので、3.x台がおすすめです。
私もsamba系のスペシャリストというわけではないですが、2byte系文字の
問題は3.x台でかなり改善されていて悩みはぐっと減ると思います。

>それから調べたところ、samba用にsmbchartoolというツールがありました。
>ズバリこのためのツールでした。

こういうツールがあるんですね。勉強になりました。

08/01/22(火) 21:29:43 投稿者[木箱] [No.4952]のスレッド内
【No.4960】 タイトル[Re: 玄箱HGのHDDを玄箱PROでマウントすると] 【No.4959】に対する返信
いろいろやってみたところ、unixをutf-8にしたときだけ、窓機からきちんとアクセス
できました。
別のディレクトリにファイルを作ったり窓機から入れたりして試しました。
元のディレクトリのファイル名はEUCなので化けています。
0x80-0xfcが化けているようです。
ファイル名にCAPやHEXが使えれば解決しそうですが、CAP/HEXは3.xでも使えましたっけ?

> 木箱さん、2.xってsambaのバージョンですか?2.x台は国際化対応用の
> パッチや修正用のマイナーバージョンがあるので、3.x台がおすすめです。
> 私もsamba系のスペシャリストというわけではないですが、2byte系文字の
> 問題は3.x台でかなり改善されていて悩みはぐっと減ると思います。

2.xは玄箱HG(多分玄箱も)に標準で入っていたもので、PROの標準は3.0.21cです。
もちろん3.xを使いたいのですが、この問題で躓いています。
Flash bootのせいでしょうかねぇ?

08/01/24(木) 23:08:20 投稿者[木箱] [No.4952]のスレッド内
【No.4961】 タイトル[Re: 玄箱HGのHDDを玄箱PROでマウントすると] 【No.4960】に対する返信
ファイル名をEUCからUTF-8にリネームしてみましたが、窓機ではファイル名がおかしく
なっていました。
仕方ないので、lsでリストを取得してから、通し番号にリネームして窓機にコピー、
窓機で元のファイル名にリネームして凌ぎました。

今回は目的を果たしましたが、引き続き研究してみます。
doiさんどうもありがとうございました。

どうやら、主な原因はFlash bootによるファイル不足にあるようです(確かに、
1バイト文字だけのファイル名ならコード変換もなく問題ないワケですが)。
かといってHDD bootにしようにも、どちらのSATAでもCF+SATA-CFが動かないので困って
いますが(MRAMのSSDを待つしかないかな?単にCFとの相性かな?)。

mtd_deviceのサイズをHDDインストールに支障ない程度に削ってrootfsを増やしても
問題ないでしょうかねぇ?