16.04 CIFS “O host está inoperante”, mas eles não estão

26

Eu tenho minha configuração CIFS no fstab e eles estão funcionando como deveriam na inicialização. Eles montam como deveriam e trabalham por um tempo. Parece que do nada (pode ocorrer após o desbloqueio da máquina, etc.), recebo o erro "O host está inoperante" ao tentar acessá-lo. Eu tenho vários e eles estão todos em baixo. Eles também são compartilhados no mesmo servidor. Neste momento, verifico em um computador Windows e em uma máquina 14.04 desatualizada e eles estão em funcionamento e funcionando como deveriam. Depois de clicar nos compartilhamentos do nautilus e obter erros de repetição, eles começarão a trabalhar novamente. Para acessar um compartilhamento "inativo", são necessários cerca de 2 a 3 minutos ao clicar aleatoriamente em montagens diferentes e voltar ao primeiro quando, automaticamente, ele mostra os dados no ponto de montagem.

Não tenho esse problema nas máquinas 14.04 que não são atualizadas há algum tempo. Todas essas máquinas são totalmente funcionais e o CIFS nunca cai "para baixo". Em 16.04, eles não eram um problema até mais recentemente.

Fiz questão de atualizar todos os dias e limpei os cabeçalhos antigos do linux (em retrospectiva eu ​​provavelmente deveria ter revertido). Faço isso porque estou implorando para que uma correção apareça, mas há semanas lutando contra montagens CIFS sem nenhuma solução.

DevinM
fonte
Estou tendo exatamente o mesmo problema. Recentemente começou há algumas semanas. Alguma sorte?
23617 Ian H das
Não, ainda enfrenta o mesmo problema. Você está executando o gnome-shell por acaso? Estou começando a me perguntar se este foi o ponto de viragem, porque eu tenho um laptop que foi ok até gnome-shell
DevinM
Não, eu uso o urxvt. Eu acho que isso é um bug no fusível.
30517 Ian H das
Related - serverfault.com/a/842686/301458
David Refoua

Respostas:

13

Estou enfrentando o mesmo problema. Parece que tem algo a ver com as versões mais recentes do Kernel e samba.

Eu consegui resolver isso adicionando vers = 2.0 nos comandos mount (ou no final de cada linha do fstab)

josepcoves
fonte
3
Você poderia tentar deixar isso mais claro para os outros? Mostre a linha do seu fstab ou shell e explique por que isso ajuda?
Zanna
Oi, eu apliquei essa solução alternativa seguindo os passos indicados na barra de lançamento: bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1687273
josepcoves
Estou testando essa correção agora. Por enquanto, tudo bem. Se ainda estiver funcionando amanhã, aceitarei isso como resposta. Obrigado pela informação!
DevinM
Não funciona para mim - você pode postar o que fez? Como você informa qual número de versão usar?
hippyjim
4
Como esta é a resposta aceita, talvez deva mencionar que experimentar os valores válidos versproduziria os melhores resultados, em vez de recomendar uma versão de protocolo específica (que não funcionará em servidores desatualizados). Comece com uma versão de alto protocolo e desça um a um. Se você terminar com vers=1.0o servidor remoto, poderá ser necessário fazer upgrade (se possível) ou garantir a segurança .
0xC0000022L
37

Após muitos testes, adicionar vers=1.0a linha de montagem parece corrigir o problema. A montagem funciona agora no Ubuntu 17.10 como durante anos em versões mais antigas do Ubuntu.

Stéphane PIOTROWSKI
fonte
3
Após muitas tentativas de 10 x, esta é a única solução que funcionou. vers=2.0não funcionou.
Olivier Pons
Eu não sei sobre vers = 1.0 vs 2.0 ou 3.0, e não consigo encontrar nenhuma menção nas páginas de manual, mas isso funcionou para mim.
Greg Chabala
3
//192.168.1.222/volume_1 / media / nas cifs nome de usuário = ****, senha = ****, vers = 1.0
Steven
@ GregChabala: talvez confira, mount.cifs(8)ou seja, com man 8 mount.cifs? Com a mount.cifsversão 6.8 (do cifs-utilspacote), a página de manual contém uma menção de vers=arg.
0xC0000022L
7

