Смонтировать CIFS поделиться с автофо
У меня есть система под управлением RHEL 5.5, и я пытаюсь смонтировать общий ресурс Windows на сервере, используя autofs
, (Из-за того, что сеть не готова при запуске, я не хочу использовать fstab
.) Я могу смонтировать акции вручную, но autofs
просто не монтирует их.
Вот файлы, с которыми я работаю:
В конце /etc/auto.master
, Я имею:
## Mount this test share:
/test /etc/auto.test --timeout=60
В /etc/auto.test
, Я имею:
test -fstype=cifs,username=testuser,domain=domain.com,password=password ://server/test
Затем я перезапустить autofs
оказание услуг.
Однако это не работает. ls
-ing каталог не возвращает никаких результатов. Я следовал всем этим инструкциям в Интернете, и я либо не понимаю их, либо они просто не работают.
Благодарю вас
4 ответа
Уже должен быть файл /etc/auto.smb, используйте его и добавьте следующую строку в /etc/auto.master:
/cifs /etc/auto.smb --timeout=60
Теперь все акции cifs будут отображаться в /cifs:
ls /cifs/<server>
покажет все доступные акции. Возможно, вы захотите поместить некоторые параметры в /etc/auto.smb для монтирования в определенных режимах. У меня есть auto.smb, который я где-то обнаружил и изменил, чтобы сделать именно это:
#!/bin/bash
# $Id: auto.smb,v 1.3 2005/04/05 13:02:09 raven Exp $
# This file must be executable to work! chmod 755!
key="$1"
credfile="/etc/auto.smb.$key"
opts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=eng,gid=eng"
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
opts=$opts",credentials=$credfile"
smbclientopts="-A "$credfile
else
smbclientopts="-N"
fi
$SMBCLIENT $smbclientopts -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
BEGIN { ORS=""; first=1 }
/Disk/ {
if (first)
print opts; first=0
dir = $2
loc = $2
# Enclose mount dir and location in quotes
# Double quote "$" in location as it is special
gsub(/\$$/, "\\$", loc);
print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
}
END { if (!first) print "\n"; else exit 1 }
'
Это будет делать то, что вы хотите. Я использовал это сам.
Так как я только что потратил все свое утро на устранение этой же проблемы. Позвольте мне объяснить, что случилось выше.
/etc/auto.master
## Mount this test share:
/test /etc/auto.test --timeout=60
Это означает, что я хочу смонтировать что-то в /test
а подробности читайте /etc/auto.test
/etc/auto.test
test -fstype=cifs,username=testuser,domain=domain.com,password=password ://server/test
Это означает, что в качестве подпапки того, что было указано в auto.master, смонтируйте test со следующей информацией. (т.е. крепление будет/test/test
как правильно указал slm).
Это означает, что ls /test/test
будет отображать содержимое //server/test
Для достижения первоначальной цели /test -> //server/test вам нужно следующее:
/etc/auto.master
## Mount this test share:
/ /etc/auto.test --timeout=60
Пара других заметок. Я нашел следующие опции монтирования полезными.
rw
- смонтировать его читать / писать
noserverino
- удаляет сообщение об ошибке о поддержке номера индекса
credentials=[credential file]
- это позволяет вам создать отдельный файл с учетными данными в них. Он имеет следующий формат:
username=[windows username, domain can be included as well]
password=[windows password]
РЕДАКТИРОВАТЬ - 2013-06-17 13:28 PM GMT-8
slm в комментариях указал, что монтирование в корень файловой системы может быть опасным. lsd в комментариях предлагает обходной путь, который заключается в создании символической ссылки из корня файловой системы в другое место, где вы будете монтировать, чтобы не перекрывать что-то общее. Например, если вы хотите, чтобы / test был монтированием, то вы фактически монтируете материал в /net/the_test_mount, а затем создаете символическую ссылку / test, которая указывает на /net/the_test_mount
Я только что сделал это на CentOS 5.6 и думаю, что часть вашей проблемы может быть связана с файлом auto.test. В его текущей форме вы создадите точку монтирования / test, а затем под ней - один тест, т. Е. / Test / test. Также вы можете добавить ключ --ghost в строку auto.master следующим образом:
/test /etc/auto.test --timeout=60 --ghost
Ключ --ghost создает заглушки точек монтирования, даже если данный ресурс не монтируется активно.
На этой вики-странице CentOS Wiki приведены полезные советы о том, как монтировать SMB/CIFS-ресурсы.
Советы по монтажу
- Windows Share = \ mysmb \ share1
- Unix Dir. = / test / dir1
идея № 1
# /etc/auto.master
/test /etc/auto.test --timeout=600 --ghost
# /etc/auto.test
dir1 -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/dir1
dir2 -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/dir2
идея № 2
# /etc/auto.master
/test /etc/auto.test --timeout=600 --ghost
# /etc/auto.test
* -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/&
Если вы используете cifs, рекомендуется также использовать _netdev
параметр.
_netdev
это потому, что файловая система находится на устройстве, которое требует доступа к сети, это используется для предотвращения попытки системы смонтировать эти файловые системы, пока сеть не будет включена в хост-системе.