Montando o subdiretório USB para exportação NFS

1

Ubuntu 18.04.1 LTS

Estou com problemas para exportar um diretório de uma unidade USB. Eu tenho um número de exportações configuradas de forma semelhante às permissões e eles estão bem.

Aqui está o erro:

mount --bind /mnt/usb2T/inbox /export/inbox
mount: /export/inbox: mount(2) system call failed: No such file or directory.

E aqui estão os diretórios envolvidos no problema:

O drive USB:

ls -la /mnt/
drwxrwxr-x  7 root users 4096 Sep 14 14:29 usb2T

montado com sucesso para exportar como

/mnt/usb2T /export/usb2T nfs bind 0 0

e exportados e montados com sucesso por clientes como

/export/usb2T 10.0.0.0/24(rw,nohide,insecure,no_subtree_check,async)

No entanto, quando eu tento a mesma abordagem com um subdiretório do usb2T, tenho problemas:

ls -la /mnt/usb2T/inbox | wc -l
96

Portanto, ele existe e há arquivos lá.

E o diretório / export / inbox também:

ls -la /export
drwxrwxr-x  0 root users    0 Sep 14 14:29 inbox
drwxrwxr-x  7 root users 4096 Sep 14 14:29 usb2T

A montagem de ligação é tentada com esta linha no fstab:

/mnt/usb2T/inbox /export/inbox nfs bind 0 0

Por que estou recebendo esse erro?

    
por Stephen Boston 15.09.2018 / 00:15

1 resposta

2

O Ubuntu 18.04.1 LTS é novo o suficiente para usar systemd e systemd não monta os sistemas de arquivos listados em /etc/fstab apenas com um tradicional mount -a .

Em vez disso, ele gera automaticamente um% unit .mount -tipo arquivo unitário para cada linha /etc/fstab , adiciona algumas dependências padrão a essas unidades e executa essas unidades em paralelo no momento da inicialização , basicamente o mais breve possível.

O truque é que, a menos que systemd seja explicitamente informado de que uma montagem depende de outra já feita, não há garantia de nenhuma ordem específica. A ordenação de /etc/fstab lines não tem significado, como uma vez poderia ter tido com mount -a .

Sua segunda montagem de ligação só poderá ser bem-sucedida se /mnt/usb2T já estiver montado. Para informar esse requisito para systemd , você precisará alterar sua linha fstab para esta:

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires=/mnt/usb2T 0 0

Ou, dependendo da systemd versão usada, para isso:

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires-mounts-for=/mnt/usb2T 0 0

(Tecnicamente, em montagens de ligação, o tipo de sistema de arquivos na linha fstab provavelmente deve ser none em vez de nfs , mas acho que isso é ignorado com montagens de ligação de qualquer maneira.)

    
por 15.09.2018 / 01:58

Tags