プロが教えるわが家の防犯対策術!

最近knoppixからデータを外付けHDDに写し、windowsで確認すると中の日本語のファイルが文字化けしてしまうという問題が起きました。
再度knoppixで中身を確認するとちゃんとした日本語の名前になっていました。

よくよく調べるとknoppixとwindowsの言語が違う?のが原因ということがわかりそれを解決できるツール「convmv」までたどりつきました。

しかしここからの使用方法と手順が調べてもうまくいきません。
まずダウンロードしてファイルを展開しても実行できるようなファイルが無い。convmvの実行の方法がわからない。
とスタート地点で躓いています。
そもそもこのconvmvはwindows上で起動するのかknoppix上で起動するのかさえわかっていません・・・。

同じような作業をしたことのある方や、やり方のわかる方。

申し訳ありませんが、ご教授願います。

A 回答 (15件中1~10件)

えっと、問題がどこでどう起きたか?そこから考えてみましょう。



簡単な話で、日本語を記録する上で、数種類の文字コードがあります。
同じ文字でもコード表が違えば異なる番号が与えられます。
(半角英数や一部の記号は同じ番号が維持されます)

この文字コードには古くはJIS,ShiftJISがあり、UNIX系OSではEUC-JPが使われていました。
その後、Unicodeという規格によって、各国個別に整備された文字コードを
統一したコード体系として運用するという方針に移行しました。

その結果、現在ではWindowsXP,Vista,7ではUnicodeが標準ですし
MacOSXでも、Linuxでも多くのディストリビューションでUnicodeが標準です。

KNOPPIXも6.4.4であればUnicodeになっているはずですが…
なんらかの原因で、KNOPPIXでWindowsのパーティションからデータをコピーする際に
UnicodeからUnicodeでのコピーが行われなかったと考えられます。

ただ、そういう条件なので、正確な状況はわかりません。
たとえば、Windows98,Meのパーティションからであれば
普通に文字コードの違いが生じると考えられます。

あるいは、外付けHDDをKNOPPIXがマウントする際に
Unjcode以外の文字コード設定でマウントしたという可能性もあります。
(普通無いはずですけど、KNOPPIXは使わないのでわかりません)


こういったファイルシステムへの適切な文字コード設定がなされなかった場合に
ファイル名を目的の文字コードに変換するのがconvmvの役割で…
またnkfは、そのファイル内の情報についての文字コード変換を行ないます。


convmvは、強力で便利なツールです。私もEUC-JP仕様のLinuxから
Unicode(UTF-8)仕様のLinuxに移行する際に、convmvでのファイル名変換を施しています。

ただ、このツールで重要なオプションが--notestです。
convmv -r -f sjis -t utf8 * --notest
というオプションは、指定したディレクトリー下のファイルのすべて…
この場合は、カレントディレクトリー下のすべてのファイルが対象となり

そのすべてをShiftJISで記録されていると指定して、UTF-8へと変換しファイル名を変更します。
ですから、この前後でファイル名を見れば変換されたかどうかがわかります。

ただし、これが適切な変換であるかは別問題です。


ですから、正しい使い方としては、最終的にUnicodeのファイル名として認識するためであれば
マウントオプションでiocharset=utf8を指定した上でマウントし…
--notestオプションをつけずに変換を行ないます。

notestはつまり、実際にファイルシステムに書きこむというオプションですから…
誤った設定で処理すれば、当然ファイルシステムの記録が混乱する恐れがあります。

--notestオプションを付けなければ、ファイル名が表示されます。
それが意図通りに表示されているのであれば、同じオプションにnotestを付けて
実際の処理を行なうという流れです。

既にやってしまったのであれば、それが正しかったことを祈りますが…
そうでなかった場合は、一度元の状態に戻し
その上で再度の変換を試みることになります。

ただし、不適切な変換で、不適切なファイル名が発生している恐れもあります。
その場合、完全に元のファイル名まで変換復元できるのかは知りません。

本来であれば、notestを付けずに行なうべきでしたし…
ln -sでシンボリックリンクを使ったシミュレーションも考えられたと思います。

