2つのRasberryPiでdebian wheezyを実行しています。コンピューターAのフォルダーをコンピューターBにマウントしたいと思います。
これを行うための(最も効率的な)最良の方法は何ですか?
私はSMBを介してそれを行うことができますが、それはWindowsの場合です。Linux全体で共有するためのより良い方法があるはずだと思います。
あなたはたくさんのものを使うことができます、その中で、人気のあるオプションは:
セットアップが簡単なため、この順序で配置する必要があると思います(上:最も簡単)
[〜#〜] 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権限ツールセット(chown
、chgrp
およびchmod
)を使用できます。
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/Fuse
を0600
権限、所有者root
、グループ所有者Fuse
で作成しました。以下に示すように、Fuseグループにデバイスを使用させ、通常のユーザーアカウントをグループに追加する必要がありました。
# usermod -aG Fuse $your_regular_user_account
# chmod 0660 /dev/Fuse
新しいグループメンバーシップが必要な場合は、ログアウトしてから再度ログインし、グループのメンバーになります。
次に、次のようにssh
を両側にインストールします。
# apt-get install ssh
この回答はDebian用に書かれたものですが、少なくともUbuntu 18.xではopenssh-client
、Fuse
、およびその他のいくつかのパッケージが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ドライブ文字を使用できます。
Linuxでは、次のように選択します [〜#〜] nfs [〜#〜] (また、あなたのディストリビューションに適用可能な情報があるかもしれない、それについてのアーチウィキの 記事 もチェックしてください)同様に)。 Sambaよりも高度な機能があります。 nfsはステートレスであるため、ファイルをロックする(つまり、同時アクセス)必要がある場合は、lockdも調べる必要があります。ただし、smbよりも構成が困難です。 sambaとnfsの両方を試して、どちらがニーズに適しているかを確認することをお勧めします。
私は過去にSFTPネットドライブとExpanDriveの両方を使用したことがあり、 sshfs はどちらも問題なく実行できます。