linux掛載概念簡述:


掛載概念簡述:
根文件系統之外的其他文件要想能夠被訪問,都必須通過“關聯”至根文件系統上的某個目錄來實現,此關聯操作即為“掛載”,此目錄即為“掛載點”,解除此關聯關系的過程稱之為“卸載”
1.掛載:根文件系統外通過關聯至根文件系統上的某個目錄來實現訪問
2.掛載點:mount_point,用於作為另一個文件系統的訪問入口;
(1) 事先存在;
(2) 應該使用未被或不會被其它進程使用到的目錄;
(3) 掛載點下原有的文件將會被隱藏;
 
掛載與卸載
掛載方法:mount DECE MOUNT_POINT
    mount:通過查看/etc/mtab(文章最后會對/etc/mtab有個解釋)文件顯示當前系統已掛載的所有設備
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設備;
(1) 設備文件:例如/dev/sda5
(2) 卷標:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點
    事先存在;建議使用空目錄;
    進程正在使用中的設備無法被卸載;
常用命令選項:
    -t vsftype:指定要掛載的設備上的文件系統類型;
    -r: readonly,只讀掛載;
    -w: read and write, 讀寫掛載;
    -n: 不更新/etc/mtab; 
    -a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能)
    -L 'LABEL': 以卷標指定掛載設備;
    -U 'UUID': 以UUID指定要掛載的設備;
    -B, --bind: 綁定目錄到另一個目錄上;
注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts
………………………………………………………………………………………………………………………
    -o options:(掛載文件系統的選項)
      async:異步模式;
      sync:同步模式;
      atime/noatime:包含目錄和文件;
      diratime/nodiratime:目錄的訪問時間戳
      auto/noauto:是否支持自動掛載
      exec/noexec:是否支持將文件系統上應用程序運行為進程
      dev/nodev:是否支持在此文件系統上使用設備文件;
      suid/nosuid:是否支持在此文件系統上使用特殊權限
      remount:重新掛載
      ro:只讀
      rw:讀寫
      user/nouser:是否允許普通用戶掛載此設備
      acl:啟用此文件系統上的acl功能
注意:上述選項可多個同時使用,彼此使用逗號分隔;
 默認掛載選項:defaults:rw, suid, dev, exec, auto, nouser, and async
上述信息可以通過查看超級塊信息看到,這里不再對其進行演示。
………………………………………………………………………………………………………………………
命令演示:
1、指定文件系統將塊設備掛載至指定空文件夾內:演示內容:1)沒有指定文件系統,命令是否能正確執行;2)指定錯誤文件系統,命令是否能正確執行;3)掛載點有內容的文件夾,查看被掛載后其內容是否消失。

通過上述演示,說明了如下事實:1)沒有指定文件系統,塊設備也可以正常掛載;2)指定與塊設備不一致的文件系統類型則命令報錯;3)掛載點有內容的文件夾,在掛載后內容消失,卸載后內容重現,也就是說掛載后會將原文件內容掩蓋,但並不對其進行其他操作。
………………………………………………………………………………………………………………………
2、演示內容:1)指定卷標並以只讀方式掛載;2)對目錄進行掛載操作,查看其與硬鏈接與軟鏈接有何不同。
[root@localhost device]# blkid /dev/sdb6
/dev/sdb6: LABEL="sdb6" UUID="8284450c-8cb9-45d7-a8b8-ed9ed9ef9e52" TYPE="xfs" 
[root@localhost device]# mount -L 'sdb6' -r /device/ 
[root@localhost device]# touch /device/33 
touch: 無法創建"/device/33": 只讀文件系統 
[root@localhost device]# umount /device/ 
[root@localhost /]# mount -B /etc/ /device/ 
[root@localhost /]# ll -i / 
總用量 64 
    11341 lrwxrwxrwx.  1 root root    7 7月  19 23:54 bin -> usr/bin
      128 dr-xr-xr-x.  4 root root 4096 8月  2 10:09 boot 
        3 drwxr-xr-x.  19 root root 3300 8月  23 09:10 dev 
 33554561 drwxr-xr-x. 129 root root 8192 8月  23 09:38 device 
 33554561 drwxr-xr-x. 129 root root 8192 8月  23 09:38 etc 
      158 drwxr-xr-x.  42 root root 4096 8月  22 09:00 home
通過上述演示,說明了如下事實:1)指定卷標掛載可行,以只讀方式掛載后,無法對掛載點中的內容進行修改、創建等操作;2)目錄的掛載實質上是硬鏈接,掛載后可以對里面的文件內容進行修改與刪除。
注:文件夾的掛載在df中並不顯示
………………………………………………………………………………………………………………………
卸載命令:umount
命令使用格式:
     # umount DEVICE
     # umount MOUNT_POINT
上面已經演示過umount的使用
fuser:查看正在訪問指定文件系統的進程:
命令使用格式:
     # fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:慎用
     # fuser -km MOUNT_POINT
 
 
交換分區swap
這里介紹下交換分區,通過實驗演示交換分區的創建及掛載
掛載交換分區:
啟用:swapon
   swapon [OPTION]... [DEVICE]
    -a:激活所有的交換分區;
    -p PRIORITY:指定優先級;
禁用:swapoff [OPTION]... [DEVICE]
實驗演示:
1、交換分區的創建:1)新創建一分區,2)修改新分區的類型,改為swap號碼為82,3)格式化為swap
[root@localhost ~]# fdisk /dev/sdb 
歡迎使用 fdisk (util-linux 2.23.2)。 
更改將停留在內存中,直到您決定將更改寫入磁盤。 
使用寫入命令前請三思。 
命令(輸入 m 獲取幫助):n 
Partition type: 
  p  primary (1 primary, 1 extended, 2 free) 
  l  logical (numbered from 5) 
