文件系統掛載簡介
磁盤分區和格式化完成后,磁盤分區要想能夠使用,就需要掛載,在掛載某個分區前需要先建立一個掛載點
掛載:將新的文件系統關聯至當前根文件系統
卸載:將某文件系統與當前根文件系統的關聯關系移除;卸載時設備沒有進程在使用
掛載點:作為要掛載文件系統的訪問入口;掛載點事先必須存在;不會被進程使用到的目錄;掛載點下原有文件將會被臨時隱藏
文件系統掛載管理工具
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配置文件中定義的掛載
-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,async
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文件
銷毀磁盤數據
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
通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度
修復硬盤
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查看正在被使用的文件