Linux 系統的三種掛載方式

hello,大家好!我是人見人愛,花見花開的小橘子,在服務器使用過程中,mount 掛載幾乎是最常用的一種操作了,這周小橘子就給大家介紹一下 linux 文件掛載相關介紹:

介紹:
    mount 是 Linux 下的一個命令,它可以將分區掛載或掛接到 Linux 的一個文件夾下,從而將分區和該目錄聯繫起來,當我們只要訪問這個文件夾時,就相當於訪問該分區了。

一、手動掛載

命令格式:

mount [-t vfstype] [-o options] device dir

1、-t vfstype 指定文件系統的類型,通常不必指定,mount 會自動選擇正確的類型。

光盤或光盤鏡像:iso9660

DOS fat16 文件系統:msdos

Windows 9x fat32 文件系統:vfat

Windows NT ntfs 文件系統:ntfs

Mount Windows 文件網絡共享:smbfs UNIX(LINUX) 文件網絡共享:nfs

2、-o options 主要用來描述設備或檔案的掛接方式。

loop:用來把一個文件當成硬盤分區掛接上系統

ro:採用只讀方式掛接設備

rw:採用讀寫方式掛接設備

iocharset:指定訪問文件系統所用字符集

3、device 要掛接 (mount) 的設備。

4、dir 設備在系統上的掛接點 (mount point)。

掛接光盤鏡像文件

--- 從光盤製作光盤鏡像文件。將光盤放入光驅,執行下面的命令。

#cp /dev/cdrom /home/xiuxiu/mydisk.iso 或 #dd if=/dev/cdrom of=/home/xiuxiu/mydisk.iso

注:執行上面的任何一條命令都可將當前光驅裏的光盤製作成光盤鏡像文件 / home/xiuxiu/mydisk.iso

--- 將文件和目錄製作成光盤鏡像文件,執行下面的命令,genisoimage 和 mkisofs 是同一個命令,-r 或 - rational-rock 表示使用 Rock Ridge Extensions,並開放所有的文件讀取權限,針對 UNIX 系統的 ISO-9660 文件系統,-J 或 - joliet 表示使用 Joliet 格式的目錄或者文件名稱,微軟公司自定義的光盤文件系統 ,也是 ISO-9660 的一種擴展,-V <光盤 ID> 或 - volid < 光盤 ID > 表示指定光盤的卷冊集 ID

mkisofs -r -J -V mydisk -o /home/xiuxiu/mydisk.iso /home/xiuxiu/mydir

注:這條命令將 / home/xiuxiu/mydir 目錄下所有的目錄和文件製作成光盤鏡像文件 / home/xiuxiu/mydisk.iso,光盤卷標爲:mydisk

--- 光盤鏡像文件的掛接 (mount)

mkdir /mnt/vcdrom

注:建立一個目錄用來作掛接點 (mount point)

mount -o loop -t iso9660 /home/xiuxiu/mydisk.iso /mnt/vcdrom

注:使用 / mnt/vcdrom 就可以訪問光盤鏡像文件 mydisk.iso 裏的所有文件了。

掛接移動硬盤

對 linux 系統而言,USB 接口的移動硬盤是當作 SCSI 設備對待的。插入移動硬盤之前,應先用 fdisk –l 或 more /proc/partitions 查看系統的硬盤和硬盤分區情況。接好移動硬盤後,再用 fdisk –l 或 more。應該可以發現多了一個 SCSI 硬盤,假定是 / dev/sdc 和它的兩個磁盤分區 / dev/sdc1、/dev/sdc2,/dev/sdc5 是 / dev/sdc2 分區的邏輯分區,我們可以使用下面的命令掛接 / dev/sdc1 和 / dev/sdc5。

mkdir -p /mnt/usbhd1 #mkdir -p /mnt/usbhd2

注:建立目錄用來作掛接點 (mount point)

mount -t ntfs /dev/sdc1 /mnt/usbhd1 #mount -t vfat /dev/sdc5 /mnt/usbhd2

注:對 ntfs 格式的磁盤分區應使用 - t ntfs 參數,對 fat32 格式的磁盤分區應使用 - t vfat 參數。若漢字文件名顯示爲亂碼或不顯示,可以使用下面的命令格式。

mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1 #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

linux 系統下使用 fdisk 分區命令和 mkfs 文件系統創建命令可以將移動硬盤的分區製作成 linux 系統所特有的 ext2、ext3、ext4 格式。這樣,在 linux 下使用下面的命令直接掛接即可。