Eu já enfrentei o mesmo problema, queria montar automaticamente usando o método encontrado no wiki do Ubuntu ( https://wiki.ubuntu.com/MountWindowsSharesPermanently ), embora eu tenha o mesmo problema, como mencionado acima:mount error(112): Host is down

A questão é o que me ajudou a adicionar vers=3.0as opções e:

//servername/sharename /media/windowMBsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm,vers=3.0 0 0

Parece que só funciona agora se você ignorar o SMB1 e usar outro especificado, o SMB3 funcionou para mim, por isso não tentei mais nada.

Eu usei uma conta local na máquina Windows e não uma com o nome de domínio outlook.com, pois li algo que isso também pode causar conflitos.

user695658
fonte
parece que uma atualização recente da compilação 16232.rs_prerelease.170624-1334 do windows 10 pro insider incluiu uma alteração que exigia que eu adicionasse vers=3.0para montar um compartilhamento que estava funcionando anteriormente sem ele.
precisa
6

Outros já sugeriram a solução, mas pode valer a pena explicar em breve o motivo.

mount.cifs no Ubuntu 16.04 usa o protocolo SMB1 por padrão.

Nas versões posteriores mount.cifs, a versão SMB padrão é 2.1 ou 3.0.

Os servidores atuais do Windows não oferecem mais suporte ao protocolo SMB 1.0, a menos que especificamente configurado em seu registro para aceitá-lo. Portanto, por padrão, eles rejeitam conexões de clientes usando o protocolo SMB1. O que leva à mensagem enganosa "O host está inoperante".

Mas alguns sistemas mais antigos (geralmente NASes) não suportam os protocolos 2.1 ou 3.

A solução é dizer mount.cifspara usar o protocolo certo para se conectar ao seu servidor, usando a vers=opção Por exemplo, para conectar-se a uma máquina Windows 10:

mount -t cifs ... -o vers=3.0,...

ou para um NAS antigo do Ubuntu 18.04 ou posterior:

mount -t cifs ... -o vers=1.0,...

De man mount.cifs(no Ubuntu 16.04):

   vers=
       SMB protocol version. Allowed values are:

       ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

       ·   2.0 - The SMBv2.002 protocol. This was initially introduced in
           Windows Vista Service Pack 1, and Windows Server 2008. Note
           that the initial release version of Windows Vista spoke a
           slightly different dialect (2.000) that is not supported.

       ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft
           Windows 7 and Windows Server 2008R2.

       ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft
           Windows 8 and Windows Server 2012.

       Note too that while this option governs the protocol version used,
       not all features of each version are available.

Se você definir sua montagem /etc/fstab, pode ser algo como isto:

//server/share  /mnt/share  cifs  defaults,vers=3.0,...your_other_options...,nofail,x-systemd.device-timeout=15 0 0
mivk
fonte
cifs vers = 1.0, credenciais = / root / .smbcredentials, funcionou para mim em 18.04 LTS. A inclusão de "padrões" no fsatb gerou um erro de análise, portanto, a exclusão desse texto evitava o erro.
Graham
@Graham smb1 é extremamente desatualizado e perigoso. Também é mais lento. Tente chegar a pelo menosvers=2.1
Joel Coehoorn
@JoelCoehoorn, mas o vers = 1.0 funcionou, enquanto as versões posteriores não funcionaram ... Comecei no 3 e alterei o vers até o 1.0 funcionar. Desde então, absolutamente sem problemas.
Graham
@ Graham Então você precisa consertar o host ao qual está se conectando, para que ele suporte smb2.1 ou posterior. SMB1.0 é muito ruim .
Joel Coehoorn
@JoelCoehoorn Segui os conselhos contidos neste tópico: serverfault.com/questions/414074/mount-cifs-host-is-down para resolver o problema. Apenas tentei vers = 3.0 novamente e o mesmo erro persiste e a unidade não monta. O que há de tão terrível em vers = 1,0?
Graham
0

Eu tive o mesmo problema após uma atualização do cliente do cifs-utils para 6.7-2. E basicamente a solução de josepcoves e user695658 funcionou para mim. Mas apenas o valor 1.0 para a opção de montagem 'vers' funcionou para mim. Parece que o valor padrão para o param 'vers' não é mais 1,0.

dev-null
fonte
Esta é uma duplicata da resposta aceita.
22418