RHEL 5.5を実行しているシステムがあり、autofs
を使用してサーバーにWindows共有をマウントしようとしています。 (起動時にネットワークの準備ができていないため、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しても結果は返されません。私はこれらすべてのガイドをウェブでフォローしてきましたが、それらを理解していないか、they.just.don't.workです。
ありがとうございました
/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で指定されたもののサブフォルダーとして、以下の情報を使用してテストをマウントしてください。 (つまりslmが正しく指摘されているため、マウントは/test/test
になります)。
つまり、ls /test/test
は//server/test
の内容を表示します
/ test-> // server/testの本来の目的を達成するには、次のようにします。
/ etc/auto.master
## Mount this test share:
/ /etc/auto.test --timeout=60
他のいくつかのメモ。次のマウントオプションが便利だと思いました。
rw
-読み取り/書き込みでマウントします
noserverino
-iノード番号のサポートに関するエラーメッセージを削除します
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にマウントし、/ net/the_test_mountを指すシンボリックリンク/ testを作成します。
私はCentOS 5.6ボックスでこれを実行しました。問題の一部はauto.testファイルにある可能性があります。現在の形式では、/ testマウントポイントを作成し、その下にテストの単一の山、つまり/ test/testを作成します。また、次のように--ghostスイッチをauto.master行に追加することもできます。
/test /etc/auto.test --timeout=60 --ghost
--ghostスイッチは、特定の共有がアクティブにマウントされていない場合でも、マウントポイントのスタブを作成します。
SMB/CIFS共有をマウントする方法については、この CentOS wikiのヒントとコツのページ を参照してください。
アイデア#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/&