mount /dev/sdc1 /mnt/usbhd1

掛接 U 盤

和 USB 接口的移動硬盤一樣對 linux 系統而言 U 盤也是當作 SCSI 設備對待的。使用方法和移動硬盤完全一樣。插入 U 盤之前,應先用 fdisk –l 或 more /proc/partitions 查看系統的硬盤和硬盤分區情況。

mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

掛接 Windows 文件共享

Windows 網絡共享的核心是 SMB/CIFS,SMB 使用點對點的通訊方式,一個客戶端向一個服務器提出請求,服務器相應地回答。在 linux 下要掛接 (mount)windows 的磁盤共享,就必須安裝和使用 samba 軟件包。現在流行的 linux 發行版絕大多數已經包含了 samba 軟件包,如果安裝 linux 系統時未安裝 samba 請首先安裝 samba。當 windows 系統共享設置好以後,就可以在 linux 客戶端掛接(mount) 了,具體操作如下:

mkdir –p /mnt/samba

注:建立一個目錄用來作掛接點 (mount point)

mount -t smbfs -o username=administrator,password=pas123 //10.140.133.25/c$ /mnt/samba

注:administrator 和 pas123 是 ip 地址爲 10.140.133.25 windows 計算機的一個用戶名和密碼,c$ 是這臺計算機的一個磁盤共享。

如此就可以在 linux 系統上通過 / mnt/samba 來訪問 windows 系統磁盤上的文件了。

掛接 UNIX 系統 NFS 文件共享

類似於 windows 的網絡共享,UNIX(Linux) 系統也有自己的網絡共享,那就是 NFS(網絡文件系統),下面我們就以 SUN Solaris2.8 和 REDHAT as server 3 爲例簡單介紹一下在 linux 下如何 mount nfs 網絡共享。

在 linux 客戶端掛接 (mount)NFS 磁盤共享之前,必須先配置好 NFS 服務端。

linux 客戶端掛接 (mount) 其他 linux 系統或 UNIX 系統的 NFS 共享# mkdir –p /mnt/nfs

注:建立一個目錄用來作掛接點 (mount point)

mount -t nfs -o rw 10.140.133.10:/export/home/xiuxiu /mnt/nfs

注:這裏假設 10.140.133.10 是 NFS 服務端的主機 IP 地址,當然這裏也可以使用主機名,但必須在本機 / etc/hosts 文件裏增加服務端 ip 定義。/export/home/sunky 爲服務端共享的目錄。

如此就可以在 linux 客戶端通過 / mnt/nfs 來訪問其它 linux 系統或 UNIX 系統以 NFS 方式共享出來的文件了。

補充 1:

SMB(Server Message Block,又稱 Common Internet File System(CIFS))是由微軟開發的一種軟件程序級的網絡傳輸協議,主要用來使得一個網絡上的機器共享計算機文件、打印機、串行端口和通訊等資源。它也提供認證的行程間通訊機能。它主要用在裝有 Microsoft Windows 的機器上,在這樣的機器上被稱爲 Microsoft Windows Network。經過 Unix 服務器廠商重新開發後,它可以用於連接 Unix 服務器和 Windows 客戶機,執行打印和文件共享等任務。

CIFS 的消息格式不同與 NFS 的固定長度格式, 大多數消息體都包含可變長的數據,這帶來一定的協議複雜性。CIFS 消息一般在 netbios 或 Tcp 協議層上,分別使用不同的端口 139 或 445, 目前傾向於使用 445 端口。CIFS 的消息包括一個消息頭(32 字節)和消息體(1 個或多個,可變長)。

Samba 能夠爲選定的 Unix 目錄(包括所有子目錄)建立網絡共享。該功能使得 Windows 用戶可以像訪問普通 Windows 下的文件夾那樣來通過網絡訪問這些 Unix 目錄。

補充 2:

1、Solaris 系統 NFS 服務端配置方法如下:

(1) 修改 /etc/dfs/dfstab, 增加共享目錄

share -F nfs -o rw /export/home/xiuxiu

(2) 啓動 nfs 服務

/etc/init.d/nfs.server start

(3)NFS 服務啓動以後,也可以使用下面的命令增加新的共享

 share /export/home/xiuxiu1 # share /export/home/xiuxiu2

