NAS(ファイルサーバ)で最も使われているファイルフォーマットの1つとして、XFSがあります。
しかしながら、Windows OSからNASを使った時、Windowsの「ファイル名」の特殊文字エンコード問題によって、単純にLinux OS(XFSフォーマットの読み書き可能な)で読みとろうとしても、ファイル名やフォルダ名の日本語が文字化けします。またXFSをマウントするためのLinuxオプションには、iocharsetやcodepageオプションが使えないようです(手持ちにたまたまあったKNOPPIX Edu 6(東北学院大学提供)を使用)。従って、別の手段との組み合わせが必要です。少し面倒なので、ここで纏めて見ることにしました。
必要なもの
- XFSフォーマット対応のLinux(今回は、KNOPPIX Edu 6を使用)
ISOファイルをダウンロードし、CD-ROMを作成しておきます。 - sambaシステム(KNOPPIXには標準搭載されています)
- USBメモリやHDD(救出データの保存用)
- Windows PC
※ものによっては内蔵キーボードやマウスを認識しない場合があります。
※その場合には外付けUSB マウスやキーボードを用意してみて下さい。
KNOPPIXの起動
起動については他のサイトにいろいろ情報がありますから、割愛します。
分からない場合には、「外部メディアによるウィルス流布の防止策」ページの末尾「Appendix: 外部メディアのチェック方法」のPDFファイルをご覧下さい。
救出元ディスクの確認
- NASのバックアップディスクをKNOPPOX起動マシンに差します。
- すると特に問題無く、「Hard Disk [sdb1]」のような形でデスクトップに表示されているはずです。
- ここを開くと、バックアップ日時をフォルダ名とした「フォルダ」が並んでいるはずです。
- 最新日付のフォルダを開いて、バックアップしたいフォルダやファイルをみてください。
- ファイル名やフォルダ名が文字化けしているなら、次の処置「文字化け対策」が必要です。
※すべてASCII文字(英数字等)であるなら、「文字化け対策」はスキップして、「データの救出」へ進んでください。
文字化け対策
問題はWindowsがファイル名にShift-JIS(cp932)文字コードを使っているのに、内部処理にUTF-8を使っていて、Windowsがファイル表示時に適宜変換していることに問題があります。Linuxではその自動判別は出来ないので、FATやNTFSであれはmountオプションに「iocharset=utf-8,codepage=cp932」を指定することになります。しかし残念ながらXFSにはそのオプションが使えないようです(使えたら教えてください….)。
したがって、内部的にSAMBAを起動し、このファイル共有システムを使ってWindowsがやるファイル名の文字コード変換を行うことになります。
つまり、
- LinuxにてXFSディスクマウント→SAMBAでXFSディスクフォルダを共有→共有フォルダからデータ救出
となります。ネット越しにもできますが、今回はLinuxだけで完結させます(ネット利用もしない)。
※できるだけマウス操作を基本で考え、コマンド入力を最小限に抑えるやり方で記述します。
Step 1. SAMBAサーバの起動まで
- バックアップディスクにアクセスできることを確認し、それが「Hard Disk [sdb1]」だと過程します。
※すなわち、「/mnt/sdb1」フォルダがそのHDDドライブの接続先とします。 - Kメニューの基本ツールにある「Konsoleターミナル」を起動します。
- emacs /etc/samba/smb.conf とタイプしてEnterを押します。
- いわゆるメモ帳みたいな画面が立ち上がるので、↓などで移動しつつ、次を変更してください。
unix charset = UTF-8
display charset = UTF-8
dos charset = CP932そしてさらに下の方にある、下記の先頭のセミコロン(;)を消して、pathの変更をします。[cdrom]
comment = Samba server’s CD-ROM
writable = no
locking = no
path = /mnt/sdb1
public = yes - そして、上部「File」メニューから「Save (current buffer)」を選択し、保存します。
- 次にターミナル画面に戻り、「/etc/init.d/samba start」とタイプし、Enterを押します。
- これでSAMBAサーバの起動ができました。
step 2. ファイルへのアクセス
- デスクトップにある「ゴミ箱」を開きます。
いずれかのフォルダを開いて下さい(なんでも結構です) - するとKonquerorアプリでフォルダが見えるはずです。
- 上部「場所」の右側をクリックして「smb://127.0.0.1/cdrom」とタイプしてEnterを押します。
- Step 1でSAMBAサーバが起動していれば、データ救出したディスクの中身が見えるはずです。
- さらにファイルやフォルダが文字化けしていないことを確認してください。
データ救出
- データ保存先のUSBメモリやHDDを挿入します。
- デスクトップに「Hard Disk [sdc1]」のような形でディスクが見えるようになるはずです。
※FATかNTFS(Windowsフォーマット)を使ってみてください。 - マウスでHard Diskのアイコンの上で、右クリック、「Change read/write mode」を選択し、書き込みできるようにしてください。
※標準では読み取り専用モードになっているためです。 - 後は、先ほどのバックアップディスクのフォルダを、このデータ救出用ディスクにドラッグ&ドロップするなどして、コピーしてください。
- 終了したら、またデータ救出先のディスクのアイコンを、右クリック、「マウントを解除」を選択しておきます。
- そして、左下のKメニューから「ログアウト」を選択し、「コンピュータを停止」を選択して、KNOPPIXを終了させます。
これで完了です。
2013年3月25日 情報処理室長・木谷