Система зависает при выключении, если сетевой диск Windows находится в fstab

Я добавил сетевой диск Windows (доступ к которому осуществляется через Wi-Fi) в свой fstab около месяца назад:

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

, и он отлично работает, за исключением того, что для выключения системы требуется около полной минуты. Я пробовал решения, опубликованные в справочной вики , коллективной вики и в этом блоге . Один из них работал в течение нескольких остановок, но затем система снова заняла минуту, чтобы снова отключиться.

РЕДАКТИРОВАТЬ: Я хотел бы, чтобы работал , чтобы обойти эту проблему. В настоящее время у меня есть сценарий, который отключается (пароль требуется для привилегий суперпользователя), а затем выключает компьютер, но я хотел бы иметь возможность отключить его обычным способом и отключить его так же быстро.

6
задан 14 December 2010 в 09:07

3 ответа

Это хорошо известная ошибка: https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/211631?comments=all

Это один из тех, к счастью, редких, но тем не менее смущающих, сильных, более двухлетних ошибок, которые негативно влияют на блеск Ubuntu.

Это должно повлиять только на соединения WIFI, но я не вижу подробностей об этом в вашем вопросе. Если вы испытываете это по проводному соединению, то здесь есть что-то еще.

До тех пор, пока Network Manager не будет исправлен (он слишком быстро отключает Wi-Fi-соединения - до запуска любого из сценариев инициализации), единственный возможный обходной путь, который я мог найти, - это использовать AutoFS.

Перефразировано из http://www.howtoforge.com/accessing_windows_or_samba_shares_using_autofs

sudo apt-get install autofs

Создать /etc/auto.cifs с этим содержимым файла:

#!/bin/bash
# $Id$
# This file must be executable to work! chmod 755!
key="$1"
# 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(/ /, "\\ ", $2);
          sub(/\$/, "\\$", $2);
          print " \\\n\t /" $2, "://" key "/" $2 }
        END     { if (!first) print "\n"; else exit 1 }
        '
[ 1117] (отредактируйте строку mountops, чтобы отразить ваше настоящее имя пользователя)

Сделайте ее доступной с помощью sudo chmod 755 /etc/auto.cifs

Затем добавьте эту строку в ваш / etc / auto. master, внизу:

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

Наконец, перезапустите autofs с этой строкой (или перезагрузка будет работать, конечно):

sudo service autofs restart

И тогда вы сможете открыть nautilus to / smb / server / share (или ls -l /smb/Server/Share)

Завершение работы, приостановка, переход в спящий режим должны выполняться без проблем.

Если вы используете пароли для подключения к общим ресурсам, вам нужно добавить еще один файл в / etc / для каждого сервера, к которому вы подключаетесь, с указанием имени пользователя и пароля. Сделайте «man autofs» для более подробной информации, но вот суть:

Вам нужен один файл учетных данных для каждого защищенного паролем общего ресурса, к которому вы подключаетесь. В вашем случае ваш сервер называется «Сервер», поэтому создайте соответствующий файл с помощью gksudo gedit /etc/auto.smb.Server. Затем поместите это в этот файл:

username=myusername
password=mypassword

(очевидно, редактируя поля по мере необходимости).

Затем вам нужно убедиться, что этот файл доступен для чтения только пользователю root с помощью sudo chmod 600 /etc/auto.smb.Server.

Затем перезапустите autofs, как описано выше, и попробуйте просмотреть / smb / Server - вы должны увидеть список ваших общих ресурсов.

Если вы подключаетесь с использованием IP-адреса, вам нужно будет повторить этот процесс для /etc/auto.smb.192.168.1.10 или чего-либо другого.

0
ответ дан 14 December 2010 в 09:07

Вам следует использовать руководство, в котором показано, как создать сценарий отключения для отключения, и убедитесь, что он по-прежнему включен. Обновления или обновления теоретически могли бы сбить его с ног. Убедитесь, что ваш сценарий находится в /etc/rc0.d и что он называется S01smb_umount или похожим, чтобы он выполнялся как первый заказ.

В противном случае у вас может получиться отключить диск samba в обычном режиме (ожидание, ожидание), а затем запустить скрипт. Который ничего не сделает.

0
ответ дан 14 December 2010 в 09:07

У меня была такая же проблема с общим ресурсом samba сервера Win2003, и после это руководство устранило проблему.

0
ответ дан 14 December 2010 в 09:07

Другие вопросы по тегам:

Похожие вопросы: