掛載

目錄:

  • 一、掛載
  • 二、掛載loop設備
  • 三、掛載網絡資源
  • 四、掛載目錄到另一個目錄上
  • 五、掛載配置文件

一、掛載

1、什么是掛載

linux操作系統將所有的設備都看作文件,它將整個計算機的資源都整合成一個大的文件目錄。我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上,然后通過訪問這個目錄來訪問存儲設備。

掛載好的文件、目錄、設備以及特殊文件即可提供用戶使用。除了操作系統調用的mount指令外,mount_root()會優先掛載(或稱根目錄) 。在這個情況下,操作系統會在調用setup前,先調用mount。

2、如何掛載

命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir

  • device掛載的設備:
  • 設備文件:如/dev/sda1
  • 卷標:如-L 'MYDATA'
  • UUID:如-U '0c50523c-43f1-45e7-85c0-a126711d406e'
  • 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
  • dir掛載點
  • 建議使用空目錄,否則非目錄下原來的數據會無法訪問。
  • -t vsftype:指定掛載的設備上的文件系統
  • -r: readonly
  • -w: read and write 默認選擇
  • -n: 不更新/etc/mtab, mount不可見
  • -a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)
  • -L 'LABEL': 以卷標指定掛載設備
  • -U 'UUID': 以UUID指定要掛載的設備
  • -B, --bind: 綁定目錄到另一個目錄上
  • -o options: (掛載文件系統的選項),多個選項使用逗號分隔
  • async:異步模式
  • sync:同步模式,內存更改時,同時寫磁盤
  • atime/noatime:包含目錄和文件
  • diratime/nodiratime:目錄的訪問時間戳
  • auto/noauto:是否支持自動掛載,是否支持-a選項
  • exec/noexec:是否支持將文件系統上運行應用程序
  • dev/nodev:是否支持在此文件系統上使用設備文件
  • suid/nosuid:是否支持suid和sgid權限
  • remount:重新掛載
  • ro:只讀
  • rw: 讀寫
  • user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
  • acl:啟用此文件系統上的acl功能
  • loop: 使用loop設備
  • defaults:相當于rw, nosuid, dev, exec, auto, nouser, async

二、掛載文件設備(loop設備)

1、創建一個文件,大小隨意,這里我創建1G

[root@CentOS6 ~]#dd if=/dev/zero of=/app/partfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 75.1955 s, 14.3 MB/s

2、對新創建的文件/app/partfile 創建文件系統

[root@CentOS6 ~]#mkfs.ext4 /app/partfile 
mke2fs 1.41.12 (17-May-2010)
/app/partfile is not a block special device.
Proceed anyway? (y,n) y

3、查看/app/partfile 的信息

[root@CentOS6 ~]#blkid /app/partfile 
/app/partfile: UUID="67047989-db3c-46cb-b5c8-b21129b76042" TYPE="ext4" 

4、把/app/partfile 掛載到一個目錄下

[root@CentOS6 ~]#mount /app/partfile /mnt/part -o loop
[root@CentOS6 ~]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 9092656  86448000  10% /
tmpfs             502056      76    501980   1% /dev/shm
/dev/sda3       50264772 1120976  46583796   3% /app
/dev/sda1         991512   34916    905396   4% /boot
[root@CentOS6 ~]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 9092656  86448000  10% /
tmpfs             502056      76    501980   1% /dev/shm
/dev/sda3       50264772 1120976  46583796   3% /app
/dev/sda1         991512   34916    905396   4% /boot
/app/partfile     999320    1284    945608   1% /mnt/part

這樣/app/partfile就可以當做一個塊設備使用了。也可以當做U盤,拷貝到其他機器使用。

/etc/fstab配置格式:

/app/partfile /mnt/part  ext4 loop 0 0

三、掛載網絡資源

這里我們用windows共享作為網絡資源,然后掛載在Linux上。
1、配置window共享


設置window共享

2、添加windows用戶,賬號密碼都是test


添加windows用戶

3、把window共享資源掛載到Linux的/mnt/win目錄上,并創建一個文件。

[root@CentOS6 ~]#mkdir /mnt/win
[root@CentOS6 ~]#mount -o username=test  //172.17.250.142/winshare /mnt/win
Password: 
[root@CentOS6 ~]#cd /mnt/win
[root@CentOS6 win]#ls
[root@CentOS6 win]#touch hello
[root@CentOS6 win]#ls
hello

4、上一步我們在共享文件夾創建了一個文件,我們到windows上看看~

image.png
image.png

/etc/fstab配置格式:

//172.17.250.142/winshare   /mnt/win cifs defaults,username=test,password=test 0 0

四、掛載目錄到另一個目錄上

我們把/app這個目錄,掛載到/mnt/app上,就可以通過/mnt/app去訪問/app的資源。

[root@CentOS6 win]#mkdir /mnt/app
[root@CentOS6 win]#mount -B /app /mnt/app
[root@CentOS6 win]#ls /mnt/app
a  apache24  partfile
[root@CentOS6 win]#ls /app
a  apache24  partfile

可以看到/mnt/app里的內容和/app一樣

/etc/fstab配置格式:

/app /mnt/app   none  bind 0 0

五、掛載配置文件

  • mount命令只能臨時掛載,重啟系統后掛載信息會丟失。如果要保留掛載信息,需要配置/etc/fstab文件。
[root@CentOS6 ~]#vim /etc/fstab 
UUID=6baffe84-ec5a-4ea1-968a-7066a069e118 /                       ext4    defaults        1 1
UUID=ad4301e6-44a9-4494-81fc-47d69461ccf8 /app                    ext4    defaults        1 2
UUID=21e638ff-1075-43f1-85f9-295a6e5478a5 /boot                   ext4    defaults        1 2
UUID=895a55d3-407d-4c1a-9034-9ed6550b8338 swap                    swap    defaults        0 0
UUID=6b129c71-e51e-493a-92bd-34a6c27486c3 swap                    swap   defaults  0 0
#目錄掛載在目錄上
/app /mnt/app   none  bind 0 0
#windows共享掛載
//172.17.250.142/winshare   /mnt/win cifs defaults,username=test,password=test 0 0
#文件掛載在目錄上
/app/partfile  /mnt/part               ext4   loop    0 0 
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

  • 每一行代表一個掛載點,每行從左到右共6列,每一列代表一個特性,格式如下:

|1|2 | 3 | 4 | 5| 6|
|:---:|:--------:| :--------: | :----: | :----: | :---: | :-----:|
|設備|掛載點 | 文件格式 | 掛載選項 | 轉儲頻率| 自檢次數|

  • 設備:建議使用UUID,設備UUID不會變動
  • LABEL: LABEL=""
  • UUID: UUID=""
  • 偽文件系統名稱: proc, sysfs
  • 掛載選項:
    • default:相當于rw, nosuid, dev, exec, auto, nouser, async
  • 轉儲頻率:
  • 0:不做備份
  • 1:每天轉儲
  • 2:每隔一天轉儲
  • 自檢次序:
  • 0:不自檢
  • 1:首先自檢;一般只有rootfs才用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容