SmbFsでネットワークプレースのマウントと共有

Smbfs利用のMountで,ネットワークファイルの共有をご紹介します。

SmbFs で Mount

Nautilusを利用した,ネットワークファイルの共有は,少し不安定な所が有ります。

より確実な手段として,SmbFsによるMountコマンドを利用した接続が行えます。この接続手段を使えば,Gnomeに依存せずXfceなど他環境でも利用できます。

このページ内容を実行するには,Samba稼働が前提です。
先に SambaでWindowsとUbuntuのファイル共有」で,Sambaのセットアップを済ませて下さい。

Mountして共有ファイルをコピーしてるイメージ図

※Linux同士のネットワークファイル共有では,SmbFsに拘る必要ありませんが,対Windows用にSambaを導入済であれば,簡単に導入・利用できるので,お勧めです。

ネットワーク先のディレクトリー(フォルダ)を,Ubuntu側にマウント(載っける)します。そのUbuntu側のフォルダでファイル作業する。というイメージです。

  1. smbfs
  2. Mount用ディレクトリー作成
  3. マウント実行とマウント確認
  4. 英数のホスト名で接続不可の場合
  5. ファイルやディレクトリーをコピー
  6. アンマウント実行

順に施行して下さい。

smbfs

smbfsに依存したmountコマンドを利用するには,「smbfs」パッケージが必要です。インストール有無を確認して,無ければインストールします。

  1. 端末を起動してください。
  2. smbfsのインストール有無を確認します。

    sudo dpkg -l smbfs

    smbfsのインストール状況を確認。

    i i」になっていたらインストールされています。次項目は飛ばして下さい。違っていたらインストールします。次項目を作業して下さい。
    名前   バージョン   説明
    =================
    ii  smbfs  mount commands for the smbfs
  3. smbfsをインストールします。

    sudo apt-get install smbfs

    smbfsをインストール。

SmbFsのインストール完了しました。

network samba 再起動

念の為,NetworkとSambaを再起動して下さい。

sudo /etc/init.d/networking restart

networkを再起動。

sudo /etc/init.d/samba restart

sambaを再起動。

sudo /etc/init.d/networking restart
 * Reconfiguring network interfaces...[ OK ]

sudo /etc/init.d/samba restart
 * Stopping Samba daemons...[ OK ] 
 * Starting Samba daemons...[ OK ] 

再起動しました。

Synapticでインストール

smbfsをSynapticでインストールする方法です。

  1. [ 検索 ]をクリックし「smbfs」を探します。synapticでsmbfsを検索しているイメージ図

    ※もしかして,smbfsにマークが付いていたら入ってます。以降の作業は不要です。

  2. 表示されたsmbfsを右クリックし,「インストール指定」を実行します。smbfsのインストール指定イメージ図
  3. [ 適用 ]でインストールを開始して下さい。smbfsのインストール開始イメージ図

インストール完了です。

実は

いきなり,インストールを実行すれば,「未インストール」ならインストールされ,「インストール済」なら,その旨メッセージが出ます。インストール有無確認は不要なんです。

Mount用ディレクトリー作成

Mount用のディレクトリー(フォルダ)を作成します。

  1. sudo mkdir /mnt/samba/

    /mntフォルダにsambaというフォルダを作成。

    マウントポイントを「/mnt」以下にする必要は有りません。Linuxの慣習として,ここが良いそうです。

    マウントポイント用のフォルダ名を「samba」にする必要も有りません。任意の名前を設定できます。

  2. フォルダ存在を確認します。

    ls /mnt/

    /mntフォルダの内容を確認。

     ls /mnt/
    samba
  3. 場所」→「コンピュータ」→「ファイルシステム」→「mnt」でも確認出来ます。ファイルブラウザで場所からコンピュータからファイルシステからmntディレクトリーまで辿ってsambaフォルダの存在を確認してるイメージ図

マウント用ディレクトリーを作りました。

Mountのイメージ

mountとは,「載っける」イメージとお考え下さい。HDDも,FDDも,すべて「載っけてある」あるいは「要求が有れば載っける」ので使えます。

fstab
mountの定義は,/ete/fstab に記述されています。確認するには,「less /etc/fstab」または「gedit /etc/fstab」します。
mtab
現在,mountされている物を確認するには,/ete/mtab を見ます。「less /etc/mtab」で見れます。

