O sistema trava no desligamento se a unidade de rede do Windows no fstab

6

Eu adicionei uma unidade de rede do Windows (acessada usando WiFi) no meu fstab há cerca de um mês:

//Server/Location/foo/bar /media/myNetworkDrive/ cifs auto,iocharset=utf8,uid=umang,credentials=/root/.cifscredentials,file_mode=0775,dir_mode=0775 0 0

e funciona perfeitamente bem, exceto que leva cerca de um minuto para o sistema desligar. Eu tentei as soluções postadas em o wiki de ajuda , o wiki da equipe e em blogue . Um deles trabalhou por alguns desligamentos, mas o sistema voltou a demorar um minuto para desligar novamente.

EDITAR: Eu gostaria que um trabalho funcionasse para este problema. Atualmente, eu tenho um script que desmonta (senha necessária para privilégios de superusuário) e, em seguida, desliga o computador, mas eu gostaria de ser capaz de desligar da maneira usual e tê-lo desligado tão rápido.

    
por Umang 24.10.2010 / 23:18

3 respostas

3

Este é um bug bem conhecido: link

É um daqueles erros felizmente raros, mas ainda assim embaraçosos, de alto impacto e com mais de dois anos de duração que impactam negativamente o brilho do Ubuntu.

Ele deve afetar somente as conexões WIFI, mas não vejo nenhum detalhe sobre isso na sua pergunta. Se você está experimentando isso através de uma conexão com fio, então algo mais está em jogo aqui.

Até que o Network Manager seja consertado (ele encerra as conexões wi-fi muito rapidamente - antes que qualquer um dos scripts de inicialização sejam acionados), a única solução viável que consegui encontrar é usar o AutoFS.

Parafraseado no link

sudo apt-get install autofs

Crie /etc/auto.cifs com este conteúdo de arquivo:

#!/bin/bash
# $Id$
# This file must be executable to work! chmod 755!
key=""
# Note: create a cred file for each windows/Samba-Server in your network
#       which requires password authentification.  The file should contain
#       exactly two lines:
#          username=user
#          password=*****
#       Please don't use blank spaces to separate the equal sign from the
#       user account name or password.
credfile="/etc/auto.smb.$key"
# Note: Use cifs instead of smbfs:
mountopts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=user,gid=users"
smbclientopts=""
for P in /bin /sbin /usr/bin /usr/sbin
do
        if [ -x $P/smbclient ]
        then
                SMBCLIENT=$P/smbclient
                break
        fi
done
[ -x $SMBCLIENT ] || exit 1
if [ -e "$credfile" ]
then
        mountopts=$mountopts",credentials=$credfile"
        smbclientopts="-A "$credfile
else
        smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gL $key 2>/dev/null \
   | awk -v key="$key" -v opts="$mountopts" -F'|' -- '
        BEGIN   { ORS=""; first=1 }
    /Disk/  { if (first) { print opts; first=0 };
          gsub(/ /, "\ ", );
          sub(/$/, "\$", );
          print " \\n\t /" , "://" key "/"  }
        END     { if (!first) print "\n"; else exit 1 }
        '

(edite a linha mountops para refletir seu nome de usuário real)

Faça com que exectuable com sudo chmod 755 /etc/auto.cifs

Em seguida, adicione esta linha ao seu /etc/auto.master, na parte inferior:

/smb /etc/auto.cifs --timeout=60 --ghost

Finalmente, reinicie o autofs com esta linha (ou uma reinicialização funcionaria, é claro):

sudo service autofs restart

E você deve ser capaz de abrir o nautilus para / smb / server / share (ou ls -l /smb/Server/Share )

O desligamento, a suspensão e o modo de hibernação devem ser perfeitos.

Se você usar senhas para se conectar a seus compartilhamentos, você terá que adicionar outro arquivo em / etc / para cada servidor ao qual se conectar, com nome de usuário e senha especificados. Faça um "man autofs" para mais detalhes sobre isso, mas aqui está a essência:

Você precisa de um arquivo de credenciais para cada compartilhamento protegido por senha ao qual está se conectando. No seu caso, seu servidor é chamado de "Servidor", então crie o arquivo relevante com gksudo gedit /etc/auto.smb.Server . Em seguida, coloque isso no arquivo:

username=myusername
password=mypassword

(obviamente editando os campos conforme necessário).

Em seguida, você precisará garantir que esse arquivo seja legível somente por root com sudo chmod 600 /etc/auto.smb.Server .

Em seguida, reinicie o autofs como acima e tente navegar / smb / Server - você deverá ver uma lista de seus compartilhamentos.

Se você se conectar usando um endereço IP, precisará repetir esse processo para /etc/auto.smb.192.168.1.10 ou qualquer outra coisa.

    
por Scaine 12.12.2010 / 10:05
0

Você deve usar o guia que mostra como fazer um script de desligamento do desligamento e verificar se ele ainda está ativado. Upgrades ou atualizações poderiam, teoricamente, tê-lo derrubado. Verifique se o seu script está em /etc/rc0.d e se tem o nome S01smb_umount ou semelhante, por isso é executado como o primeiro pedido de negócios.

Caso contrário, você pode acabar desmontando a unidade samba normalmente (esperando, esperando) e então executando o seu script. O que não faria nada.

    
por Martin Owens -doctormo- 12.11.2010 / 06:29
0

Eu tive o mesmo problema com um compartilhamento de samba do servidor Win2003 e seguindo este guia resolveu o problema.

    
por nejode 21.01.2011 / 18:16