歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LFCS 系列第五講:如何在 Linux 中掛載/卸載本地文件系統和網絡文件系統(Samba 和 NFS)

LFCS 系列第五講:如何在 Linux 中掛載/卸載本地文件系統和網絡文件系統(Samba 和 NFS)

日期:2017/2/28 13:53:06   编辑:Linux教程

Linux 基金會已經發起了一個全新的 LFCS(Linux 基金會認證系統管理員(Linux Foundation Certified Sysadmin))認證,旨在讓來自世界各地的人有機會參加到 LFCS 測試,獲得關於有能力在 Linux 系統中執行中間系統管理任務的認證。該認證包括:維護正在運行的系統和服務的能力、全面監控和分析的能力以及何時向上游團隊請求支持的決策能力。

LFCS 系列第五講

本講是系列教程中的第五講,在這一講裡邊,我們會解釋如何在 Linux 中掛載/卸載本地和網絡文件系統。這些都是 LFCS 認證中的必備知識。

掛載文件系統

在個硬盤分好區之後,Linux 需要通過某些方式對硬盤分區上的數據進行訪問。Linux 並不會像 DOS 或者 Windows 那樣給每個硬盤分區分配一個字母來作為盤符,而是將硬盤分區掛載到統一的目錄樹上的掛載點。

掛載點是一個目錄,掛載是一種訪問分區上文件系統的方法,掛載文件系統實際上是將一個確切的文件系統(比如一個分區)和目錄樹中指定的目錄聯系起來的過程。

換句話說,管理存儲設備的第一步就是把設備關聯到文件系統樹。要完成這一步,通常可以這樣:用 mount 命令來進行臨時掛載(用完的時候,使用 umount 命令來卸載),或者通過編輯 /etc/fstab 文件之後重啟系統來永久性掛載,這樣每次開機都會進行掛載。

不帶任何選項的 mount 命令,可以顯示當前已掛載的文件系統。

  1. #mount

檢查已掛載的文件系統

另外,mount 命令通常用來掛載文件系統。其基本語法如下:

  1. #mount-t type device dir-o options

該命令會指引內核將在設備上找到的文件系統(如已格式化為指定類型的文件系統)掛載到指定目錄。像這樣的形式,mount 命令不會再到 /etc/fstab 文件中進行確認。

除非像下面,掛載指定的目錄或者設備:

  1. #mount/dir-o options
  2. #mount device -o options

mount 命令會嘗試尋找掛載點,如果找不到就會查找設備(上述兩種情況下,mount 命令會在 /etc/fstab 查找相應的設備或掛載點),最後嘗試完成掛載操作(這個通常可以成功執行,除非你的掛載點或者設備正在使用中,或者你調用 mount 命令的時候沒有 root 權限)。

你可以看到,mount 命令的每行輸出都是如下格式:

  1. device on directory type (options)

例如:

  1. /dev/mapper/debian-home on /home type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)

讀作:

設備 dev/mapper/debian-home 掛載在 /home 下,它被格式化為 ext4,並且有以下掛載選項: rw,relatime,user_xattr,barrier=1,data=ordered。

mount 命令選項

下面列出 mount 命令的常用選項

  • async:允許在將要掛載的文件系統上進行異步 I/O 操作
  • auto:標示該文件系統通過 mount -a 命令掛載,與 noauto 相反。
  • defaults:該選項相當於 async,auto,dev,exec,nouser,rw,suid 的組合。注意,多個選項必須由逗號隔開並且中間沒有空格。倘若你不小心在兩個選項中間輸入了一個空格,mount 命令會把後邊的字符解釋為另一個參數。
  • loop:將鏡像文件(如 .iso 文件)掛載為 loop 設備。該選項可以用來模擬顯示光盤中的文件內容。
  • noexec:阻止該文件系統中可執行文件的執行。與 exec 選項相反。
  • nouser:阻止任何用戶(除 root 用戶外) 掛載或卸載文件系統。與 user 選項相反。
  • remount:重新掛載文件系統。
  • ro:只讀模式掛載。
  • rw:讀寫模式掛載。
  • relatime:只要訪問時間早於修改時間,就更新文件的的訪問時間。
  • user_xattr:允許用戶設置和移除可擴展文件系統屬性。

以 ro 和 noexec 模式掛載設備

  1. #mount-t ext4 /dev/sdg1 /mnt -o ro,noexec

