首頁 > 軟體

LFCS 系列第五講:如何在 Linux 中掛載/解除安裝本地檔案系統和網路檔案系統(Samba 和 NFS)

2020-06-16 17:43:47

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/echoHi 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 了。

擴充套件閱讀

下面的例子中,假設 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. #echousername=samba_username>/media/samba/.smbcredentials
  3. #echopassword=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

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


IT145.com E-mail:sddin#qq.com