マウントオプションに関する適切な設定がわからない場合は
同じファイルを作業用の3つのディレクトリーにコピーし

それぞれを異なるオプション指定で変換してみて…
それを、改めてWindowsで表示させることで正しい変換オプションを探せたと思います。

しかし、一度誤った変換を行なっているとしたら、問題はより複雑だと思います。
    • good
    • 0

> >これが、バックアップされたファイルが入っているパーティションですね。


> バックアップしたファイルが入っているのは別の外付けのHDDになります。
当方の質問に、本当に理解して回答しているとは思えません。

バックアップしたファイルの中のデータが文字化けしているのですね。
文字化けしたファイルをnkfプログラムで読み取って、文字化けを修正するのが目的なのですね。
そのためには、文字化けしたファイルが、Windows VISTAで読めないといけません。
そのためにその文字化けしたファイルが格納されているパーティションは、WIndowsで読めないといけません。
そのパーティションは、どんなフォマットですかと質問しているのです。

だんだんと、testdiskで失敗したのと同じような経過をたどってるようです。
目的は、何か、ではどうすればよいか、もう一度確認して今度は失敗しないようにして欲しいものです。
    • good
    • 0

> /dev/sdc1 1 182401 1465136001 c W95 FAT32 (LBA)



FAT32でフォマットされたパーティションですから、Windowsから読めますね。
よって、Windows VISTAからのWindows用のnkfプログラムを稼動して、コード変換ができるということです。
これが、バックアップされたファイルが入っているパーティションですね。

LINUX用のnkfプログラムはいらないことになります。

この回答への補足

現状は
convmvのインストールが終わる

$ convmv -r -f sjis -t utf8 * --notest をする

質問にて確認中

です

補足日時:2011/08/01 21:45
    • good
    • 0
この回答へのお礼

>FAT32でフォマットされたパーティションですから、Windowsから読めますね。
はい。問題ありません。

>これが、バックアップされたファイルが入っているパーティションですね。
バックアップしたファイルが入っているのは別の外付けのHDDになります。

>LINUX用のnkfプログラムはいらないことになります。
これで大丈夫でしょうか?

お礼日時:2011/08/01 21:42

> ええと・・・ebu2となってます(あってない気がする・・・)


ebu2というファイルシステムは知らないですね。
fdisk -l
で見てますか。
何か変ですよ。
    • good
    • 0
この回答へのお礼

>fdisk -lで見てますか。
全然違うので見てました 
Device Boot Start End Blocks Id System
/dev/sdc1 1 182401 1465136001 c W95 FAT32 (LBA)

お礼日時:2011/08/01 20:50

knoppix6.4.4日本語版じゃうまくいったんだけどなぁ。



$ cd ..
はやめて直接コピー
$ sudo cp -r convmv /usr/bin
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
sudo cp -r convmv /usr/binをしてconvmvを使用できるようになり
$ convmv -r -f sjis -t utf8 * --notest を実行するとReady!と表示されました!
これで外付けHDDの中身も治っているのでしょうか?

お礼日時:2011/08/01 20:31

knoppixでバックアップした時に、単純にcpコマンドでコピーしただけならばファイル内の文字コード変換は行われません。


テキストファイルのバックアップの際にnkfで変換しながらコピーした場合には文字コードが変換されているでしょう。

今回の場合は「ディレクトリエントリのファイル名の文字コード」だけの問題だと思いますが…。
# Linux詳しくない人がnkf等で文字コード変換しながらコピーはしないでしょう。

文字コード変換がされている場合、たいていはファイルサイズが変わります。
コピー前とコピー後でファイルサイズが違ってたりしませんか?
# 条件によっては文字コードが変更されてもファイルサイズの変動が見えないかも知れませんが。
    • good
    • 0
この回答へのお礼

>今回の場合は「ディレクトリエントリのファイル名の文字コード」だけの問題だと思いますが…。
# Linux詳しくない人がnkf等で文字コード変換しながらコピーはしないでしょう。
ああ、なんだが深刻なバグとかじゃなさそうでよかった・・・
文字コード変換など一切せず、バックアップは外付けHDDにただコピーしただけです。