※「less」コマンドで閲覧した場合,ページを下げるのは[ Space ]キー,終了するのは[ Q ]キーです。

応用して,常時,ネットワークの場所をマウント出来ます。

ネットワークのOS起動時autoマウント fstab」もご参考下さい。

マウント実行とマウント確認

共有相手のフォルダを,マウント用に作成したフォルダに,マウントします。

  1. マウントの書式は以下です。パスワードを求められますから入力します。

    sudo mount -t smbfs //共有相手のホスト名/相手の共有設定されているフォルダ名 /mnt/samba/ -o username=相手のsambaに登録しているユーザ名 または Windowsのログイン名,password=相手のsambaに登録しているユーザのパスワード または Windowsのログインユーザのパスワード

    ※パスワードを求められますが,1回だけでしたら,Ubuntuのパスワードを入力します。2回,求められた場合は,1回めは,Ubuntuのパスワード。2回めは,Windowsログインユーザの,或いは,Sambaユーザのパスワードを入力します。

    ※「-t」で,接続形式の指定です。

    ※「-o」は,オプション指定です。

    ※「-o」以降にオプションを続ける場合は [ , (カンマ) ] で区切ります。

    ※「-o」無しでも接続できるかも知れません。試して下さい

    実際は一行で続けて書いて下さい。

    英数のホスト名では接続できない場合が有ります。後述します。ご参考ください。

  2. これは,接続先ホスト名が「pink」,共有フォルダ名が「blue」,ログイン名が「red」,redのパスワードが「hoge」の場合の一例です。

    sudo mount -t smbfs //pink/blue /mnt/samba -o username=red,password=hoge

    sudo mount -t smbfs
     //pink/blue /mnt/samba
     -o username=red,password=hoge
    
    [sudo] password for hoge: Ubuntuのパスワード 
    Password: 相手のパスワード
    (パスワード2回の場合)
  3. マウントが成功しているか確認します。相手先の中身が見えたら,成功しています。

    ls /mnt/samba/

    /mnt/samba/の内容を確認。

    ls /mnt/samba/
    Enya Perfume-GAME  miku_strast.mp3
    DL HanNya  cTRANCE
  4. 場所」→「コンピュータ」→「ファイルシステム」→「mnt」→「samba」でも確認出来ます。ファイルブラウザで場所からコンピュータからファイルシステからmntからsambaディレクトリーまで辿ってマウントを確認してるイメージ図

マウント成功しました。

一行で書いて下さい

紙面の都合上,複数行で表記していますが,実際は一行で書いて下さい。

接続不可なら 01 CIFS

-t」オプションに,「smbfs」を指定して接続できない場合は,「cifs」を利用してみます。

sudo mount -t cifs //pink/blue /mnt/samba
-o username=red,password=hoge

試して下さい。

接続不可なら 02 IPアドレス

-t」オプションを,「cifs」にしても接続できない場合は,相手のホスト名を,英数ではなく「IPアドレス」で指定してみます。英数のホスト名で接続できない場合」を試して下さい。

文字化けする 01

対Windows,対Vine-Linuxなど,文字コードが違って,文字化けする場合は,「-o」オプションに,文字コード「iocharset」を追加します。

sudo mount -t smbfs //pink/blue /mnt/samba -o username=red,password=hoge,iocharset=utf8

※オプションを複数記述する際は,「,」を忘れないで下さい。

文字コード
Windows shift-jis
Ubuntu utf-8
Vine euc-jp

試して下さい。

文字化けする 02

まだ文字化けする場合は,「cifs」を試してください。

  • これは,smbfsにて,Vine4.2からUbuntu8.04にアクセスした例です。文字が化けてます。smbfsでMountして文字化けしてるイメージ図
  • これは,cifsにて,Vine4.2からUbuntu8.04にアクセスして例です。文字化け無し。cifsでMountして文字化けしないイメージ図

試して下さい。

英数のホスト名で接続できない場合

ホスト名の解決が上手く行われず,「mount -t smbfs //英数のホスト名/云々」で接続できない場合が有ります。

そんな時は,接続先のIPアドレスを指定すると,接続可能性が高まります。

先に IPアドレスの調べかた」で,接続先パソコンのIPアドレスを,調べてください。

後は同じです。接続先ホスト名「pink」のIPアドレスが「192.168.0.5」,共有フォルダ名が「blue」,ログイン名が「red」,ログインパスワードが「hoge」だった場合の一例。

