檔案系統管理(四)

自動掛載 Atomounter

自動掛載可以監控掛載點的存取,自動在存取時掛載起來,使用完畢後自動卸載,例如光碟機、隨身碟、及 NIS 用戶端登入等,都可以用到 automounter,它是由 autofs 所提供的服務,它可以在 /etc/auto.master 中設定。

來看一下 /etc/auto.master 的設定:
# grep -v “#” /etc/auto.master
/misc   /etc/auto.misc (光碟的自動掛載設定在 /etc/auto.misc 這個檔案中)
/net    -hosts (這一行是設定當網路上有 NFS 分享的電腦,可以直接 cd /net/HOST_NAME 自動掛載 HOST_NAME 這台電腦的 NFS 檔案系統)
+auto.master

自動掛載分成直接模式 (direct) 和間接模式 (indirect)。

==============================

間接模式

間接模式是在 auto.master 設定:
#掛載點    參照檔
/misc      /etc/auto.misc

而參照檔的內容則是:
# cat /etc/auto.misc
虛擬掛載點      參數      主機名稱或 IP:裝置或分享目錄 (虛擬掛載點不可以在本機上真有此目錄,且前面不可加 / 符號)
cd              -fstype=iso9660,ro,nosuid,nodev     :/dev/cdrom (本機的主機名稱可省略)
# the following entries are samples to pique your imagination (底下是一些範例檔)
#linux          -ro,soft,intr           ftp.example.org:/pub/linux
#boot           -fstype=ext2            :/dev/hda1
#floppy         -fstype=auto            :/dev/fd0
#floppy         -fstype=ext2            :/dev/fd0
#e2floppy       -fstype=ext2            :/dev/fd0
#jaz            -fstype=ext2            :/dev/sdc1
#removable      -fstype=ext2            :/dev/hdd

測試一下:
# echo “myvar  :/var” >> /etc/auto.misc (在 /etc/auto.misc 中補上 myvar  :/var 這一行,因為 auto.misc 這個檔案是參照到 /misc 目錄底下,所以我們的虛擬路徑是 /misc/myvar ,不加任何參數,自動掛載本機的 /var 目錄)
# service autofs restart (修改完後重新啟動 autofs 服務,其實不用重新啟動,因為在 auto.master 已經宣告叫系統監控 /misc 這個目錄,只是用 restart 來確定 autofs 有啟動)
正在停止 automount:                                        [  確定 ]
正在啟動 automount:                                        [  確定 ]

# mount (看一下現在的所有掛載,/var 還沒被掛載起來)
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
# ls /misc/myvar (存取一下虛擬路徑,看會不會自動掛載)
account  cvs    ftp    kerberos  lock  named  preserve  spool  www
cache    db     games  lib       log   nis    racoon    tmp    yp
crash    empty  gdm    local     mail  opt    run       tux
(真的有列出子目錄)
# mount (檢查一下掛載點)
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
/var on /misc/myvar type none (rw,bind)
(/var 已經掛載到 /misc/myvar 上了)

也可以使用這個方式來掛載 NFS 目錄:
# echo “mynfs  -fstype=nfs,rw,soft  192.168.0.2:/var/ftp/pub” >> /etc/auto.misc (將這一行設定補到 /etc/auto.misc 裡面,順便加上參數,不加也可以,會用預設的參數掛載)
# ls /misc/mynfs (不重新啟動 autofs 直接存取 /misc/mynfs 這個虛擬目錄)
192.168.0.2.NFS (裡面有檔案,應該是掛載起來了)
# mount (用 mount 來確定一下)
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
/var/ftp/pub on /misc/mynfs type none (rw,bind)
(已經掛載起來了,剛才的 /misc/myvar 已經自動卸載)

設定檔中有萬用字元 (wildcard) * 和 &,如:
在 auto.master 中:
/home    /etc/auto.home
建立 /etc/auto.home 檔案:
*      -fstype=nfs,rw,soft    NFS_SERVER:/home/&
這在 NIS 認證登入相當有用,因為 NIS 在本機中 /home 裡面沒有家目錄,可是在 NFS Server 中有其分享出來的目錄,所以當任何帳號登入時,會自動掛載該帳號的 NFS 目錄,例如說 kevin 登入時會進入家目錄 /home/kevin,這時 autofs 會自動掛載 NFS_SERVER:/home/kevin 到 /home/kevin 中。

==============================

直接模式

直接模式要在 /etc/auto.master 中加入一行設定:
/-    /etc/auto.direct (/- 就代表後面的設定檔是用直接模式來自動掛載,設定檔在 /etc/auto.direct 中)

實習一下:
# echo “/-  /etc/auto.direct” >> /etc/auto.master (在 /auto.master 中補上這一行)
# echo “/MySYS  :/sys” > /etc/auto.direct (直接模式的設定要寫「絕對路徑」,要從 / 開始。這行設定是把 /MySYS 的虛擬目錄(也是不要先建立) 對應到本機 /sys 這個目錄,並建立 /etc/auto.direct 這個檔案)
# echo “/Other/MyVar  :/var” >> /etc/auto.direct (在 /etc/auto.direct 中補上 /Other/MyVar 參照到本機的 /var)
# service autofs restart (因為改了 auto.master,所以 autofs 要重新啟動,另外,直接模式如果改了設定檔也要重新啟動 autofs 才會生效)
正在停止 automount:                                        [  確定 ]
正在啟動 automount:                                        [  確定 ]

# ls /MySYS (/MySYS 裡面有東西)
block  bus  class  devices  firmware  fs  kernel  module  power
# ls /Other/MyVar (/Other/MyVar 裡面也有東西)
account  cvs    ftp    kerberos  lock  named  preserve  spool  www
cache    db     games  lib       log   nis    racoon    tmp    yp
crash    empty  gdm    local     mail  opt    run       tux

# mount (檢查一下)
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
/sys on /MySYS type none (rw,bind)
(掛載起來了)
/var on /Other/MyVar type none (rw,bind) (掛載起來了)

==============================

在〈檔案系統管理(四)〉中有 1 則留言

  1. 自動引用通知: ISHM Blog » 網路檔案系統服務 (NFS)

留言功能已關閉。