介紹
在Linux系統中,磁盤分區是不能夠直接訪問的,需要將其掛載到系統中的某一個目錄中(掛載點),然後通過訪問掛載點來實現分區的訪問. Unix類的操作系統如此,Windows也是一樣;但Unix類的操作系統是通過mount進行的,掛載文件系統時要有掛載點,在安裝Linux的過程中,有時會提示我們分區,然後建立文件系統,接着是選擇掛載點。我們在Linux系統的使用過程中,也會掛載其它的硬盤分區,也要選中掛載點,掛載點通常是一個空置的目錄,最好是我們自建的空置目錄;
一些臨時設備也使用一些臨時的掛載點,通常位於/media , 如/media/floppy,/media/cdrom , /media/caeram. 通常將/dev/cdrom 掛載至/media/cdrom(或mnt/cdrom) ,將/dev/fd0 掛載/mnt/floppy (或/media/floppy)
爲提升性能,內核對所有設備操作做緩衝,這種機制要求對文件系統先使用umont 進行卸載,否則會造成數據的丟失甚至文件系統的損壞, 因爲暫存在內存的數據來不及寫回磁盤。
掛載點:爲訪問磁盤上的分區,將文件系統的根目錄映射至/文件系統中的一個已經存在的目錄下。這個過程叫掛載。已經存在的目錄就稱爲掛載點。可以用mount 查看系統當前的掛載情況。掛載將遮住掛載點原來的文件
掛載權限:默認只有根用戶才能掛載和卸載設備,臨時設備使用不同的機制,控制檯用戶會變成一些設備的所有者。
2. sysopsis
mount [option] <device> <mount_point>
mount [option][-o mount_option] <device> <mount_point>
[mount_point]必須是一個已經存在的目錄,這個目錄可以不爲空,但掛載後這個目錄下原有內容不可訪問,umount以後會恢復正常。
[device] 可以是一個分區,一個usb設備,光驅,軟盤,網絡共享等。
完整選項說明
-t vfstype | 掛載指定的文件系統類型:adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs, xiafs
一般文件類型,可以不需要指定就可以有相同自動檢測(adfs, bfs, cramfs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, ntfs, qnx4, reiserfs, romfs, udf, ufs, vxfs, xfs, xiafs 等文件系統),如果探測失敗,就將訪問/etc/filesystems ,以指定文件系統探測。說明:如果清楚文件系統,最好指定具體類型。探測錯誤將帶來災難性的。 多個文件系統可以用“,”分割開來 mount -a -t nomsdos,ext 將掛載fstab文件指定所有的文件系統,除了類型爲 msdos 和 ext 的那一些。 常見文件類型
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-o options | 掛載時使用mount -o指定,若已經掛載的文件系統可以使用mount -o remount,mount_options 直接修改掛載參數. 指定掛載系統選項:多個選項可以用","分割.某些選項只有在出現在文件 /etc/fstab 中時纔有意義。下列選項可以用於任何要掛載的文件系統
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-a | 搜索/etc/fstab文件中滿足條件的文件系統,進行掛載操作。 格式: mount -a -t type -o options 不需要指定設備/目錄 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-f | 測試mount系統,只檢查設備和目錄,並不真正掛載文件系統 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-n | 不把掛載的記錄,記錄在/etc/mtab 文件中 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-r | 將文件系統安裝爲只讀,同(-o ro) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-w | 將文件系統安裝爲可讀寫,同(-o rw) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-L label | 掛載具有指定卷標 label 的分區, 可以使用Label掛載文件系統 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-w | 將文件系統安裝爲可讀寫,同(-o rw) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-v | 顯示詳細的掛載進度 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-l | 列出所有已經掛載的文件系統列表 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--bind | 將文件層次的一部分重新掛載到其他地方.只掛接單一的文件系統,如果目錄有其它文件系統,將不能掛載。如果需要都掛載,可以用:--rbind 參數。 mount --bind olddir newdir 2個目錄可以訪問系統內容 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
--move | 將一個目錄移到另外地方,mount --move olddir newdir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-h | 顯示幫助 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-V | 顯示版本 |
3. mount 文件系統的方法
掛載時滿足3個條件:分區文件系統類型,對應設備文件,掛載點
可以使用mount 手動實現
配置/etc/fstab (由mount 調用)實現自動掛載
使用autofs 服務按需掛載(需要使用時才自動掛載)
自動掛載
rc.local 腳本中添加mount命令掛載文件系統
gnome 圖形環境會運行一個automounter程序自動監控光驅和自動掛載它,其只對光驅起作用。
4. eg
mount 不帶參數,顯示所有已經掛載的文件系統 /proc/mounts
mount | column -t 以清晰的格式顯示所有掛載的文件系統
mount -a 掛載/etc/fstab中未掛載的設備(掛載/etc/fstab 中所有的文件系統 )
mount /dev/cdrom 掛載/etc/fstab中對應的文件系統
mount -o remount,rw / 重新以讀寫模式掛載/
mount -o remount,rw,auto / 重新掛載/目錄,
mount -t tmpfs tmpfs /mnt -o size=1024m 掛載一個臨時內存分區
mount -t cifs //192.168.1.3/game /media -o username=Joen%password
mount -t iso9660 -o loop <光盤鏡像> <掛載點> 掛載ISO光盤鏡像
mount -o loop file.iso /mnt/cdrom 掛載一個文件或ISO鏡像文件
mount /dev/cdrom /mnt/cdrom
mount /dev/hda2 /mnt/hda2 掛載一個叫做hda2的盤 - 確定目錄 '/ mnt/hda2' 已經存在
umount /dev/hda2 卸載一個叫做hda2的盤 - 先從掛載點 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 當設備繁忙時強制卸載
umount -n /mnt/hda2 運行卸載操作而不寫入 /etc/mtab 文件- 當文件爲只讀或當磁盤寫滿時非常有用
mount /dev/fd0 /mnt/floppy 掛載一個軟盤
mount /dev/hdc /mnt/cdrecorder 掛載一個cdrw或dvdrom
mount -t vfat /dev/hda5 /mnt/hda5 掛載一個Windows FAT32文件系統
mount /dev/sda1 /mnt/usbdisk 掛載一個usb 捷盤或閃存設備
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 掛載一個windows網絡共享(samba)
showmount -e 192.168.0.30 查看連接
mount -t nfs 192.168.0.30:/tmp /mnt/nfs
mount --bind /olddir /newdir 將olddir和newdir掛載到同一個inode,掛載後的目錄(newdir)繼承了被掛載目錄的所有屬性(除了名稱)