Posso executar o comando shell:
unionfs-fuse /changedata=RW:/immutedata=RO -o cow /data
Isso monta o sistema de arquivos exatamente como eu quero. Agora preciso incorporá-lo ao montador automático para que seja remontado conforme necessário.
O que tentei em /etc/auto.misc:
/data -fstype=fuse,cow /changedata=RW:/immutedata=RO
O que automount --debug -f /etc/auto.master diz quando faço ls /data:
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
O Google revela pouco. As páginas de manual estão bastante vazias na incorporação deste sistema de arquivos.
Talvez eu deva colocá-lo em /etc/fstab e pedir aos usuários que remontem?
Responder1
Eu sei que é tarde demais para responder, mas adicionar o seguinte ao /etc/fstab no Ubuntu funciona,
/dir/A=RW:/dir/B=RO /dir/my-union fuse.unionfs-fuse allow_other,cow,use_ino 0 0
Responder2
montagem automática de unionfs com autofs
TLDR: crie a seguinte entrada /etc/auto.misc
e inclua-a em seu etc/auto.master
(conforme descrito abaixo).
data -fstype=fuse,cow,allow_other :unionfs\#/changedata=RW\:/immutedata=RO
Bônus: Criando uma montagem automática unionfs sobre montagens automáticas nfs (para ilustrar como configurar o autofs corretamente)
Ao usar o NFSv4, habilite o IMAPD em/etc/default/nfs-common
NEED_IDMAPD=yes
Se você deseja que o autofs sempre crie diretórios para suas montagens, habilite o Browse_mode em/etc/autofs.conf
browse_mode = yes
Agora para a parte principal: adicione /etc/auto.master
as seguintes linhas
# automount all nfs volumes under /nfs and misc filesystems under /mnt
/nfs /etc/auto.nfs
/mnt /etc/auto.misc
autofs montará todos os sistemas de arquivos especificados em /etc/auto.nfs
under /nfs/<mount>
e todos os sistemas de arquivos especificados em /etc/auto.misc
under /mnt/<mount>
.
No meu /etc/auto.nfs
eu tenho as seguintes entradas (exemplo):
# 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
E no meu /etc/auto.misc
adicionei a seguinte entrada para 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
Certifique-se de que todos os arquivos tenham permissão de 644
(ajuste chown 644 /etc/auto.{nfs,misc}
se necessário)
Então você pode habilitar o autofs e reiniciar o serviço.
# reload autofs to enable all shares
systemctl enable autofs
systemctl restart autofs
Agora você deve ser capaz de fazer umls /mnt/data