Select (default p): l 
添加邏輯分區 9 
起始 扇區 (2928640-4196351,默認為 2928640): 
將使用默認值 2928640 
Last 扇區, +扇區 or +size{K,M,G} (2928640-4196351,默認為 4196351):+100M 
分區 9 已設置為 Linux 類型,大小設為 100 MiB 
命令(輸入 m 獲取幫助):p 
磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 
Units = 扇區 of 1 * 512 = 512 bytes 
扇區大小(邏輯/物理):512 字節 / 512 字節 
I/O 大小(最小/最佳):512 字節 / 512 字節 
磁盤標簽類型:dos 
磁盤標識符:0xd391e822 
  設備 Boot      Start        End      Blocks  Id  System 
/dev/sdb1            2048    2099199    1048576  83  Linux 
/dev/sdb2        2099200    4196351    1048576    5  Extended 
/dev/sdb5        2101248    2306047      102400  83  Linux 
/dev/sdb6        2308096    2512895      102400  83  Linux 
/dev/sdb7        2514944    2719743      102400  83  Linux 
/dev/sdb8        2721792    2926591      102400  83  Linux 
/dev/sdb9        2928640    3133439      102400  83  Linux 
命令(輸入 m 獲取幫助):t 
分區號 (1,2,5-9,默認 9):9 
Hex 代碼(輸入 L 列出所有代碼):82 
已將分區“Linux”的類型更改為“Linux swap / Solaris” 
命令(輸入 m 獲取幫助):p 
磁盤 /dev/sdb:5368 MB, 5368709120 字節,10485760 個扇區 
Units = 扇區 of 1 * 512 = 512 bytes 
扇區大小(邏輯/物理):512 字節 / 512 字節 
I/O 大小(最小/最佳):512 字節 / 512 字節 
磁盤標簽類型:dos 
磁盤標識符:0xd391e822 
  設備 Boot      Start        End      Blocks  Id  System 
/dev/sdb1            2048    2099199    1048576  83  Linux 
/dev/sdb2        2099200    4196351    1048576    5  Extended 
/dev/sdb5        2101248    2306047      102400  83  Linux 
/dev/sdb6        2308096    2512895      102400  83  Linux 
/dev/sdb7        2514944    2719743      102400  83  Linux 
/dev/sdb8        2721792    2926591      102400  83  Linux 
/dev/sdb9        2928640    3133439      102400  82  Linux swap / Solaris 
命令(輸入 m 獲取幫助):w 
The partition table has been altered! 
Calling ioctl() to re-read partition table. 
正在同步磁盤。 
[root@localhost ~]# mkswap /dev/sdb9 
正在設置交換空間版本 1,大小 = 102396 KiB 
無標簽,UUID=74bf2766-a01b-48ea-9082-2fad6b8e06a9
2、掛載交換分區:啟用與禁用
[root@localhost ~]# free 
              total        used        free      shared  buff/cache  available 
Mem:        1001332      101756      535892      13424      363684      720328 
Swap:      2097148          0    2097148 
[root@localhost ~]# swapon /dev/sdb9  
[root@localhost ~]# free 
              total        used        free      shared  buff/cache  available 
Mem:        1001332      101716      535924      13424      363692      720368 
Swap:      2199544          0    2199544 
[root@localhost ~]# swapoff /dev/sdb9  
[root@localhost ~]# free 
              total        used        free      shared  buff/cache  available 
Mem:        1001332      102492      535152      13424      363688      719592 
Swap:      2097148          0    2097148
實驗涉及到的命令小結:      
  內存空間使用狀態:free [OPTION]
    -m: 以MB為單位
    -g: 以GB為單位
  文件系統空間占用等信息的查看工具:df
    -h: human-readable
    -i:inodes instead of blocks
    -P: 以Posix兼容的格式輸出; 
  查看某目錄總體空間占用狀態:du
  du [OPTION]... DIR
    -h: human-readable
    -s: summary
命令總結:mount, umount, free, df, du, swapon, swapoff, fuser
 
 
開機自動掛載
如果我們想實現開機自動掛載某設備,只要修改/etc/fstab文件即可。
文件掛載的配置文件:/etc/fstab
 
查看此文件可知
每行定義一個要掛載的文件系統;
其每行的格式如下
要掛載的設備或偽文件系統  掛載點  文件系統類型  掛載選項 轉儲頻率 自檢次序
UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot  xfs    defaults    0 0
    要掛載的設備或偽文件系統:設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc, sysfs)
    掛載點:指定的文件夾
   掛載選項:defaults
    轉儲頻率:
      0:不做備份
      1:每天轉儲
      2:每隔一天轉儲
    自檢次序:
      0:不自檢
      1:首先自檢;一般只有rootfs才用1;
 
/etc/fstab和/etc/mtab的區別
   /etc/fstab文件的作用: 
記錄了計算機上硬盤分區的相關信息,啟動 Linux 的時候,檢查分區的 fsck 命令,和掛載分區的 mount 命令,都需要 fstab 中的信息,來正確的檢查和掛載硬盤。 
  /etc/mtab文件的作用: 
   先看它的英文是: 
     This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file. 
     記載的是現在系統已經裝載的文件系統,包括操作系統建立的虛擬文件等;而/etc/fstab是系統准備裝載的。 每當 mount 掛載分區、umount 卸載分區,都會動態更新 mtab,mtab 總是保持着當前系統中已掛載的分區信息,fdisk、df 這類程序,必須要讀取 mtab 文件,才能獲得當前系統中的分區掛載情況。當然我們自己還可以通過讀取/proc/mount也可以來獲取當前掛載信息 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM