お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-02-02 01:05:54

actys
新しいメンバ
登録日: 2010-08-19

無効なエンコーディング

buffaloのLinkStationが故障し、LAN上でアクセスできなくなってしまいました。
ハードディスクのデータを救出して、windowsでも認識できるファイル形式のハードディスクに移したいのですが・・・


中のハードディスクを取り出し、ubuntu10.04をインストールしたPCにUSBで接続してみたところ、ハードディスクの中のフォルダやファイルの名前が「���� (無効なエンコーディング)」のようになっているものがあり、開くことができません。


ハードディスクの中のデータはwindowsで作成したもので、元々のファイル名(フォルダ名)がアルファベットで作成してあるものは、表示も正常でファイル(フォルダ)も開くことができます。日本語(おそらく2バイト)のファイル(フォルダ)名の名前が上記のようになってしまいます。名前を「1」や「a」などに変更すれば開くことが出来るのですが、ハードディスクの内のファイル数が膨大なため、全て変更して移行することは不可能です。

何か正常なファイル名を表示させる方法は無いでしょうか?

LinkStationの型番はHD-H250LANです。

https://forums.ubuntulinux.jp/viewtopic.php?id=854
こちらを参考にして /etc/samba/smb.conf に
[global]
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8

を追加してみましたが、変化ありませんでした。その他の内容に関しては理解できませんでした。
どなたか、良い解決方法を教えて頂けないでしょうか?

オフライン

 

#2 2011-02-02 02:00:12

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: 無効なエンコーディング

actys 様へ.

samba を再起動,あるいは PC を再起動してみたでしょうか?

samba は設定を書き換えるだけでは,設定が反映されなかったと思います.
つきましては,端末から

コード:

$ sudo service smbd restart
$ sudo service nmbd restart

※nmbd の行は必要ないかもしれませんが,念の為

と入力して実行するか,PC を再起動してみてください.
※ PC の再起動でも samba が再起動されるので,設定が反映されます.

申し訳ありませんが,私からアドバイスできることはこの程度です.
もし,解決できなかった場合は,別の解決策を識者の方に提案して戴くしかありません.

オフライン

 

#3 2011-02-02 08:57:32

weyk
メンバ
登録日: 2009-04-03

Re: 無効なエンコーディング

 この方法の肝は、2点。
・sambaの設定で、UNIXが使用しているエンコードの設定を、本来正しいはずのUTF8からCP932に変更してしまう(NASから取り出したHDDに合わせて設定する)こと。
・ファイルへのアクセスは、設定を行ったパソコン(Ubuntuが起動している)ではなく、そのパソコンを経由してMS-Windowsのパソコンからアクセスすること。
です。以下のスレッドが該当する話題ですね。
https://forums.ubuntulinux.jp/viewtopic.php?id=10507
なので、
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8

dos charset = CP932
unix charset = CP932
display charset = CP932
と設定する必要がある・・・・ということかと思います(未確認。ほんとに全部かえる必要があるのか不明。)
※この設定を行った場合、NASから取り出したHDD以外のファイル共有は文字化けします。このUbuntuへのファイル共有から他のファイル操作をしないよう注意が必要です。

なお、
・MS-Windowsから接続していたNASを、Ubuntuから接続したら文字化けした。
・NASの中のHDDを直接Ubuntuに接続したら文字化けした。
は、別の話しになります。今回は後者になります。
# 参照した https://forums.ubuntulinux.jp/viewtopic.php?id=854 は、前者の話になります。そのため、うまく行かなかった・・・ということなのかと思います。

最後ににですが・・・
この設定で正しく見えるようになるかどうかは、個々のNASの製品や出荷時期によって異なる可能性があります。そのため、設定そのものは同じにしても、うまく行かない可能性もあります。

オフライン

 

#4 2011-02-02 18:42:02

Crush
メンバ
登録日: 2009-02-10

Re: 無効なエンコーディング

なんか話が混ざっているような。
少なくとも混ざってないのは、該当NASが、samba2由来のため、文字コードがCP932ということ。
で、アプローチとしては、文字を変換してしまうか、擬似的に正しいコードをはき出すようにsambaサーバを構築し、設定で同じような動作を作ること。
更に後者の場合、別に他の端末は必要有りません。

https://forums.ubuntulinux.jp/viewtopic.php?id=854
は「生きてるLinkstationのマウント」で、今回は本体が死んでしまった様なので別の話題です。
ただ、これもずいぶんと前の物のようで、利用できないです。
https://forums.ubuntulinux.jp/viewtopic.php?id=10427
生きてるsamba2サーバに今のUbuntuからマウントする場合は上記の方法でいけるようです。
但し、『今回はサーバ側は「死んでいる」わけですし、共有したいのではなく、ファイルを取り出したいので、話が違います。』

Windows機があって、そちらで作業ができるようなら、
https://forums.ubuntulinux.jp/viewtopic.php?id=10507
にあるとおり、
http://d.hatena.ne.jp/lamuu/20060810/1155221836
ここで、Ext2IFSで文字コードを変換してマウントできる実績が示されています。
結局その中身を使うのがWindows機なら、インストールして直接吸い上げてしまうのが無難な気はします。読み書きするのがWindowsになるわけですから、その方が問題が発生する要素は低減できます。
Ubuntuを利用しているならsambaサーバを構築して、設定をあわせてしまえば、「LinkStationのように」動くわけですが、直接アクセスすると化けてしまいますので、自分自身のsambaサーバをマウントすれば、sambaを経由してHDDを参照することになりますので、別に他のマシンが必要と言うことは無いです。
上の方は別マシンからアクセスしてしまったようですが、結局「どうやってそれを触るか」なので、直接じゃなくて、プログラム(今回はsamba)を経由すれば外から必ずしもアクセスする必要は無いです。

一部のLinkStationはパーティションのマジックナンバー違ってた気もするけれど・・・化けてもマウントできるなら多分大丈夫だと思います。

オフライン

 

#5 2011-02-09 23:42:52

actys
新しいメンバ
登録日: 2010-08-19

Re: 無効なエンコーディング

hellfire様、weyk様、Crush様 報告が遅くなって申し訳ありません。
おかげさまで、ファイル名を正常に表示させ、取り出す事ができました。

作業内容は、
①ハードディスクをUSBでUbuntu PCに接続。
②Ubuntuにsambaをインストールして、LAN上のwindows PCからこのハードディスクを見れるように設定。

この段階で、windowsPCからハードディスクを見ると、#1の時とは別の状態で文字化け(アルファベットと記号の羅列)しているが、「無効なエンコーディング」がファイル名に付かなくなり、フォルダやファイルを開くことは出きるようになった。

③/etc/samba/smb.conf に
[global]
dos charset = CP932
unix charset = CP932
display charset = CP932  を追加。

④端末から
コード:

$ sudo service smbd restart
$ sudo service nmbd restart

を行ったところ、ファルダ名もファイル名も正常に表示されるようになり、開いたり、取り出したり出きるようになりました。

ご教示頂きました皆様、ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB