web-dev-qa-db-ja.com

unionfs-fuseファイルシステムを自動マウントするにはどうすればよいですか?

シェルコマンドを実行できます。

unionfs-Fuse /changedata=RW:/immutedata=RO -o cow /data

これにより、ファイルシステムが思い通りにマウントされます。次に、必要に応じて再マウントできるように、自動マウンターに組み込む必要があります。

/etc/auto.miscで試したこと:

/data -fstype=Fuse,cow /changedata=RW:/immutedata=RO

Ls/dataを実行すると、automount --debug -f /etc/auto.masterが何を言うか:

handle_packet: type = 5
handle_packet_missing_direct: token 19, name /data, request pid 6063
attempting to mount entry /data
lookup_mount: lookup(file): looking up /data
lookup_mount: lookup(file): /data -> -fstype=Fuse,cow /changedata=RW:/immutedata=RO
parse_mount: parse(Sun): expanded entry: -fstype=Fuse,cow /changedata=RW:/immutedata=RO
parse_mount: parse(Sun): gathered options: fstype=Fuse,cow
parse_mount: parse(Sun): dequote("/changedata=RW:/immutedata=RO") -> /changedata=RW:/immutedata=RO
parse_mapent: parse(Sun): gathered options: fstype=Fuse,cow
parse(Sun): invalid location 
dev_ioctl_send_fail: token = 19
failed to mount /data

Googleはほとんど明らかにしません。このファイルシステムの組み込みでは、manページはかなり空です。

たぶん/ etc/fstabに入れて、ユーザーに再マウントするように頼むべきでしょうか?

autofsを使用したunionfsの自動マウント

TLDR/etc/auto.miscに次のエントリを作成し、etc/auto.masterに含めます(以下で説明します)。

data    -fstype=Fuse,cow,allow_other :unionfs\#/changedata=RW\:/immutedata=RO

ボーナス:nfs自動マウントの上にunionfs自動マウントを作成(autofsを適切に構成する方法を説明するため)

NFSv4を使用する場合、/etc/default/nfs-commonでIMAPDを有効にします

NEED_IDMAPD=yes

Autofsが常にマウント用のディレクトリを作成するようにするには、/etc/autofs.confでbrowse_modeを有効にします

browse_mode = yes

コア部分に:/etc/auto.masterに次の行を追加します

# automount all nfs volumes under /nfs and misc filesystems under /mnt
/nfs   /etc/auto.nfs
/mnt   /etc/auto.misc

autofsは、/etc/auto.nfsの下の/nfs/<mount>で指定されたすべてのファイルシステムと、/etc/auto.miscの下の/mnt/<mount>で指定されたすべてのファイルシステムをマウントします。

/etc/auto.nfsには、次の(例)エントリがあります。

# FileServer: nfs data configuration
data01 -fstype=nfs4,ro,soft,intr,rsize=8192,wsize=8192,nosuid,tcp,allow_other 192.168.3.100:/mnt/data01
data02 -fstype=nfs4,ro,soft,intr,rsize=8192,wsize=8192,nosuid,tcp,allow_other 192.168.3.100:/mnt/data02
data03 -fstype=nfs4,ro,soft,intr,rsize=8192,wsize=8192,nosuid,tcp,allow_other 192.168.3.100:/mnt/data03
data04 -fstype=nfs4,ro,soft,intr,rsize=8192,wsize=8192,nosuid,tcp,allow_other 192.168.3.100:/mnt/data04
data05 -fstype=nfs4,ro,soft,intr,rsize=8192,wsize=8192,nosuid,tcp,allow_other 192.168.3.100:/mnt/data05

/etc/auto.miscにunionfsの次のエントリを追加しました

# unionfs mount of all /nfs/data* mounts into /mnt/data
data    -fstype=Fuse,allow_other,use_ino,ro,noatime :unionfs\#/nfs/data01=RO\:/nfs/data02=RO\:/nfs/data03=RO\:/nfs/data04=RO\:/nfs/data05=RO

すべてのファイルに644の許可があることを確認します(必要に応じてchown 644 /etc/auto.{nfs,misc}で調整します)

その後、autofsを有効にして、サービスを再起動できます。

# reload autofs to enable all shares
systemctl enable autofs
systemctl restart autofs

これで、ls /mnt/dataを実行できるはずです。

2
rwenz3l

答えるには遅すぎることはわかっていますが、Ubuntuの/ etc/fstabに以下を追加すると動作します。

/dir/A=RW:/dir/B=RO /dir/my-union Fuse.unionfs-Fuse allow_other,cow,use_ino  0   0
1
Loki Arya