linux掛載的基本使用

掛載

  掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區(已有文件系統)掛載到一個已存在的目錄上, 然后通過訪問這個目錄來訪問存儲設備。

掛載條件

1、掛載點必須是一個目錄。

2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內容將隱藏不可用。對于其他操作系統建立的文件系統的掛載也是這樣。

掛載方法:mount DEVICE MOUNT_POINT

    mount:顯示當前已掛載的所有設備

    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:指定要掛載的設備上的文件系統類型常用的文件系統有ext2,  ext3,  ext4 iso9660, msdos,ntfs

    一般它會自動識別,但如果要寫入/etc/fstab中就要指定文件系統了  

-r: readonly,只讀掛載   -o ro 同義

-w: read and write, 讀寫掛載 -o rw 同義

-n: 不更新/etc/mtab,

-a:自動掛載所有支持自動掛載的設備定義在了/etc/fstab文件中,且掛載選項中有auto功能

-L 'LABEL': 以卷標指定掛載設備

-U 'UUID': 以UUID指定要掛載的設備

-B, –bind: 綁定目錄到另一個目錄上

-o options:(掛載文件系統的選項),多個選項使用逗號分隔

async:異步模式

sync:同步模式,內存更改時,同時寫磁盤

atime/noatime:訪問時間戳,包含目錄和文件

diratime/nodiratime:目錄的訪問時間戳

auto/noauto:是否支持自動掛載==是否支持-a選項

exec/noexec:是否支持將文件系統上運行應用程序。默認為exec

dev/nodev:是否支持在此文件系統上使用設備文件

suid/nosuid:不否支持suid和sgid權限

remount:重新掛載

ro:只讀

rw:讀寫

user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載

acl:啟用此文件系統上的acl功能

Defaults:相當于rw, suid, dev, exec, auto, nouser, async