>文字コード変換がされている場合、たいていはファイルサイズが変わります。
うう~ん・・・元のサイズがどれだけだったか思い出せませんが・・・なんだか小さくなった気がします。

お礼日時:2011/08/01 19:52

簡単に言いますと、KNOPPIX6.4.4DVDでパックアップを採りました。


それは、どこに採ったのですか。
そのパーティションのフォマットは何ですか。
fat16かfat32かntfsかext2/ext3/ext4ですかということです。
それによっては、Windowsでは読めない、ext2/ext3/ext4は、KNOPPIXで処理しましょう。
そのためには、LINUX用のnkfを別に用意しないといけません。
    • good
    • 0
この回答へのお礼

>簡単に言いますと、KNOPPIX6.4.4DVDでパックアップを採りました。それは、どこに採ったのですか。
外付けHDDにです。
>そのパーティションのフォマットは何ですか。
ええと・・・ebu2となってます(あってない気がする・・・)
>LINUX用のnkfを別に用意しないといけません。
用意してみましたが、どう使うものかまったくわかりません・・・。

お礼日時:2011/08/01 19:50

> つまり今使っているwindowsにLINUX用のnkfというものをダウンロードすれば治るということでしょうか?


違います。
ファイルシステムにより、ext3/ext4にフォマットしたパーティションにバックアップを採っていれば、それを読めるのは、Windowsでは読めません。
よってLINUX(今回の場合KNOPPPIX6.4.4DVD)からどうしても読む必要があります。
そのためには、LINUXで稼動できる、LINUX用のnkfプログラムをKNOPPIX6.4.4DVD環境で稼動するということです。

> つまりこれらの操作をすれば治るということでよろしいのでしょうか?
そうです。
nkf -s infile > outfile
このコマンドで、infileという入力ファイルは、文字化けのファイルで、これは自動的に内部コードを見分けて、outfileにシフトJISコードに変換されたものが、できるということです。

ただし、ファイルが大量の場合は、いろいろな手で一括して変換させる技術もあります。

LINUX用nkfは、下記でダウンロードできます。
http://sourceforge.jp/projects/nkf/releases/

nkf-2.1.1.tar.gz
の解凍は、
tar -xzf nkf-2.1.1.tar.gz

使い方等は、解凍後、「READ**」等に記載されています。
    • good
    • 0
この回答へのお礼

>LINUX用nkfは、下記でダウンロードできます。
ダウンロードしてみました。
回答した中身からvistaと書いてあるものをクリックしてみましたが反応がありません・・・。
同じ中にあったメモ帳を見てみましたが・・・正直ちんぷんかんぷんです・・・。
知識がなくてすみません。

お礼日時:2011/08/01 19:47

KNOPPIXでバックアップした際、ファイルシステムは、FAT16かFAT32であれば、nkfプログラムが有効ですが、もし、ext3/ext4のファイルシステムであれば、LINUX用のnkfをダウンロードする必要があります。

    • good
    • 0
この回答へのお礼

>KNOPPIXでバックアップした際、ファイルシステムは、FAT16かFAT32であれば、nkfプログラムが有効ですが、もし、ext3/ext4のファイルシステムであれば、LINUX用のnkfをダウンロードする必要があります。

つまり今使っているwindowsにLINUX用のnkfというものをダウンロードすれば治るということでしょうか?

お礼日時:2011/08/01 15:49

一般的に、WindowsとLINUXでは、内部文字コードが異なるため、ファイル全体を変更させたい場合は、nkfがよいようです。



LINUXで書かれたテキストイメージの場合は、改行コードが異なるためにどうしてもうまくいかないときもあります。
どんなファイルが多いのかによります。
ワードや、エクセルで書かれたファイルであれば、nkfが有効です。

ただ、今回の場合だと、元は、Windowsのファイルをバックアップしたということなので、そのままnkfプログラムで返還した方が簡単に元のWindowsファイルに戻ると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!