web-dev-qa-db-ja.com

リモートフォルダーをマウントする最良の方法

2つのRasberryPiでdebian wheezyを実行しています。コンピューターAのフォルダーをコンピューターBにマウントしたいと思います。

これを行うための(最も効率的な)最良の方法は何ですか?

私はSMBを介してそれを行うことができますが、それはWindowsの場合です。Linux全体で共有するためのより良い方法があるはずだと思います。

44
cjburkha

あなたはたくさんのものを使うことができます、その中で、人気のあるオプションは:

  • NFS
  • サンバ/ CIFS
  • SSHFS

セットアップが簡単なため、この順序で配置する必要があると思います(上:最も簡単)

[〜#〜] sshfs [〜#〜]

Fuseを使用すると、ssh経由でリモートファイルシステムをマウントできます。クリストファーがすでにそれを非常によく説明しているので、私はその方法をカバーしません。ファイルを自動的にマウントするためには、 作業のビット数が多い が必要になることに注意してください。

サンバ

これにより、WindowsおよびUnixマシンを使用してリモートフォルダーにアクセスできます。それがあなたにとって大したことではないなら、あなたはおそらくそれから利益を得られないでしょう。ただし、初期化時に自動マウントするのは簡単です(オプション列の/etc/fstabを含め、username=<your-samba-username>,password=<your-samba-password>に適切な値を入力するだけです)。

[〜#〜] nfs [〜#〜]

IPだけで認証することができます(ユーザー名なし=より速く、非敵対的LAN内でのみ使用)またはKerberosチケット(2つのラズベリーだけでは痛いですが、企業環境で役立ちます)。

カーネルモードをサポートしているため、sshfsよりも高速に実行されます。その上、 暗号化は行われません があるため、スループットが向上し、小さなRaspberry ARMの場合、違いが生じる可能性があります。

その上、あなたが単にあなたのネットワークを信頼するだけでセットアップすることはそれほど苦痛ではありません。 /etc/fstabでも自動マウントがサポートされており、ユーザー名やパスワードなどの機密データを入力する必要はありません。ユーザー名が同期されている場合(/etc/passwd/etc/groupは同じです)ファイル)通常のPOSIX権限ツールセット(chownchgrpおよびchmod)を使用できます。

32
ssice

SSHFSは素晴らしいです。 Fuse を使用して、リモートディレクトリをローカルディレクトリにマウントできます。以下のコマンドは、#を使用してコマンドがrootとして実行されたことを示し、$は通常のユーザーとして実行されたことを示します。 Fuseソフトウェアが必要なため、まず、それが使用可能で実行中であることを確認してください。

以下のlsmodおよびgrepコマンドの1つは、ソフトウェアがロードされて使用できる状態になっているかどうかを示します。いずれかのコマンドの結果は、Fuseが使用可能であることを示しています。

# lsmod | grep Fuse
$ grep -i Fuse /lib/modules/$(uname -r)/modules.builtin

どちらのコマンドでも結果が得られない場合は、modprobeを使用して再起動せずにカーネルモジュールをロードして、もう一度確認してください。

# modprobe Fuse
# lsmod Fuse

モジュールのロードに失敗した場合は、apt-getを使用してソフトウェアをインストールしてください。

# apt-get install Fuse

インストール後に再度確認してください。

# modprobe Fuse
# lsmod Fuse

続行する前に、ヒューズをインストールして実行する必要があります。


/dev/Fuseの権限を確認してください。権限により、通常のユーザーアカウントに読み取りおよび書き込みアクセス権が付与されます。通常のユーザーアカウントに/dev/Fuseに対する読み取りおよび書き込み権限がすでにあると判断した場合は、この部分をスキップしてください。

# ls -l /dev/Fuse

出力は、次のいずれかになる可能性があります。

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root Fuse (only root can read/write)
crw-rw---- 1 root Fuse (root and members of Fuse group can read/write)

2013年、私のDebianは/dev/Fuse0600権限、所有者root、グループ所有者Fuseで作成しました。以下に示すように、Fuseグループにデバイスを使用させ、通常のユーザーアカウントをグループに追加する必要がありました。

# usermod -aG Fuse $your_regular_user_account
# chmod 0660 /dev/Fuse

新しいグループメンバーシップが必要な場合は、ログアウトしてから再度ログインし、グループのメンバーになります。


次に、次のようにsshを両側にインストールします。

# apt-get install ssh

この回答はDebian用に書かれたものですが、少なくともUbuntu 18.xではopenssh-clientFuse、およびその他のいくつかのパッケージがUbuntu sshfsパッケージの一部です。 sshfsソフトウェアはクライアント側に必要ですが、必要に応じて両側にインストールできます。パッケージの依存関係の1つはFuseですが、インストーラーはすでにインストールされているソフトウェアをスキップします。

# Ubuntu 18.x: 
# apt-get install sshfs

Fuseおよびsshが使用可能であり、デバイス/dev/Fuseを使用する権限があれば、リモートファイルシステムのマウントポイントを作成します。そして、次のようにそのリモートファイルシステムをローカルにマウントします。

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

ホーム以外のディレクトリをマウントするには、コロンの後に指定します。

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

アンマウントするには、fusermountを使用します。

fusermount -u /mnt/$directory_name

あなたがWindowsマシンを持っているなら、それも win-sshfs でSSHFSを使うことができます。このソフトウェアはSSHFSで「ドライブをマップ」するため、リモートディレクトリを含むWindowsドライブ文字を使用できます。

38
Christopher

Linuxでは、次のように選択します [〜#〜] nfs [〜#〜] (また、あなたのディストリビューションに適用可能な情報があるかもしれない、それについてのアーチウィキの 記事 もチェックしてください)同様に)。 Sambaよりも高度な機能があります。 nfsはステートレスであるため、ファイルをロックする(つまり、同時アクセス)必要がある場合は、lockdも調べる必要があります。ただし、smbよりも構成が困難です。 sambaとnfsの両方を試して、どちらがニーズに適しているかを確認することをお勧めします。

7
Silverrocker

私は過去にSFTPネットドライブとExpanDriveの両方を使用したことがあり、 sshfs はどちらも問題なく実行できます。

1
sublime