メインで使っている Windows マシンのファイルバックアップに外付けハードドライブを使っている。手元に余っていた 160GB IDE ドライブを安物エンクロージャに納めた自作ドライブ2基なのだけど、いまいち使い勝手が良くない、というか動作に不安を感じている。インターフェースは USB 。パソコンに接続してもドライブはすぐに認識されず暫らくアクセスランプが点灯しっ放しとか、その状態でパソコンをシャットダウンしたり、ドライブ上のファイル操作(ディレクトリ削除など)を中断すると、結構安易にファイルシステムが破損したりとか。これまで2度ほど再フォーマットを余儀なくされたことがあった。
昨晩もメインマシンに接続してバックアップ作業をしていたのだけど、ドライブ上の古いディレクトリを丸ごと削除しようとしてあまりに遅いので中断したら、どうやらファイルシステムが破損した模様。ドライブにアクセスに行くと「フォーマットされていません」と Explorer がメッセージを表示する。ドライブは一応 Maxtor 製だけど安物エンクロージャの信頼性は不安だし、ドライブにはファイルシステムとしての論理構造のみがあって制御は OS で行うわけだから、容量が大きくなればなるほど OS の負荷が高くなりそうな気もする。まあいずれにしてもこのまま使い続けるのは好ましく無いよな。せっかく Linux マシンを立ち上げたことでもあるし、Samba を使ってそれをファイルサーバに仕立ててみたい。
1. Linux セットアップ時にインストールされている Samba 関係のパッケージを調べる:
# rpm -qa | grep samba samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 redhat-config-samba-1.0.4-1
2. SWAT というブラウザ経由で Samba を設定できるユーティリティがあるというので、CD-ROM からそれをインストールする:
# mount /mnt/cdrom # cd /mnt/cdrom/RedHat/RPMS # rpm -Uhv samba-swat-2.2.7a-7.9.0.i386.rpm # cd ; umount /mnt/cdrom
3. 念のため現在の設定ファイルをバックアップしておく。Samba 関係の設定ファイルは /etc/samba にある:
# cd /etc/samba # cp smb.conf smb.conf.bak
4. SWAT を有効にする:
# chkconfig swat on # service xinetd restart
LAN 内の Windows マシン上のブラウザから http://LinuxマシンのIPアドレス:901/ へアクセスするが、何の反応も無い。そういえば Linux マシン上で Web サーバの設定はしていなかったなと思い出して「それじゃ SWAT は使えないんじゃないの?」と単純なことに気づいて諦める。というわけで Samba の設定は手作業で行うことに。
ファイルサーバの運用に関しては、Windows マシンと同じユーザ名/パスワードのユーザを Linux マシンに作成して、それと同じ Samba ユーザも設定することで、Windows マシンから透過的に Samba ドライブにアクセスできるようにするという方針を決める。
5. Linux ユーザを作成する:
# useradd -m buzz # passwd buzz Changing password for user buzz. New password: 入力しても表示されない Retype new password: 入力しても表示されない Passwd: all authentication tokens updated successfully.
6. Samba パスワードファイルを作成する:
# cat /etc/passwd | /usr/bin/mksmbpasswd.sh > /etc/samba/smbpasswd # smbpassed buzz New SMB password: 入力しても表示されない Retype new SMB password: 入力しても表示されない Password changed for user buzz. Password changed for user buzz. なぜか同じ内容が2行表示される
7. Samba の設定ファイル /etc/samba/smb.conf はデフォルトのままで Samba を起動する:
# testparm 設定ファイルをチェックするユーティリティ # service smb start
8. Windows マシン上の Explorer で [コンピュータの検索] で Linux マシンの IP アドレスを指定すると Linux マシンがリストされ、Linux マシン上の同名ユーザのホームディレクトリが見えるようになる:
これで設定は完了かと思いきや、早速使い始めたところ日本語ファイル名の扱いで問題点が発覚。特定の文字を含むファイル名を Samba ドライブに作成できない模様。具体的には「060819 ページ構成案」とか「モニタプログラム専用通信ソフト」といった名前のディレクトリを作成しようとすると以下のメッセージが表示されて失敗する。

Google で「Samba 指定されたパスが見つかりません」のキーフレーズで検索したところ、かなりの数の記事がヒットしたので、それらを読みながら対処方法を探す。個人のブログから掲示板の書き込みまでいろんなソースが見つかるが、僕が参考にしたのは以下のオフィシャルドキュメント。一番的確で信頼できる資料と思われる。
参考: Samba 2.0.x/2.2.x で日本語を利用する方法
http://www.monyo.com/technical/samba/docs/Japanese-HOWTO.ja.txt
この資料に従って /etc/samba/smb.conf に以下のエントリを追加する:
coding system = HEX client code page = 932
Samba を再起動してから、Windows マシン上で先ほど問題になった日本語フォルダの作成を再び試みる。今度はエラー無しで正常にフォルダが作成できることが確認できた。
ほとんどデフォルトのままだけど、とりあえず Samba は動くようになった。SWAT を使うのを諦めたときにはさぞかし設定は面倒臭いだろうと予想したのだけど、割と簡単だったので助かったな。これからネットワーク経由で Windows マシンのファイル群をバックアップするのに使って行こう。