Linux 文件系統掛載

文件系統掛載簡介
  磁盤分區和格式化完成後,磁盤分區要想可以使用,就須要掛載,在掛載某個分區前須要先創建一個掛載點
  掛載:將新的文件系統關聯至當前根文件系統
  卸載:將某文件系統與當前根文件系統的關聯關係移除;卸載時設備沒有進程在使用
  掛載點:做爲要掛載文件系統的訪問入口;掛載點事先必須存在;不會被進程使用到的目錄;掛載點下原有文件將會被臨時隱藏node

文件系統掛載管理工具
  mount 不跟任何參數顯示當前系統已經掛載的設備及掛載點
  cat /proc/mounts 顯示內核中掛載的設備,mount命令就是去讀取該文件顯示出來
  cat /etc/mtab mount命令去掛載和卸載的操做信息會記錄到該文件,也能夠顯示系統掛載的設備
  mount [options] -t FSTYPE -o [option] 設備名稱 掛載點
  [options] 命令選項
  -n        掛載後不更新操做記錄到/etc/mtab文件
  --bind dir1 dir2 將dir1掛載到dir2上,使得dir2也能訪問dir1的文件(綁定某個目錄到另一個目錄)
  -t FSTYPE     指定掛載的文件系統類型
  -r        只讀掛載
  -w        讀寫掛載
  -L LABLE     指定卷標名,用卷標名字掛載;也可使用LABLE="lable"
  -U UUID      使用UUID掛載,也可使用 UUID="uuid"
  -a         自動掛載全部/etc/fstab配置文件中定義的掛載linux

  -o [options] 掛載時啓動分區特性(多選項用逗號隔開)
    async    異步I/O數據的寫入先緩存在內存中,再寫入硬盤;數據寫入硬盤會有延遲,忽然斷電數據會丟失
   sync    同步I/O數據同步寫入硬盤,頻繁操做IO,影響性能
   auto/noauto 是否可以被mount -a自動掛載
   dev/nodev  是否能建立設備文件
   diratime/nodirtime 是否更新目錄的訪問時間戳
   exec/noexec 是否容許執行二進制程序
   suid/nosuid 是否能設置文件的SUID,SGID權限位
   user/nouser 是否容許普通用戶掛載此設備(默認管理員才能掛載)
   ro     只讀掛載
   rw     讀寫掛載
   remount   從新掛載
   acl     啓用文件此文件系統上的acl功能
   _netdev   掛載NFS網絡文件系統時候,若是網絡功能還沒起來,可能致使掛載進程一直卡住,此選項能夠中止掛載此網絡設備
   atime/noatime 是否更新文件的訪問時間戳,不是特別重要的文件,建議noatime
   relatime/norelatime 是否實時更新atime
   strictatime/nostrictatiom 是否實時更新atime(這三個參數不一樣的內核版本或文件系統類型可能生效的參數不同)
  若是默認掛載沒指定選項默認選項是:rw,suid,dev,exec,auto,nouser,asyncshell

  dd命令
  cp命令複製文件是以文件爲單位複製的,是先將文件信息讀取到內存中,在將內存中的信息存儲到硬盤的目標位置(須要通過虛擬文件系統VFS)
  dd命令複製底層的數據流(硬盤底層的0和1代碼,不通過VFS)
  dd if=input_file of=output_file
  dd if=input_file of=output_file bs=#[b|k|m|g] count=#
   bs   一次讀多大數據量
   count 讀取次數
   if   輸入文件
   of   輸出文件緩存

  製做光盤文件:
  dd if=/dev/cdrom of=/tmp/linux.iso
  cat /dev/cdrom > /tmp/linux.iso
  備份啓動盤的MBR信息:
  dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
  還原MBR信息:
  dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1安全

  拷貝內存資料到硬盤
  dd if=/dev/mem of=/root/mem.bin bs=1024
  將內存裏的數據拷貝到root目錄下的mem.bin文件網絡

  從光盤拷貝iso鏡像
  dd if=/dev/cdrom of=/root/cd.iso
  拷貝光盤數據到root文件夾下,並保存爲cd.iso文件dom

  銷燬磁盤數據
  dd if=/dev/urandom of=/dev/sda1
  利用隨機的數據填充硬盤,在某些必要的場合能夠用來銷燬數據。執行此操做之後,/dev/sda1將沒法掛載,建立和拷貝操做沒法執行。異步

  測試硬盤讀寫速度
  dd if=/root/1Gb.file bs=64k | dd of=/dev/null
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
  經過上兩個命令輸出的執行時間,能夠計算出測試硬盤的讀/寫速度async

  修復硬盤
  dd if=/dev/sda of=/dev/sda
  當硬盤較長時間(好比1,2年)放置不使用後,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,並可能致使I/O錯誤。當這種狀況影響到硬盤的第一個扇區時,可能致使硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。工具

  掛載光盤設備:
  光盤設備文件:
  IDE口光驅設備: /dev/hdc
  SATA口光驅設備: /dev/sr0
  符號連接文件(連接到上面的設備文件):/dev/cdrom、/dev/cdrw、/dev/dvd、/dev/dvdrw

  mount -t iso9660 -r /dev/cdrom /media/cdrom
  umount /dev/cdrom

  開機自動掛載
 /etc/rc.d/rc.sysinit系統初始化腳本其中一個功能是掛載/etc/fstab文件中定義的文件系統掛載表(每條記錄6個字段)
# /etc/fstab
# Created by anaconda on Sat Jul 16 14:42:59 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=a9e077c4-fa4c-4189-a593-6f33ff40a4f1  /    ext4 defaults 1 1
UUID=92c80024-7269-4b0a-8d58-781dbc0114a2  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

  要掛載的設備:設備文件名稱、也能夠指定UUID="uuid"、LABEL="LabName"、僞文件系統名稱進行掛載
  掛載點:有的文件系統沒有掛載點 swap沒有掛載點,掛載點爲swap
  文件系統類型:指定掛載文件系統類型
  掛載選項:默認爲defaults,使用默認掛載選項;要使用某個選項的時候經過逗號隔開添加
  轉儲頻率:(每多少天作一次文件系統徹底備份),0表示不作備份,該項如今不多使用
   0 從不備份
    1 每日備份
    2 每隔一天備份
   文件系統開機自檢測次序:(0表示不檢查,只有根能夠爲1);開機的時候要檢查文件系統
    1  首先自檢,一般只能被根/使用
    2-9 表示自檢順序
    0  從不自檢

  umount 卸載設備
  umount Device
  umount Mount_Point

  若是卸載設備出現device is busy報錯,則表示該文件系統正在被使用,可使用如下命令
 fuser 找出正在使用某個目錄全部進程
 fuser -v 掛載點 顯示那些進程訪問掛載文件
 fuser -km 掛載點 強制剔除shell進程
  -u 除了進程的PID以外,同時列出該進程的擁有者      
  -m 列出全部使用某個目錄的進程號
  -v 能夠列出每一個文件與進程還有指令的完整相關性
  -k 找出使用掛載點中文件或目錄的 PID ,以 SIGKILL這個信號殺死該 PID
  -i 與-k結合使用,交互式模式,殺死前會詢問用戶
  -signal 例如 -1 -15 ,若不加的話,預設是 SIGKILL (-9)

  lsof
  lsof 掛載點 可使用命令lsof查看正在被使用的文件

相關文章
相關標籤/搜索