「Davfs2」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:ファイルシステム en:Davfs '''DAVfs''' は WebDAV サーバーをディスクドライブとしてマウントできるようにする Linux フ...」)
 
(関連記事を追加)
 
(4人の利用者による、間の8版が非表示)
1行目: 1行目:
  +
{{Lowercase title}}
 
[[Category:ファイルシステム]]
 
[[Category:ファイルシステム]]
[[en:Davfs]]
+
[[Category:WebDAV]]
  +
[[en:Davfs2]]
'''DAVfs''' は WebDAV サーバーをディスクドライブとしてマウントできるようにする Linux ファイルシステムドライバーです。WebDAV は HTTP/1.1 を拡張してウェブリソースをリモートで共同で作成するプロトコルで、RFC 4918 で定義されています。
 
  +
{{Related articles start}}
  +
{{Related|WebDAV}}
  +
{{Related articles end}}
  +
[http://savannah.nongnu.org/projects/davfs2 davfs2] は [[WebDAV]] サーバーをディスクドライブとしてマウントできるようにする Linux ファイルシステムドライバーです。WebDAV は HTTP/1.1 を拡張してウェブリソースをリモートで共同で作成するプロトコルで、RFC 4918 で定義されています。
   
== DAVfs のインストール ==
+
== インストール ==
   
[[公式リポジトリ]]から {{Pkg|davfs2}} を[[インストール]]してください。
+
{{Pkg|davfs2}} パッケージを[[インストール]]してください。
   
==パーティションのマウント==
+
== WebDAV のマウント ==
例:
 
<nowiki># mount.davfs http://localhost:8080/ /mnt/dav</nowiki>
 
<nowiki># mount -t davfs http://localhost:8080/ /mnt/dav</nowiki>
 
   
==通常ユーザーでマウント==
+
=== 設定とマウントオプション ===
   
  +
システム全体の設定ファイルは {{ic|/etc/davfs2/davfs2.conf}} に、ユーザー個別の設定ファイルは {{ic|~/.davfs2/davfs2.conf}} になります。後者は通常のユーザーで実行されたときにシステム全体の設定よりも優先して読み込まれます。WebDAV やキャッシュ、デバッグ関連のオプションが存在します。利用可能なオプションと構文は {{man|5|davfs2.conf}} を参照してください。
network グループにユーザーを追加 (username はあなたのユーザー名に置き換えてください):
 
# usermod -a -G network username
 
   
  +
必要であればマウントオプションを使って設定ファイルのパスを定義したりファイルアクセスに関するオプションを設定できます。以下のコマンドでオプションのリストを確認できます:
webdav エントリを /etc/fstab に追加 (username はあなたのユーザー名に置き換えてください):
 
  +
$ mount.davfs -h
<nowiki>https://webdav.example.com /home/username/webdav davfs user,noauto,uid=username,file_mode=600,dir_mode=700 0 1</nowiki>
 
   
  +
{{man|8|mount.davfs}} にも説明とオプションが載っています。
ホームディレクトリに secrets ファイルを作成:
 
$ mkdir ~/.davfs2/
 
<nowiki>$ echo "https://webdav.example.com webdavuser webdavpassword" >> ~/.davfs2/secrets</nowiki>
 
$ chmod 0600 ~/.davfs2/secrets
 
   
  +
=== コマンドラインを使う ===
owncloud の場合、url は:
 
  +
WebDAV をマウントするときは直接 {{ic|mount.davfs}} を使わずに {{ic|mount}} を使用します:
<nowiki>https://webdav.example.com/remote.php/webdav</nowiki>
 
   
  +
# mount -t davfs http(s)://addres:<port>/path /mount/point
同一サーバーから複数のディスクをマウントしたい場合、{{ic|~/.davfs2/secrets}} ファイルでサーバーアドレスではなくディスクのマウントポイントを指定してください:
 
   
  +
=== systemd を使う ===
/home/username/disk1 webdavuser1 webdavpassword1
 
  +
[[systemd#マウント|systemd]] でマウントするには:
/home/username/disk2 webdavuser1 webdavpassword2
 
.........
 
/home/username/diskN webdavuserN webdavpasswordN
 
   
  +
{{hc|/etc/systemd/system/mnt-webdav-service.mount|<nowiki>
{{ic|~/webdav}} をマウントしたりアンマウントすることができます:
 
  +
[Unit]
# mount ~/webdav
 
  +
Description=Mount WebDAV Service
# fusermount -u ~/webdav
 
  +
After=network-online.target
  +
Wants=network-online.target
  +
  +
[Mount]
  +
What=http(s)://address:<port>/path
  +
Where=/mnt/webdav/service
  +
Options=uid=1000,file_mode=0664,dir_mode=2775,grpid
  +
Type=davfs
  +
TimeoutSec=15
  +
  +
[Install]
  +
WantedBy=multi-user.target
  +
</nowiki>}}
  +
  +
systemd の automount ユニットを作成することでタイムアウトを設定できます:
  +
{{hc|/etc/systemd/system/mnt-webdav-service.automount|<nowiki>
  +
[Unit]
  +
Description=Mount WebDAV Service
  +
After=network-online.target
  +
Wants=network-online.target
  +
  +
[Automount]
  +
Where=/mnt/dav
  +
TimeoutIdleSec=300
  +
  +
[Install]
  +
WantedBy=remote-fs.target
  +
</nowiki>}}
  +
  +
systemd のマウントユニットを使用する方法について詳しくは [[Fstab#systemd による自動マウント]]を参照してください。
  +
  +
=== fstab を使う ===
  +
  +
webdav をファイルシステムにマウントする方法を定義するには、以下の形式で [[fstab]] のエントリを追加します:
  +
  +
{{hc|/etc/fstab|2=<nowiki>https:</nowiki>//''webdav.example/path'' /mnt/''webdav'' davfs rw,user,uid=''username'',noauto 0 0}}
  +
  +
''username'' はマウントするファイルシステムの所有者に置き換えてください。数字の ID かユーザー ID で指定できますが、マウントユーザーと別の uid をマウントできるのは ''root'' だけです。
  +
  +
== ヒントとテクニック ==
  +
  +
=== 接続情報の保存 ===
  +
  +
''secrets'' ファイルを作成することで WebDAV サービスの接続情報を保存できます (通常ユーザーの場合は {{ic|~/.davfs2/secrets}}、''root'' の場合は {{ic|/etc/davfs2/secrets}} を使用):
  +
  +
{{hc|/etc/davfs2/secrets|
  +
2=<nowiki>https:</nowiki>//''webdav.example/path'' ''davusername'' ''davpassword''}}
  +
  +
''secrets'' ファイルの[[パーミッション]]は適切に設定してください。例えば ''root'' でマウントする場合:
  +
# chmod 600 /etc/davfs2/secrets
  +
# chown root:root /etc/davfs2/secrets
  +
  +
通常ユーザーでマウントする場合:
  +
$ chmod 600 ~/.davfs2/secrets
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
43行目: 93行目:
 
=== ファイルの作成やコピーができない ===
 
=== ファイルの作成やコピーができない ===
   
  +
ファイルを作成したりコピーできない場合やフリーズが発生するようなときは、[[davfs2#WebDAV のマウント|設定ファイル]] を編集して {{ic|use_locks 0}} オプションを使ってください。パラメータのデフォルトは {{ic|1}} で、書き込みを行うときにサーバー上のファイルをロックします。
ファイルの作成やコピーができない場合、{{ic|/etc/davfs2/davfs2.conf}} を編集して以下の行を変更してください:
 
   
  +
=== シークレットファイルのパスワード ===
{{hc|/etc/davfs2/davfs2.conf|
 
  +
[...]
 
  +
{{ic|\}} や {{ic|"}} などのパスワード内の特殊文字に注意してください。{{ic|\}} でエスケープしてください。
use_locks 0
 
  +
[...]
 
  +
=== ネットワークはオンラインですが、ドメインの検索に失敗する ===
  +
  +
{{ic|network-online.target}} に到達しても WebDAV サーバーのドメインが見つからない場合があります。名前の検索が手動で成功するまで待つことができます。
  +
  +
まず、[[davfs2# fstab を使う|fstab]] を設定する必要があります。次に、15秒間 ping でサーバーに到達できるかどうかをテストし、成功した場合のみマウントを試行します。
  +
  +
{{hc|/etc/systemd/system/mnt-webdav-service.service|2=
  +
[Unit]
  +
Description=Mount WebDAV Service
  +
After=network-online.target
  +
Wants=network-online.target
  +
  +
[Service]
  +
Type=oneshot
  +
ExecStart=bash -c 'for i in {1..15}; do if ping -c 1 ''mywebdav.server.url''; then mount ''/path/to/mountpoint''; break; else sleep 1; fi; done'
  +
ExecStop=umount ''/path/to/mountpoint''
  +
RemainAfterExit=true
  +
  +
[Install]
  +
WantedBy=default.target
 
}}
 
}}
  +
  +
これは、[[ユーザーユニット]] として使用することをお勧めします。
  +
  +
=== WebDAV リソースのマウント時のエラー '/etc/fstab のマウントオプションが異なる' ===
  +
  +
これは次の場合に発生します。:<br>
  +
1) webdav リソースとそのマウントポイントが /etc/fstab に設定されている<br>
  +
2) マウントポイントが ''mount'' コマンドに引数として渡されています (マウントポイントが /etc/fstab のものと同じであっても)<br>
  +
修正: /etc/fstab で指定された値が使用されるように、マウント時にマウントポイントを渡さないようにします。
  +
例えば:
  +
$ mount -t davfs https://mywebdav mymountpoint # incorrect
  +
different mount options in /etc/fstab
  +
$ mount -t davfs https://mywebdav # correct
  +
$
   
 
== 参照 ==
 
== 参照 ==
   
  +
*http://ajclarkson.co.uk/blog/auto-mount-webdav-raspberry-pi/
* http://doc.owncloud.org/server/6.0/user_manual/files/files.html
 

2023年5月27日 (土) 16:09時点における最新版

関連記事

davfs2WebDAV サーバーをディスクドライブとしてマウントできるようにする Linux ファイルシステムドライバーです。WebDAV は HTTP/1.1 を拡張してウェブリソースをリモートで共同で作成するプロトコルで、RFC 4918 で定義されています。

インストール

davfs2 パッケージをインストールしてください。

WebDAV のマウント

設定とマウントオプション

システム全体の設定ファイルは /etc/davfs2/davfs2.conf に、ユーザー個別の設定ファイルは ~/.davfs2/davfs2.conf になります。後者は通常のユーザーで実行されたときにシステム全体の設定よりも優先して読み込まれます。WebDAV やキャッシュ、デバッグ関連のオプションが存在します。利用可能なオプションと構文は davfs2.conf(5) を参照してください。

必要であればマウントオプションを使って設定ファイルのパスを定義したりファイルアクセスに関するオプションを設定できます。以下のコマンドでオプションのリストを確認できます:

$ mount.davfs -h

mount.davfs(8) にも説明とオプションが載っています。

コマンドラインを使う

WebDAV をマウントするときは直接 mount.davfs を使わずに mount を使用します:

# mount -t davfs http(s)://addres:<port>/path /mount/point

systemd を使う

systemd でマウントするには:

/etc/systemd/system/mnt-webdav-service.mount
[Unit]
Description=Mount WebDAV Service
After=network-online.target
Wants=network-online.target

[Mount]
What=http(s)://address:<port>/path
Where=/mnt/webdav/service
Options=uid=1000,file_mode=0664,dir_mode=2775,grpid
Type=davfs
TimeoutSec=15

[Install]
WantedBy=multi-user.target

systemd の automount ユニットを作成することでタイムアウトを設定できます:

/etc/systemd/system/mnt-webdav-service.automount
[Unit]
Description=Mount WebDAV Service
After=network-online.target
Wants=network-online.target

[Automount]
Where=/mnt/dav
TimeoutIdleSec=300

[Install]
WantedBy=remote-fs.target

systemd のマウントユニットを使用する方法について詳しくは Fstab#systemd による自動マウントを参照してください。

fstab を使う

webdav をファイルシステムにマウントする方法を定義するには、以下の形式で fstab のエントリを追加します:

/etc/fstab
https://webdav.example/path /mnt/webdav davfs rw,user,uid=username,noauto 0 0

username はマウントするファイルシステムの所有者に置き換えてください。数字の ID かユーザー ID で指定できますが、マウントユーザーと別の uid をマウントできるのは root だけです。

ヒントとテクニック

接続情報の保存

secrets ファイルを作成することで WebDAV サービスの接続情報を保存できます (通常ユーザーの場合は ~/.davfs2/secretsroot の場合は /etc/davfs2/secrets を使用):

/etc/davfs2/secrets
https://webdav.example/path davusername davpassword

secrets ファイルのパーミッションは適切に設定してください。例えば root でマウントする場合:

# chmod 600 /etc/davfs2/secrets
# chown root:root /etc/davfs2/secrets

通常ユーザーでマウントする場合:

$ chmod 600 ~/.davfs2/secrets

トラブルシューティング

ファイルの作成やコピーができない

ファイルを作成したりコピーできない場合やフリーズが発生するようなときは、設定ファイル を編集して use_locks 0 オプションを使ってください。パラメータのデフォルトは 1 で、書き込みを行うときにサーバー上のファイルをロックします。

シークレットファイルのパスワード

\" などのパスワード内の特殊文字に注意してください。\ でエスケープしてください。

ネットワークはオンラインですが、ドメインの検索に失敗する

network-online.target に到達しても WebDAV サーバーのドメインが見つからない場合があります。名前の検索が手動で成功するまで待つことができます。

まず、fstab を設定する必要があります。次に、15秒間 ping でサーバーに到達できるかどうかをテストし、成功した場合のみマウントを試行します。

/etc/systemd/system/mnt-webdav-service.service
[Unit]
Description=Mount WebDAV Service
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=bash -c 'for i in {1..15}; do if ping -c 1 mywebdav.server.url; then mount /path/to/mountpoint; break; else sleep 1; fi; done'
ExecStop=umount /path/to/mountpoint
RemainAfterExit=true

[Install]
WantedBy=default.target

これは、ユーザーユニット として使用することをお勧めします。

WebDAV リソースのマウント時のエラー '/etc/fstab のマウントオプションが異なる'

これは次の場合に発生します。:
1) webdav リソースとそのマウントポイントが /etc/fstab に設定されている
2) マウントポイントが mount コマンドに引数として渡されています (マウントポイントが /etc/fstab のものと同じであっても)
修正: /etc/fstab で指定された値が使用されるように、マウント時にマウントポイントを渡さないようにします。 例えば:

$ mount -t davfs https://mywebdav mymountpoint # incorrect
different mount options in /etc/fstab
$ mount -t davfs https://mywebdav # correct
$

参照