在本例中,我們可以看到,在掛載點 /mnt 中嘗試寫入文件或者運行可執行文件都會顯示相應的錯誤信息。

  1. #touch/mnt/myfile
  2. # /mnt/bin/echo“Hi there”

可讀寫模式掛載設備

以默認模式掛載設備

以下場景,我們在重新掛載設備的掛載點中,像上例一樣嘗試你寫入文件和運行可執行文件。

  1. #mount-t ext4 /dev/sdg1 /mnt -o defaults

掛載設備

在這個例子中,我們發現寫入文件和命令都完美執行了。

卸載設備

使用 umount 命令卸載設備,意味著將所有的“在使用”數據全部寫入到文件系統,然後可以安全移除文件系統。請注意,倘若你移除一個沒有事先正確卸載的設備,就會有造成設備損壞和數據丟失的風險。

也就是說,你必須“離開”設備的塊設備描述符或者掛載點,才能卸載設備。換言之,你的當前工作目錄不能是需要卸載設備的掛載點。否則,系統將返回設備繁忙的提示信息。

卸載設備

離開需卸載設備的掛載點最簡單的方法就是,運行不帶任何選項的 cd 命令,這樣會回到當前用戶的家目錄。

掛載常見的網絡文件系統

最常用的兩種網絡文件系統是 SMB(服務器消息塊(Server Message Block))和 NFS(網絡文件系統(Network File System))。如果你只向類 Unix 客戶端提供共享,用 NFS 就可以了,如果是向 Windows 和其他類 Unix 客戶端提供共享服務,就需要用到 Samba 了。

擴展閱讀

  • Setup Samba Server in RHEL/CentOS and Fedora
  • Setting up NFS (Network File System) on RHEL/CentOS/Fedora and Debian/Ubuntu

下面的例子中,假設 Samba 和 NFS 已經在地址為 192.168.0.10 的服務器上架設好了(請注意,架設 NFS 服務器也是 LFCS 考試中需要考核的能力,我們會在後邊中提到)。

在 Linux 中掛載 Samba 共享

第一步:在 Red Hat 以 Debian 系發行版中安裝 samba-client、samba-common 和 cifs-utils 軟件包,如下:

  1. #yum update &&yum install samba-client samba-common cifs-utils
  2. # aptitude update && aptitude install samba-client samba-common cifs-utils

然後運行下列命令,查看服務器上可用的 Samba 共享。

  1. # smbclient -L 192.168.0.10

並輸入遠程機器上 root 賬戶的密碼。

掛載 Samba 共享

上圖中,已經對可以掛載到我們本地系統上的共享進行高亮顯示。你只需要與一個遠程服務器上的合法用戶名及密碼就可以訪問共享了。

第二步:當掛載有密碼保護的網絡文件系統時候,將你的訪問憑證寫入到 /etc/fstab 文件中並非明智的選擇。你需要將這些信息寫入到具有 600 權限的隱藏文件中,像這樣:

  1. #mkdir/media/samba
  2. #echo“username=samba_username”>/media/samba/.smbcredentials
  3. #echo“password=samba_password”>>/media/samba/.smbcredentials
  4. #chmod600/media/samba/.smbcredentials

第三步:然後將下面的內容添加到 /etc/fstab 文件中。

  1. #//192.168.0.10/gacanepa /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