[root@Cloud /]#mkdir /media/sdb1 #創建空目當掛載點,掛載點一般在/media和/mnt目錄
[root@Cloud /]#mount /dev/sdb1 /media/sdb1 #把/dev/sdb1掛載到/media/sdb1上
[root@Cloud /]#cd /media/sdb1
[root@Cloud /media/sdb1]#ls #掛載成功會創建lost+found目錄
lost+found
[root@Cloud /media/sdb1]#mkdir abc #使用/dev/sdb1分區
[root@Cloud /media/sdb1]#touch file #使用/dev/sdb1分區
[root@Cloud /media/sdb1]#ls#顯示創建成功
abc  file  lost+found
[root@Cloud /media/sdb1]#ll 
total 20
drwxr-xr-x 2 root root  4096 Jul 31 03:15 abc
-rw-r--r-- 1 root root     0 Jul 31 03:15 file
drwx------ 2 root root 16384 Jul 31 00:47 lost+found
[root@Cloud /media/sdb1]#mkdir /media/sdb2 #創建空目錄來掛載
[root@Cloud /media/sdb1]#mount -r /dev/sdb2 /media/sdb2 #只讀掛載,多用來掛載光盤
[root@Cloud /media/sdb1]#cd ../sdb2
[root@Cloud /media/sdb2]#ls
lost+found
[root@Cloud /media/sdb2]#touch file #無法創建! 
touch: cannot touch `file': Read-only file system

一個使用技巧:

可以實現將目錄綁定至另一個目錄上,作為其臨時訪問入口;

[root@localhost /]#mkdir mountpoint #創建掛載點
[root@localhost /]#ll mountpoint #創建成功
total 0
[root@localhost /]#mount --bind  /home /mountpoint #綁定目錄
[root@localhost /]#ll /home/ /mountpoint/ #查看顯示bind成功,大小一樣
/home/:
total 0
drwx------  5 mage    mage    121 Sep  1 11:45 mage
drwx------. 3 mageedu mageedu  74 Jul 26 16:09 mageedu
drwx------  3 magge   magge    74 Sep  1 13:37 magge
drwx------  3 maggea  maggea   74 Sep  1 13:37 maggea
drwx------  3 user1   user1    74 Aug 30 14:54 user1
/mountpoint/:
total 0
drwx------  5 mage    mage    121 Sep  1 11:45 mage
drwx------. 3 mageedu mageedu  74 Jul 26 16:09 mageedu
drwx------  3 magge   magge    74 Sep  1 13:37 magge
drwx------  3 maggea  maggea   74 Sep  1 13:37 maggea
drwx------  3 user1   user1    74 Aug 30 14:54 user1

查看掛載情況:

#findmnt MOUNT_POINT

[root@Cloud /media/sdb2]#findmnt /media/sdb1
TARGET      SOURCE    FSTYPE OPTIONS
/media/sdb1 /dev/sdb1 ext3   rw,relatime,errors=continue,barrier=1,data

查看正在訪問指定文件系統的進程:

#lsof MOUNT_POINT

#fuser -v MOUNT_POINT

終止所有在正訪問指定的文件系統的進程:

[

root@Cloud /media/sdb1]#lsof /dev/sdb1 #命令要在掛載點目錄下使用
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    2222 root  cwd    DIR   8,17     4096    2 /media/sdb1
lsof    2658 root  cwd    DIR   8,17     4096    2 /media/sdb1
lsof    2659 root  cwd    DIR   8,17     4096    2 /media/sdb1
[root@Cloud /media/sdb1]#fuser -v /media/sdb1 #同上
                     USER        PID ACCESS COMMAND
/media/sdb1:         root       2222 ..c.. bash

# fuser -km MOUNT_POINT

終止所有在正訪問指定的文件系統的進程

[root@Cloud /media/sdb1]#fuser -km /media/sdb1 #結束進程,并斷開連接
/media/sdb1:          2222c

? 卸載:

# umount DEVICE

# umount MOUNT_POINT

    注:正在被進程訪問的掛載點無法被卸載

[root@Cloud ~]#mount 查看掛載
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /media/sdb1 type ext3 (rw) #/dev/sdb1已掛載
/dev/sdb2 on /media/sdb2 type ext4 (ro) #/dev/sdb2已掛載
[root@Cloud ~]#umount /dev/sdb1 #卸載 指定掛載設備的方式
[root@Cloud ~]#umount /media/sdb2 #卸載 指定掛載點的方式
[root@Cloud ~]#mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) #已取消掛載!

查看內核追蹤到的已掛載的所有設備:

cat /proc/mounts

[root@Cloud /media/sdb2]#cat /proc/mounts  #查看內核追蹤到的已掛載的所有設備
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=938840k,nr_inodes=234710,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/mapper/vg0-root / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/mapper/vg0-usr /usr ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/mapper/vg0-var /var ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
/etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,relatime,fd=13,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0
/dev/sdb1 /media/sdb1 ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0
/dev/sdb2 /media/sdb2 ext4 ro,relatime,barrier=1,data=ordered 0 0

[root@Cloud /media/sdb2]#mount #查看當前系統掛載的所有掛載信息
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /media/sdb1 type ext3 (rw)
/dev/sdb2 on /media/sdb2 type ext4 (ro)

[root@Cloud /media/sdb2]#cat /etc/mtab #查看/etc/fstab中的掛載信息
/dev/mapper/vg0-root / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/mapper/vg0-usr /usr ext4 rw 0 0
/dev/mapper/vg0-var /var ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/sdb1 /media/sdb1 ext3 rw 0 0
/dev/sdb2 /media/sdb2 ext4 ro 0 0

除了手動掛載還可以自動掛載 ,只要把你需要掛載的路徑寫入/etc/fstab中再使用mount -a 就可以直接掛載上。

[root@Cloud ~]#vim /etc/fstab 

/dev/mapper/vg0-root    /                       ext4    defaults        1 1

UUID=86a42a62-9313-4445-a9d3-89017b8b3eee /boot       ext4    defaults        1 2

/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2

/dev/mapper/vg0-var     /var                    ext4    defaults        1 2

/dev/mapper/vg0-swap    swap                    swap    defaults        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

/dev/cdrom               /media               iso9660 defaults        0 0

/etc/fstab 每行定義一個要掛載的文件系統;

? 要掛載的設備或偽文件系統

? 掛載點

? 文件系統類型

? 掛載選項

? 轉儲頻率

? 自檢次序

? 要掛載的設備或偽文件系統:

設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc,

sysfs)

? 掛載選項: defaults默認權限有:rw, suid, dev, exec, auto, nouser, and async.

? 轉儲頻率: 0:不做備份

       1:每天轉儲

       2:每隔一天轉儲

? 自檢次序: 0:不自檢

       1:首先自檢;一般只有rootfs才用1

[root@localhost /run/user/0]#vim /etc/fstab #自動掛載  權限以,分隔
# /etc/fstab
# Created by anaconda on Tue Jul 26 08:01:18 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=62e9e57b-3452-4314-8567-85566ca642dc /        xfs     defaults        0 0
UUID=bb3ff6b4-e9c3-4090-b968-5affdb57782e /boot      xfs     defaults        0 0
UUID=366cf2a1-0923-4d99-bc20-35d93082ac3a /usr      xfs     defaults        0 0
UUID=58be63b5-585a-49e7-a8c2-b9b49cf44860 swap       swap    defaults        0 0
LABEL=MYDATA                /MYDATA    ext4    defaults,noexec,noatime 0 0 #以,分隔
/dev/sdb2                 swap      swap    defaults        0 0

交換分區

?交換分區是系統RAM的補充

?基本設置包括:

?創建交換分區或者文件

?使用mkswap寫入特殊簽名

?在/etc/fstab文件中添加適當的條目

?使用swapon -a 激活交換空間

啟用:swapon

swapon[OPTION]… [DEVICE]

-a:激活所有的交換分區;

-p PRIORITY:指定優先級

/etc/fstab:pri=value

?禁用:swapoff[OPTION]… [DEVICE]

[root@localhost /]#blkid /dev/sdb2 #顯示/dev/sdb2為swap文件系統
/dev/sdb2: UUID="f9d7f3dd-8d0e-484f-b2b0-b2ffad755b31" TYPE="swap" 
[root@localhost /]#free -h #現在的swap分區大小為2G
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          2.0G          0B        2.0G
[root@localhost /]#swapon /dev/sdb2 #啟用swap
[root@localhost /]#free -h #成功咯
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          3.0G          0B        3.0G

關于查看磁盤和分區命令 free 、du、 df、

內存空間使用狀態:

free [OPTION]

-m: 以MB為單位

-g: 以GB為單位

-h:人性化顯示

[root@localhost /]#free #默認顯示
              total        used        free      shared  buff/cache   available
Mem:        2033556      122220     1754992       13356      156344     1757476
Swap:       3146744           0     3146744
[root@localhost /]#free -h #人性化顯示
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          3.0G          0B        3.0G
[root@localhost /]#free -m #以M單位顯示
              total        used        free      shared  buff/cache   available
Mem:           1985         119        1713          13         152        1716
Swap:          3072           0        3072

文件系統空間占用等信息的查看工具:

df[OPTION]… [FILE]…

-H 以1000計算

-T 文件系統類型

-h: 人性化顯示

-i:inode計數

-P: 以Posix兼容的格式輸出

[root@localhost /]#df 默認輸出

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       41922560  221652  41700908   1% /
devtmpfs         1002256       0   1002256   0% /dev
tmpfs            1016776       0   1016776   0% /dev/shm
tmpfs            1016776   13344   1003432   2% /run
tmpfs            1016776       0   1016776   0% /sys/fs/cgroup
/dev/sda3       20961280 2692500  18268780  13% /usr
/dev/sdb1       10254840   12310  10024624   1% /MYDATA
/dev/sda1         496300  140496    355804  29% /boot
tmpfs             203356       4    203352   1% /run/user/0
[root@localhost /]#df -i #顯示inode節點的使用率
Filesystem       Inodes IUsed    IFree IUse% Mounted on
/dev/sda2      41943040  6582 41936458    1% /
devtmpfs         250564   399   250165    1% /dev
tmpfs            254194     1   254193    1% /dev/shm
tmpfs            254194   522   253672    1% /run
tmpfs            254194    13   254181    1% /sys/fs/cgroup
/dev/sda3      20971520 88746 20882774    1% /usr
/dev/sdb1        655360    12   655348    1% /MYDATA
/dev/sda1        499712   329   499383    1% /boot
tmpfs            254194     2   254192    1% /run/user/0
[root@localhost /]#df -h #人性化顯示
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G  217M   40G   1% /
devtmpfs        979M     0  979M   0% /dev
tmpfs           993M     0  993M   0% /dev/shm
tmpfs           993M   14M  980M   2% /run
tmpfs           993M     0  993M   0% /sys/fs/cgroup
/dev/sda3        20G  2.6G   18G  13% /usr
/dev/sdb1       9.8G   13M  9.6G   1% /MYDATA
/dev/sda1       485M  138M  348M  29% /boot
tmpfs           199M  4.0K  199M   1% /run/user/0

查看某目錄總體空間占用狀態:

du [OPTION]… DIR

-h: human-readable :人性化咯

-s:summary:總輸出

[root@localhost ~]#du -h /boot #人性化顯示數據帶下
4.0K/boot/grub
0/boot/grub2/themes/system
0/boot/grub2/themes
2.4M/boot/grub2/i386-pc
3.3M/boot/grub2/locale
2.5M/boot/grub2/fonts
8.1M/boot/grub2
113M/boot
[root@localhost ~]#du -sh /boot #目錄總大小,不展開
113M/boot

原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/43832

(0)
ladsdmladsdm
上一篇 2016-09-07
下一篇 2016-09-07

相關推薦

  • Linux基礎之文件查找壓縮

    為何學習本章節,可以設想一下,在未來工作中面對大量用戶時,想要找到同一類型屬性的用戶文件時,需要一個工具可以快速準確的定位到所尋找的文件,那就是locate和find。   ******************************************************* 重點: ? ? 1.德摩根定律 ????非(P且Q) = (非P…

    2016-08-22
  • yum前端工具與源碼編譯安裝

    概述:本章內容重要講解yum(rpm前端工具)和rpm源碼編譯安裝,前者可以有效的解決軟件安裝過程中存在的依賴關系,從而提升我們使用系統的效率;后者是我們進階Linux系統,了解程序包安裝的過程本質 1、YUM: Yellowdog Update Modifier   Yum(全稱為 Yellow dog Updater, Modified)是一個…

    Linux干貨 2016-08-29
  • 馬哥教育網絡班22期+第二周課程練習

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示? cp命令:copy,有2類復制方法  1、單源復制:如果DEST不存在:則實現創建此文件,并復制源文件的數據流至DEST中;     如果DEST存在:如果DEST是非目錄文件,則覆蓋目標文件;如果DEST是目錄文件,則先DEST目錄下創建一個與源文件…

    Linux干貨 2016-08-22
  • Linux進程與作業1

    Linux進程與作業 操作系統的組成部分:硬件,kernel,lib, 系統調用–>調用kernel lib調用–> 庫調用,kernel調用 運行用戶代碼–>用戶模式–>用戶空間; 運行kernel–>內核模式–>內核空間; 內核的功用:進程管理,文件系統,網絡功能,內存管理,驅動程序,安全功能 C…

    Linux干貨 2016-08-02
  • N22-妙手-第七周博客作業第四題:RAID各級別的特性

    什么是RAID RAID的全稱是Redundant Array of Independent Disks – 獨立磁盤冗余陣列?;舅枷胧菍⒍鄠€相對便宜的硬盤組合成為一個硬盤陣列,使其在性能上達到或超過一塊價格昂貴、容量巨大的硬盤。RAID通常被用在服務器上,使用完全相同的硬盤組成一個邏輯扇區,因此操作系統會把其當做一塊硬盤。RAID分為不同的等…

    Linux干貨 2016-09-27
  • N22-第九周作業

    第九周    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;    #!/bin/bash    #    decl…

    Linux干貨 2016-10-24
欧美性久久久久