はじめに
Windowsの共有フォルダをFreeBSDマシンに「バックアップ」する方法について調査しました。
実際はBuffaloのHD-LAN120というNASの共有フォルダをSMBプロトコルを使ってFreeBSDのローカルディスクにバックアップを取ります。
HD-LANはLinux上でsambaが動作しており、コードページはSJISになっています。
結論
mount_smbfsではcpでもtarでもバックアップは取れるけど、書き戻すときに日本語のファイル・フォルダが正常に書き込まれず途中でエラーになってしまうケースが多々あります。
smbtarを使うと正常にバックアップ・リストアができました。
smbtar使用方法
以下の条件の共有フォルダをまとめてFreeBSD上の適当なディレクトリにtar形式で書き込みます。
| ホスト名 | mimi |
| ユーザ名 | hpuser |
| パスワード | (なし) |
| 共有名 | degicame |
| フォルダ名 | 2003 |
実行コマンド形式は以下の通りです。
| $ smbtar -v -s mimi -x degicame -d 2003 -t /share/backup/degicame2003.tar |
なんとなくパラメータは分かると思います。-vはつけなくても構いませんがこれがあると実行中の状況が画面表示されます。
逆に書き戻す時は以下の形式で実行します。例は\\mimi\degicame\restoreに書き戻す場合です。
| $ smbtar -r -v -s mimi -x degicame -d restore -t /share/backup/degicame2003.tar |
(参考)mount_smbfs使用方法
mount_smbfsはWindowsの共有フォルダをFreeBSDのファイルシステムとしてマウントできる便利なコマンドです。
前項の共有フォルダを/backupにマウントする方法を以下に示します。/backupディレクトリは先に作成しておいてください。
| # mount_smbfs -N //hpuser@mimi/degicame /backup |
-Nオプションはパスワードを聞いてこないようにするものです。パスワードがかかっている共有フォルダの場合はこのオプションを削って、コマンド実行後にパスワードを入力してください。
なお、mount_smbfsはiconvのコード変換ライブラリが組み込まれており、-E SHIFT-JIS:EUC-JPと指定すればFreeBSD上からも日本語のフォルダ・ファイル名が正しく表示されるはずなのですが、家の環境ではコアダンプしてしまいます。
どちらにしても、SJISの共有フォルダをマウントしてコピーしても正常にコピーできない場合があるので使えません。
利用用途しては、FreeBSDのファイルをtar形式でバックアップする時などに使えそうです。
おわりに
もしかしたら、カーネルオプションにLIBICONVが入っていないと、mount_smbfsで-Eオプションが正常に動作しないのかもしれません。また機会があればカーネルを作り直して試してみたいと思います。
投稿者 yotan : 2004年2月 3日 00:00| トラックバック(0)※コメント内にURLを書くとSPAM扱いとなります。2ch風に表記はOKです


