「Autofs」の版間の差分
(同期) |
(翻訳) |
||
25行目: | 25行目: | ||
}} |
}} |
||
+ | 各行の最初の値はテンプレートのメディアをマウントするベースディレクトリです。2番目の値は使用するテンプレートです。デフォルトのベースパスは {{ic|/media}} となっていますが、自由に変更できます。例: |
||
− | The first value on each line determines the base directory under which all the media in a template are mounted, the second value is which template to use. The default base path is {{ic|/media}}, but you can change this to any other location you prefer. For instance: |
||
{{hc|/etc/autofs/auto.master|2= |
{{hc|/etc/autofs/auto.master|2= |
||
34行目: | 34行目: | ||
{{Note|Make sure there is an empty line on the end of template files (press {{ic|ENTER}} after last word). If there is no correct EOF (end of file) line, the AutoFS daemon will not properly load.}} |
{{Note|Make sure there is an empty line on the end of template files (press {{ic|ENTER}} after last word). If there is no correct EOF (end of file) line, the AutoFS daemon will not properly load.}} |
||
+ | {{ic|timeout}} パラメータではディレクトリをアンマウントする秒数を設定します。 |
||
− | The optional parameter {{ic|timeout}} sets the amount of seconds after which to unmount directories. |
||
+ | システム上にベースディレクトリが存在しなかった場合、作成されます。動的にメディアをロードするためにベースディレクトリはマウントされるため、autofs が動作している間、ベースディレクトリにもともとあった中身を閲覧することはできなくなります。使用中のディレクトリを間違って自動マウントしてしまったとしても、{{ic|auto.master}} でディレクトリを変更して AutoFS を再起動することで元に戻せます。 |
||
− | The base directory will be created if it does not exist on your system. The base directory will be mounted on to load the dynamically loaded media, which means any content in the base directory will not be accessible while autofs is on. This procedure is however non-destructive, so if you accidentally automount into a live directory you can just change the location in {{ic|auto.master}} and restart AutoFS to regain the original contents. |
||
+ | 動的にロードされたディレクトリがマウントされた後でも元あったファイルが使えるようにしたい場合、他のディレクトリ (例: {{ic|/var/autofs/net}}) にマウントするようにするかソフトリンクを使ってください: |
||
− | If you still want to automount to a target non-empty directory and want to have the original files available even after the dynamically loaded directories are mounted, you can use autofs to mount them to another directory (e.g. /var/autofs/net) and create soft links. |
||
# ln -s /var/autofs/net/share_name /media/share_name |
# ln -s /var/autofs/net/share_name /media/share_name |
||
+ | もしくは autofs でメディアを別のフォルダにマウントする場合: |
||
− | Alternatively, you can have autofs mount your media to a specific folder, rather than inside a common folder. |
||
{{hc|/etc/autofs/auto.master|2= |
{{hc|/etc/autofs/auto.master|2= |
2016年12月22日 (木) 21:54時点における版
このドキュメントは AutoFS を設定する手順を解説しています。AutoFS はリムーバルメディアやネットワーク共有などが接続されたりアクセスされたときに自動でマウントするパッケージです。
目次
インストール
設定
AutoFS ではテンプレートファイルを使って設定します。ファイルは /etc/autofs
にあります。メインのテンプレートは auto.master
で、メディアタイプに合わせて他のテンプレートを読み込むことができます。
- お好きなエディタで
/etc/autofs/auto.master
ファイルを開いて下さい。以下のようになっているはずです:
/etc/autofs/auto.master
#/media /etc/autofs/auto.media
各行の最初の値はテンプレートのメディアをマウントするベースディレクトリです。2番目の値は使用するテンプレートです。デフォルトのベースパスは /media
となっていますが、自由に変更できます。例:
/etc/autofs/auto.master
/media/misc /etc/autofs/auto.misc --timeout=5 /media/net /etc/autofs/auto.net --timeout=60
timeout
パラメータではディレクトリをアンマウントする秒数を設定します。
システム上にベースディレクトリが存在しなかった場合、作成されます。動的にメディアをロードするためにベースディレクトリはマウントされるため、autofs が動作している間、ベースディレクトリにもともとあった中身を閲覧することはできなくなります。使用中のディレクトリを間違って自動マウントしてしまったとしても、auto.master
でディレクトリを変更して AutoFS を再起動することで元に戻せます。
動的にロードされたディレクトリがマウントされた後でも元あったファイルが使えるようにしたい場合、他のディレクトリ (例: /var/autofs/net
) にマウントするようにするかソフトリンクを使ってください:
# ln -s /var/autofs/net/share_name /media/share_name
もしくは autofs でメディアを別のフォルダにマウントする場合:
/etc/autofs/auto.master
/- /etc/autofs/auto.template
/etc/autofs/auto.template
/path/to/folder -options :/device/path /home/user/usbstick -fstype=auto,async,nodev,nosuid,umask=000 :/dev/sdb1
/etc/nsswitch.conf
ファイルを開いて automount エントリを追加してください:
automount: files
- テンプレートの設定が完了したら (下を参照)、root で
autofs.service
を有効化・起動して AutoFS デーモンを起動してください。
これでデバイスにアクセスしたときに自動的にマウントされるようになります。アクセスしているかぎりはマウントされ続けます。
リムーバルメディア
/etc/autofs/auto.misc
を開いて様々なデバイスを追加・削除・編集してください。例えば:
/etc/autofs/auto.misc
#kernel -ro ftp.kernel.org:/pub/linux #boot -fstype=ext2 :/dev/hda1 usbstick -fstype=auto,async,nodev,nosuid,umask=000 :/dev/sdb1 cdrom -fstype=iso9660,ro :/dev/cdrom #floppy -fstype=auto :/dev/fd0
CD/DVD のコンボドライブがある場合は cdrom
の行を -fstype=auto
のように置き換えることでメディアのタイプが自動で検出されるようになります。
NFS ネットワークマウント
AutoFS provides a new way of automatically discovering and mounting NFS-shares on remote servers (the AutoFS network template in /etc/autofs/auto.net
has been removed in autofs5). To enable automatic discovery and mounting of network shares from all accessible servers without any further configuration, you will need to add the following to the /etc/autofs/auto.master
file:
/net -hosts --timeout=60
Each host name needs to be resolveable, e.g. the name an IP address in /etc/hosts
or via DNS and please make sure you have nfs-utils installed and working. You also have to enable RPC (systemctl start|enable rpcbind) to browse shared Folders.
For instance, if you have a remote server fileserver (the name of the directory is the hostname of the server) with an NFS share named /home/share, you can just access the share by typing:
# cd /net/fileserver/home/share
The -hosts
option uses a similar mechanism as the showmount
command to detect remote shares. You can see the exported shares by typing:
# showmount <servername> -e
<servername> はあなたのサーバーの名前に置き換えてください。
systemd の自動マウントサービスを使う方法もあります。NFS と systemd-automount を参照してください。
NFS の手動設定
To mount a NFS share on server_name called /srv/shared_dir to another computer named client_pc at location /mnt/foo, edit auto.master and create a config file for the share (auto.server_name):
/etc/autofs/auto.master
/mnt /etc/autofs/auto.server_name --timeout 60
/etc/autofs/auto.server_name
foo -rw,soft,intr,rsize=8192,wsize=8192 server_name:/srv/shared_dir
Samba
The Arch package does not provide any Samba or CIFS templates/scripts (23.07.2009), but the following should work for single shares:
Add the following to /etc/autofs/auto.master
:
/media/[my_server] /etc/autofs/auto.[my_server] --timeout=60 --ghost
where --timeout
defines how many seconds to wait before the file system is unmounted. The --ghost
option creates empty folders for each mount-point in the file in order to prevent timeouts, if a network share cannot be contacted.
Next create a file /etc/autofs/auto.[my_server]
[any_name] -fstype=cifs,[other_options] ://[remote_server]/[remote_share_name]
You can specify a user name and password to use with the share in the other_options
section:
[any_name] -fstype=cifs,username=[username],password=[password],[other_options] ://[remote_server]/[remote_share_name]
FTP と SSH (FUSE を使用)
リモートの FTP や SSH サーバーには FUSE (仮想ファイルシステムレイヤー) と AutoFS でシームレスにアクセスすることができます。
リモート FTP
まず、curlftpfs パッケージをインストールしてください。
fuse
モジュールをロード:
# modprobe fuse
システムが起動するたびにモジュールがロードされるように /etc/modules-load.d/fuse.conf
ファイルを作成して fuse
と記述してください。
そして、/etc/autofs/auto.master
に FTP サーバーのエントリを追加します:
/media/ftp /etc/autofs/auto.ftp --timeout=60
/etc/autofs/auto.ftp
ファイルを作成して ftp://myuser:mypassword@host:port/path
の形式でサーバーを追加してください:
servername -fstype=curl,rw,allow_other,nodev,nonempty,noatime :ftp\://myuser\:mypassword\@remoteserver
If you want slightly more security you can create the file ~root/.netrc
and add the passwords there.
Passwords are still plain text, but you can have mode 600, and df
command will not show them (mounted or not).
This method is also less sensitive to special characters (that else must be escaped) in the passwords. The format is:
machine remoteserver login myuser password mypassword
The line in /etc/autofs/auto.ftp
looks like this without user and password:
servername -fstype=curl,allow_other :ftp\://remoteserver
Create the file /sbin/mount.curl
with this code:
/sbin/mount.curl
#! /bin/sh curlftpfs $1 $2 -o $4,disable_eprt
Create the file /sbin/umount.curl
with this code:
/sbin/umount.curl
#! /bin/sh fusermount -u $1
Set the permissions for both files:
# chmod 755 /sbin/mount.curl # chmod 755 /sbin/umount.curl
After a restart your new FTP server should be accessible through /media/ftp/servername
.
リモート SSH
These are basic instructions to access a remote filesystem over SSH with AutoFS.
sshfs パッケージをインストールしてください。
fuse
モジュールをロード:
# modprobe fuse
システムが起動するたびにモジュールがロードされるように /etc/modules-load.d/fuse.conf
ファイルを作成して fuse
と記述してください。
openssh をインストールしてください。
SSH 鍵を生成:
$ ssh-keygen
When the generator ask for a passphrase, just press ENTER
. Using SSH keys without a passphrase is less secure, yet running AutoFS together with passphrases poses some additional difficulties which are not (yet) covered in this article.
Next, copy the public key to the remote SSH server:
$ ssh-copy-id username@remotehost
As root, see that you can login to the remote server without entering a password:
# ssh username@remotehost
Create a new entry for SSH servers in /etc/autofs/auto.master
:
/media/ssh /etc/autofs/auto.ssh --timeout=60
Create the file /etc/autofs/auto.ssh
and add an SSH server:
/etc/autofs/auto.ssh
servername -fstype=fuse,rw,allow_other,IdentityFile=/home/username/.ssh/id_rsa :sshfs\#username@host\:/
After a restart your SSH server should be accessible through /media/ssh/servername
.
MTP
Android デバイスでは Media Transfer Protocol (MTP) が使われます。
mtpfs パッケージをインストールしてください。
/etc/autofs/auto.misc
に MTP デバイスのエントリを追加:
android -fstype=fuse,allow_other,umask=000 :mtpfs
トラブルシューティング
このセクションでは AutoFS に関するよくある問題の解決方法を載せています。
NIS を使用
AutoFS のバージョン 5.0.5 には NIS の高度なサポートが含まれています。AutoFS で NIS を使うには、/etc/autofs/auto.master
でテンプレートの名前の前に yp:
を追加してください:
/home yp:auto_home --timeout=60 /sbtn yp:auto_sbtn --timeout=60 +auto.master
バージョン 5.0.5 以前の NIS を使っている場合、/etc/nsswitch.conf
に nis
を追加してください:
automount: files nis
任意のパラメータ
You can set parameters like timeout
systemwide for all AutoFS media in /etc/default/autofs
:
/etc/default/autofs
ファイルを開いてOPTIONS
行を編集:
OPTIONS='--timeout=5'
- To enable logging (default is no logging at all), uncomment and add
--verbose
to theOPTIONS
line in/etc/default/autofs
e.g.:
OPTIONS='--verbose --timeout=5'
After restarting the autofs
daemon, verbose output is visible in systemctl status
or in journalctl
.
複数のデバイスを認識
USB ドライブ/スティックを複数使用する場合、AutoFS を使ってマウントポイントを設定して Udev で USB ドライブごとに名前を付けることができます。Udev ルールの設定方法については udev#固定デバイス名の設定 を見て下さい。
AutoFS のパーミッション
AutoFS が機能しない場合、テンプレートファイルのパーミッションが正しいことを確認してください。パーミッションが間違っていると AutoFS は起動しません。設定ファイルをバックアップしたときにファイルモードを保持してなかった場合に起こりえます。設定ファイルの正しいモードは以下の通りです:
- 0644 - /etc/autofs/auto.master
- 0644 - /etc/autofs/auto.media
- 0644 - /etc/autofs/auto.misc
- 0644 - /etc/conf.d/autofs
通常、スクリプト (先の auto.net
など) には実行可能属性 (chmod a+x filename
) が必要で、マウントのリストには必要ありません。
/var/log/daemon.log
に以下のようなエラーが出力される場合、パーミッションに問題があります:
May 7 19:44:16 peterix automount[15218]: lookup(program): lookup for petr failed May 7 19:44:16 peterix automount[15218]: failed to mount /media/cifs/petr
fusermount の問題
util-linux の特定のバージョンでは、"user=" オプションを使用しても autofs でマウントした fuse ファイルシステムドライブをアンマウントすることができません。次の URL を参照: http://fuse.996288.n3.nabble.com/Cannot-umount-as-non-root-user-anymore-tp689p697.html
自動マウントの問題のデバッグ
効率的にデバッグするために、フォアグラウンドで自動マウントを実行してみてください:
# systemctl stop autofs.service # automount -f -v
もしくは、デバッグ情報をもっと表示させたい場合:
# automount -f --debug
AutoFS の代替
- Systemd は必要に応じてファイルシステムを自動マウントすることができます。説明は Fstab#systemd による自動マウント を、例は Sshfs#必要に応じてマウント を見て下さい。
- Thunar Volume Manager は Thunar ファイルマネージャの自動マウントシステムです。
- PCManFM はリモート共有にアクセスすることができる軽量なファイルマネージャです。
- Udisks は最小主義の自動ディスクマウントサービスです。
参照
- AutoFS で FTP と SFTP を使用する方法は Gentoo Wiki の記事を元にしています: https://web.archive.org/web/20130414074212/http://en.gentoo-wiki.com/wiki/Mounting_SFTP_and_FTP_shares
- SSH に関する詳細は SSH や SSH 鍵のページを見て下さい。
- Ubuntu の Autofs ヘルプ wiki: https://help.ubuntu.com/community/Autofs
- ファイルシステムごとのマウントオプションについては http://manpages.ubuntu.com/manpages/natty/en/man8/mount.8.html#contenttoc5 を参照。
- fuse のマウントオプションについては http://manpages.ubuntu.com/manpages/precise/man8/mount.fuse.8.html を参照。