sudo mount -t smbfs //192.168.0.5/blue /mnt/samba -o username=red,password=hoge

これで接続率が上がります。

/etc/hosts に,ホスト名とIPアドレスを追記しておくと,アドレスを入力しなくても接続できるようになります。しかし,DHCPによる動的割当の際は,すぐに使えなくなります。

less /etc/hosts
127.0.0.1 localhost
127.0.1.1 cube.stardust
205.188.234.120 www.shoutcast.com
192.168.0.5 pink

この対策として,IPアドレスを固定します。
「ネットワークのOS起動時autoマウント fstab」カテゴリも見て下さい。

IPアドレスの調べかた

パソコンのIPアドレスを調べる方法です。

Ubuntu
端末で,

ifconfig

Vine
端末で,

/sbin/ifconfig

Windows
スタート」→「ファイル名を指定して実行」から,

cmd または command

と入力し,

ipconfig

これで情報が表示されます。

ファイルやディレクトリーをコピー

ファイルやディレクトリーを,コピーしてみます。

ここからは「Nautilus」でも「端末」でも作業できます。

端末でコピー

「端末」でコピーする方法。書式は以下です。

  • 接続先の「ファイル」をUbuntuにコピー

    cp /mnt/samba/ファイル名 置きたい場所/

  • 接続先の「フォルダ」をUbuntuにコピー

    cp -R /mnt/samba/フォルダ名/ 置きたい場所/

  • Ubuntuの「ファイル」を接続先にコピー

    cp 場所/ファイル名 /mnt/samba/

  • Ubuntuの「フォルダ」を接続先にコピー

    cp -R 場所/フォルダ名/ /mnt/samba/

以下は一例です。

  • cp /mnt/samba/1000tcr.mpg Desktop/

    接続先の「1000tcr.mpg」をUbuntuのデスクトップにコピー。

  • cp -R /mnt/samba/HikoNyan/ MyTmp/

    接続先の「HikoNyanフォルダ」をUbuntuのMyTmpフォルダにコピー。

  • cp Desktop/pengin.png /mnt/samba/

    Ubuntuのデスクトップにある「pengin.png」を接続先の共有フォルダにコピー。

  • cp -R MyTmp/RedFlag/ /mnt/samba/

    UbuntuのMyTmpフォルダにある「RedFlagフォルダ」を接続先にコピー。

端末でコピー完了です。

Nautilusでコピー

Nautilusでコピーします。

  1. 場所」→「コンピュータ」→「ファイルシステム」→「mnt」→「samba」まで辿って下さい。ファイルブラウザで場所からコンピュータからファイルシステからmntからsambaディレクトリーまで辿ってるイメージ図
  2. 後は,通常のファイル操作で,コピーして下さい。

Nautilusでコピー完了です。

SUDO無しで

ファイルやディレクトリーを,コピーする際,「sudo無し」で作業します。そうしないと,コピーしたファイルが「root所有物」になってしまい,後で面倒です。

もしかして,既にコピーしてしまったなら,権限を変更してやれば,大丈夫です。

sudo chmod 744 (または 777) ファイル名

ファイルのパーミッションを変更。

sudo chmod -R 744 (または 777) フォルダ名/

フォルダのパーミッションを変更。

※一般的なファイルの場合です。全てに適用してはなりません。

※一般ユーザでログインしていて,Nautilus利用でしたら,この問題は発生しません。

ご留意ください。

書込不可

接続先の共有フォルダが「書込可」に設定していないと,相手にコピーできません。

カレントディレクトリー

作業ディレクトリーは「/home/user/」を前提に説明しています。変更されている際は,適宜,読み替えて下さい。

アンマウント実行

ファイル作業が終了したら,マウントを解除しておきます。

  1. マウントを解除。

    sudo umount /mnt/samba

    /mnt/sambaのマウントを解除。

  2. マウント解除の確認。何も表示されなければアンマウント成功です。

    ls /mnt/samba/

    /mnt/samba/の内容を確認。

  3. Nautilusで「場所」→「コンピュータ」→「ファイルシステム」→「mnt」→「samba」を辿っても確認出来ます。sambaディレクトリーが空になってるのを確認してるイメージ図

アンマウント完了しました。

アンマウント不要?

アンマウントしなくても,大問題に発展しないようですが,Ubuntuを終了する時に,試行してるようで,シャットダウン時間が伸びます。