第四步:現在可以掛載你的 Samba 共享了。手動掛載(mount //192.168.0.10/gacanepa)或者重啟系統並應用 /etc/fstab 中相應行來用就掛載都可以。

掛載有密碼保護的 Samba 共享

------------------------------------分割線------------------------------------

Ubuntu 15.04安裝Samba服務 http://www.linuxidc.com/Linux/2016-03/129201.htm

如何在Ubuntu 14.04中使用Samba共享文件 http://www.linuxidc.com/Linux/2014-07/104894.htm

VMWare 虛擬機 Ubuntu 雙網卡 訪問 samba 速度 翻倍 http://www.linuxidc.com/Linux/2013-06/85445.htm

Samba文件共享服務器加入Windows Server 2003域 http://www.linuxidc.com/Linux/2013-06/86391.htm

Samba安裝配置 http://www.linuxidc.com/Linux/2013-06/86101.htm

CentOS 6.2 下Samba 服務的配置 http://www.linuxidc.com/Linux/2013-01/78390.htm

Samba服務器安裝和配置 http://www.linuxidc.com/Linux/2014-12/110459.htm

Win7+VMware+Fedora18 Samba服務器的搭建圖解 http://www.linuxidc.com/Linux/2013-01/78234.htm

------------------------------------分割線------------------------------------

Samba 的詳細介紹:請點這裡
Samba 的下載地址:請點這裡

在 Linux 系統中掛載 NFS 共享

第一步:在 Red Hat 以 Debian 系發行版中安裝 nfs-common 和 portmap 軟件包。如下:

  1. #yum update &&yum install nfs-utils nfs-utils-lib
  2. # aptitude update && aptitude install nfs-common

第二步:為 NFS 共享創建掛載點。

  1. #mkdir/media/nfs

第三步:將下面的內容添加到 /etc/fstab 文件中。

  1. 192.168.0.10:/NFS-SHARE /media/nfs nfs defaults 00

第四步:現在可以掛載你的 Samba 共享了。手動掛載(mount 192.168.0.10:/NFS-SHARE)或者重啟系統並應用 /etc/fstab 中相應行來用就掛載都可以。

掛載 NFS 共享

永久性掛載文件系統

像前面兩個例子那樣,/etc/fstab 控制著Linux如何訪問硬盤分區及可移動設備。/etc/fstab 由六個字段的內容組成,各個字段之間通過一個空格符或者制表符來分開。井號(#)開始的行只是會被忽略的注釋。

每一行都按照這個格式來寫入:

  1. <filesystem><mountpoint><type><options><dump><pass>

其中:

  • <file system>: 第一個字段指定掛載的設備。大多數發行版本都通過分區的標卷(label)或者 UUID 來指定。這樣做可以避免分區號改變時帶來的錯誤。
  • <mount point>: 第二個字段指定掛載點。
  • <type> :文件系統的類型代碼與 mount 命令掛載文件系統時使用的類型代碼是一樣的。通過 auto 類型代碼可以讓內核自動檢測文件系統,這對於可移動設備來說非常方便。注意,該選項可能不是對所有文件系統可用。
  • <options>: 一個(或多個)掛載選項。
  • <dump>: 你可能把這個字段設置為 0(否則設置為 1),使得系統啟動時禁用 dump 工具(dump 程序曾經是一個常用的備份工具,但現在越來越少用了)對文件系統進行備份。
  • <pass>: 這個字段指定啟動系統是是否通過 fsck 來檢查文件系統的完整性。0 表示 fsck 不對文件系統進行檢查。數字越大,優先級越低。因此,根分區(/)最可能使用數字 1,其他所有需要檢查的分區則是以數字 2.

Mount 命令例示

1、在系統啟動時,通過 TECMINT 標卷來掛載文件系統,並具備 rw 和 noexec 屬性,你應該將以下語句添加到 /etc/fstab 文件中。

  1. LABEL=TECMINT /mnt ext4 rw,noexec 00

2、若你想在系統啟動時掛載 DVD 光驅中的內容,添加以下語句。

  1. /dev/sr0 /media/cdrom0 iso9660 ro,user,noauto 00

其中 /dev/sr0 為你的 DVD 光驅。

--------------------------------------分割線 --------------------------------------

Ubuntu 12.04安裝NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

NFS服務器安裝配置實現Ubuntu 12.04與ARM文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm

Ubuntu搭建nfs服務器 http://www.linuxidc.com/Linux/2012-10/71930.htm

文件服務器NFS配置詳解 http://www.linuxidc.com/Linux/2013-06/86542.htm

Ubuntu下搭建NFS網絡文件系統服務器 http://www.linuxidc.com/Linux/2013-07/87367.htm

Heartbeat_ldirector+LB+NFS實現HA及LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm

CentOS 5.5配置NFS服務器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm

Ubuntu 12.10下NFS的安裝使用 http://www.linuxidc.com/Linux/2013-03/80478.htm

--------------------------------------分割線 --------------------------------------

總結

不用懷疑,在命令行中掛載/卸載本地和網絡文件系統將是你作為系統管理員的日常責任的一部分。同時,你需要掌握 /etc/fstab 文件的編寫。希望本文對你有幫助。隨時在下邊發表評論(或者提問),並分享本文到你的朋友圈。

參考鏈接

  • 關於 LFCS
  • 為什麼需要 Linux 基金會認證?
  • 注冊 LFCS 考試

via: http://www.tecmint.com/mount-filesystem-in-linux/

作者:Gabriel Cánepa 譯者:GHLandy 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

Copyright © Linux教程網 All Rights Reserved