注:/export/home/xiuxiu1 和 / export/home/xiuxiu2 是準備共享的目錄

2、linux 系統 NFS 服務端配置方法如下:

(1) 修改 /etc/exports, 增加共享目錄

/export/home/xiuxiu 10.140.133.25(rw) /export/home/xiuxiu1 *(rw) /export/home/xiuxiu2 linux-client(rw)

注:/export/home / 目錄下的 xiuxiu、xiuxiu1、xiuxiu2 是準備共享的目錄,10.140.133.25、*、

linux-client 是被允許掛接此共享 linux 客戶機的 IP 地址或主機名。如果要使用主機名 linux-client 必須在服務端主機 / etc/hosts 文件裏增加 linux-client 主機 ip 定義。格式如下:10.140.133.25 linux-client

(2) 啓動與停止 NFS 服務

/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啓動的)
/etc/rc.d/init.d/nfs start 啓動NFS服務 /etc/rc.d/init.d/nfs stop 停止NFS服務

注:若修改 / etc/export 文件增加新的共享,應先停止 NFS 服務,再啓動 NFS 服務方能使新增加的共享起作用。

使用命令 exportfs -rv 也可以達到同樣的效果。

補充 3:

linux 加載光驅:

(1)使用光驅前,要先 mount 一下:

mount /dev/cdrom /mnt/cdrom

然後您就可以進入 / mnt/cdrom 目錄下讀取光盤內容了。

(2)當您想退出光盤時,須使用 umout 命令,否則光驅就會一直處於死鎖狀態:

umount /mnt/cdrom

二、開機自動掛載 (永久掛載)

在 / etc/fstab 添加掛載信息,可以使用命令 先獲取 UUID

通過 blkid 查看 UUID

blkid

可使用設備名,或 UUID

vim /etc/fstab

三、自動掛載

實現原理:

先配置規則文件,配置子目錄和掛載點。

然後配置監聽目錄,定義監聽的父目錄,指定規則文件的地址。

重啓服務後,只要訪問該目錄,就會自動掛載上。

  1. 安裝自動掛載的包
yum install autofs -y

啓動服務並設置開機自啓動

systemctl start autofs.service
systemctl enable autofs.service

配置規則文件

參考的模板:/etc/auto.misc

監聽的文件格式沒有限制 可以拷貝模板作爲修改

cp /etc/auto.misc /etc/auto.aa(命名隨意) 下面以自動掛載 nfs 爲參考 編輯規則文件

vim /etc/auto.nfs 規則文件 監聽哪個子目錄

public -fstype=nfs serverb.lab.example.com:/shares/public

子目錄 文件系統類型 共享目錄地址

配置監聽目錄

編輯監聽文件 vim /etc/auto.master 移動到最下行添加 /mnt /etc/auto.aa 要監聽的目錄的父目錄,和規則文件地址 父目錄 規則文件地址 持續監聽的是 / mnt ---> 根據規則文件:/etc/auto.aa

  1. 啓動服務, 關閉防火牆和 SELINUX
systemctl restart autofs
vim /etc/auto.master
vim /etc/auto.httpd

實例:給網頁實現自動掛載

  1. 編輯 http 配置文件
vim /etc/httpd/conf.d/vhosts.conf

編輯內容如下:

<VirtualHost 192.168.220.129:80>
        DocumentRoot /public/test
        ServerName 192.168.220.129
</VirtualHost>
<Directory /public/test>
        AllowOverride none
        Require all granted
        Options +Indexes
</Directory>
  1. 開啓服務創建資源文件, 掛載 (臨時)
#mkdir -p /public/test
#echo this is a test > /public/test/index.html
#systemctl stop firewalld
#setenforce 0
#systemctl restart httpd
#mount /dev/sr0 /public/test
  1. 安裝 autofs,編輯配置文件
#yum install -y autofs
#systemctl restart autofs
#vim /etc/auto.master
#vim /etc/auto.httpd
#systemctl restart autofs

通過 mount 查看掛載情況

mount | grep /dev/sr0

自動掛載成功!!!

其次,小橘子提醒大家在掛載一些共享文件服務器時,一定要謹慎使用 rm -rf 指令,以免造成服務器數據丟失的情況,在使用掛載結束後一定要及時取消掛載,養成良好的工作習慣。(小橘子本人親身經歷過,很恐怖)

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/FZvywFz5OuTIN0I0dDA5UA