FAT32フォーマットのHDDをLinuxでサルベージしてみた。

ここ最近忙しかったらかなり長い間Linux機が放置状態に。元はと言えば、適当にファイルサーバでも作ろうかと思って、色々突っ込んであるHDDを刺しっぱなしにしてたんだった。

バイスパーティションの確認。

とりあえず、IDEのどこに配置したかも覚えていないので、そこから探さないと始まらない。どう調べたらいいか判らないので、fdiskでそれっぽい名前を入れて探りを入れてみる。IDE HDDは/dev/hdaから/dev/hddまでのようなので、順番にpオプションで確認すればパーティションが特定できるはず。

えーと、/dev/hdaはブート領域とLinux LVMのパーティーションしかないから、これは外れ。/dev/hdbは、/dev/hdb1に"W95 FAT32"のパーティションがあるからこれだな。

パーティションのマウント

次は、適当なディレクトリを作って、そこにマウントしないとダメらしい。
とりあえず、下のような感じでやったら、アクセスできるようになりました。

mkdir /mnt/hdb
mount /dev/hdb1 /mnt/hdb

/etc/fstabの設定

調べてみたところ、/etc/fstabにも上と同じことを書いておくと、次回ログインから自動的にやってくれると言うことで、これも適当に編集。設定内容も良く判らないから、ダメ元でやってみる。
ここで、3つ目の設定項目を"auto"にしてしまったため、後で問題が発生します。

/dev/hdb1  /mnt/hdb  auto  defaults  1  3

sambaの設定

ただマウントしただけだと意味がないので、Windows機で見れるようにsambaの設定をしてみる。

サーバのインストール確認

Fedora Core3のインストール時にsamba入れたかどうかも自信がないので、以下の手順で確認

# rpm -qa | grep samba
samba-3.0.8-0.pre1.3
samba-common-3.0.8-0.pre1.3
samba-client-3.0.8-0.pre1.3
system-config-samba-1.2.21-1

どうやら、必要最低限のものはインストール済みのようです。

SWATのインストール

とりあえず使いたいだけだし、マンドクセなのは嫌いなので、SWATでsamba設定を済ませてみます。
Fedora Core3のムックについてたCDから、SWATのRPMファイルを探して、右クリックで「"Install Package"で開く」を選択。以上。

/etc/xinetd.d/swatの編集

/etc/xinetd.d/swatのdisableが"yes"だと無効のままらしい。これをnoに編集。
他にも、SWATの設定を他のPC上で行う場合は、only_from行を編集する必要があるんですが、今回は不要なのでパス。

ファイアウォール設定

ファイアウォールがあるので、sambaとSWATのポートの穴を空けないといけないらしい。本来は、/etc/sysconfig/iptablesファイルを編集するらしいんですが、sambaすら面倒な人間なので、これもGUIで設定。
「セキュリティレベルの設定」ツールを起動して、「他のポート」に以下を設定。SWAT用の901ポートはTCPだけしか空けませんでしたが、問題はなさそう。

137:udp,137:tcp,138:udp,138:tcp,139:udp,139:tcp,901:tcp

で、一応ファイル修正したはず?なので、iptablesを再起動しました。(不要?)

# run_init /etc/rc.d/init.d/iptables restart
smbの自動起動設定

ランレベル3と5の時にsmbを自動起動しておくようにすると、sambaとSWATが自動起動するようです。

# chkconfig --level 35 smb on

終わったら、下記のコマンドで確認します。

# chkconfig --list | grep smb
サービスの起動

sambaとSWATのサービスを起動

# run_init /etc/rc.d/init.d/smb start
# run_init /etc/rc.d/init.d/xinetd restart
SWATの設定。

Linux機のFirefoxを起動して、http://localhost:901に接続すると、SWATにログインできました。
「GROBAL」で、workgroupをWin機と同じものに設定。netbios nameは被らない名前に設定。「password」でsamba用のユーザを登録。
最後に、smbdとnmbdを再起動。

シンボリックリンクの設定。

ここまで作業を続けていて、よく考えたら、/mnt/hdbにアクセスできるユーザがいないことが判明。いっそ、そういうユーザでも作ろうかとも思ったけど、それも面倒なので、まずはシンボリックリンクで試してみよう。
"ln -s"で作れるようです。

ここまでやってみて確認

ようやくsamba設定の全工程が完了したので、Win機から確認。シンボリックリンクを辿ってちゃんと/dev/hdb1の中身が見れた!

と思いきや、一部のフォルダ(とファイル)が漢字だったのがいけなかったらしく、アクセスできない箇所が続出!
ディレクトリ名を変えようかとも思ったけど、複数ディレクトリが"___"みたいな名前になってしまったので、それも出来ず…。orz

/etc/fstabの設定

途方にくれていたところ、@ItLinux Tipsで、以下の記事を発見。
@IT:Windowsパーティションの日本語ファイル名を表示するには
早速/etc/fstabをviで開いて、ファイルシステムを"auto"から"msdos"に変更し、PCを再起動してみた所、ディレクトリ名は一部狂ってますが、とりあえず正常にアクセスできるようになりました。

本当は、ファイルシステムを"vfat"にするのが正しいようなんですが、最初に"auto"にしてしまったせいか、それとも、2回目に"msdos"にしてしまったせいか、名前がダブって表示されてしまうため、やむなくmsdosで使ってます。
ファイルのサルベージが住んだら、ちゃんとフォーマットかけよう…。