
一、簡單用法
掛載
$ mount /dev/hda2 /home
第一個叁數是與包括檔案系統的磁盤或磁區相關的設備檔案,
第二個叁數是要mount到的目錄,
卸載掛載點
$ umount /dev/hda2
$ umount /usr
引數可以是設備檔案或安裝點,
二、mount詳細介紹
如果想在運行的Linux下訪問其它檔案系統中的資源的話,就要用mount命令來實作,
1. mount的基本用法是?
格式:mount [-引數] [設備名稱] [掛載點]
其中常用的引數有:
-a 安裝在/etc/fstab檔案中類出的所有檔案系統,
-f 偽裝mount,作出檢查設備和目錄的樣子,但并不真正掛載檔案系統,
-n 不把安裝記錄在/etc/mtab檔案中,
-r 講檔案系統安裝為只讀,
-v 詳細顯示安裝資訊,
-w 將檔案系統安裝為可寫,為命令默認情況,
-t 指定設備的檔案系統型別,常見的有:
ext2 linux目前常用的檔案系統
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網路檔案系統
iso9660 CD-ROM光碟標準檔案系統
ntfs windows NT/2000/XP的檔案系統
auto 自動檢測檔案系統
-o 指定掛載檔案系統時的選項,有些也可寫到在/etc/fstab中,常用的有:
defaults 使用所有選項的默認值(auto、nouser、rw、suid)
auto/noauto 允許/不允許以 –a選項進行安裝
dev/nodev 對/不對檔案系統上的特殊設備進行解釋
exec/noexec 允許/不允許執行二進制代碼
suid/nosuid 確認/不確認suid和sgid位
user /nouser 允許/不允許一般用戶掛載
codepage=XXX 代碼頁
iocharset=XXX 字符集
ro 以只讀方式掛載
rw 以讀寫方式掛載
remount 重新安裝已經安裝了的檔案系統
loop 掛載回旋設備
需要注意的是,掛載點必須是一個已經存在的目錄,這個目錄可以不為空,但掛載后這個目錄下以前的內容將不可用,umount以后會恢復正常,使用多個-o引數的時候,-o只用一次,引數之間用半角逗號隔開:
CODE:
# mount –o remount,rw /
例如要掛載windows下檔案系統為FAT32的D盤,一般而言在Linux下這個磁區對應/dev/hda5,根據具體的磁區情況會有不同,這里就以hda5來舉例說明:
CODE:
# mkdir /mnt/hda5 //創建hda5的目錄作為掛載點,位置和目錄名可自定義//
# mount -t vfat /dev/hda5 /mnt/hda5
一般而言,Linux會自動探測磁區的檔案系統,除非讓你指定時,否則-t vfat 可以省掉,
CODE:
# mount /dev/hda5 /mnt/hda5
這樣就可以進入/mnt/hda5目錄去訪問磁區中的資源了,
2. 為什么mount上磁區后顯示不了中文檔案為問號/亂碼?
顯 示問號表明你的系統中沒有可識別使用的中文字體,請先安裝中文字體,確保你的系統已經可以很好的顯示中文,顯示為亂碼一般是mount默認使用的檔案系統 編碼和檔案系統中檔案的實際編碼不一致造成的,要想正常顯示中文檔案,mount時需要用到 -o 引數里的codepage和iocharset選項,codepage指定檔案系統的代碼頁,簡體中文中文代碼是936;iocharset指定字符集,簡體中文一般用cp936或gb2312,
CODE:
# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5
一般來說 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解決問題了,
如果這樣做了以后還有問題,請嘗試UTF-8編碼:
CODE:
# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5
3. 為什么mount上去以后磁區普通用戶不可寫?
mount時加上 –oumask=000 即可:
CODE:
# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5
4. 為什么mount上去后的磁區中的檔案都變成短檔案名了?
這是檔案系統掛錯的原因,將FAT32掛載成FAT16時就會出現這種情況,先umount,然后用–t vfat 重新掛載即可解決問題,
CODE:
# mount –t vat /dev/hda5 /mnt/hda5
5. 為什么不能mount ntfs磁區?
這是內核不支持NTFS檔案系統的原因,請重新編譯內核或者安裝內核的NTFS檔案系統支持包,以使得內核有NTFS檔案系統的支持,
6. 如何掛載U盤和mp3?
如果計算機沒有其它SCSI設備和usb外設的情況下,插入的U盤的設備路徑是 /dev/sda1,用命令:
CODE:
# mkdir /mnt/u
# mount /dev/sda1 /mnt/u
掛載即可,
7. 可以直接使用iso檔案嗎?
可以,就是mount的這一選項使得Linux下有免費虛擬光驅的說法,具體用法是:
CODE:
# mkdir /mnt/iso
# mount –o loop linux.iso /mnt/iso
當然,掛載以后掛載點/mnt/iso也是只讀的,
8. 我怎么不可以mount iso檔案?
一般而言,大多數的發行版使用的內核均已將loop設備的支持編譯進去了,但是也有沒有的情況,所以請確保系統所使用的內核支持loop設備,
第二種情況是iso檔案被放置到了NTFS或其它只讀檔案系統中了,掛載loop 設備必須要求掛載到一個可寫的磁區中,目前Linux內核對NTFS檔案系統的寫支持非常有限,請將iso檔案復制到其它可寫檔案系統中后再掛載,
9. 如何掛載光驅和軟驅
一般來說CDROM的設備檔案是/dev/hdc,軟驅的設備名是/dev/fd0
CODE:
# mkdir /mnt/cdrom
# mount /dev/hdc /mnt/cdrom //掛載光驅 //
# mkdir /mnt/floppy
# mount /dev/fd0 /mnt/floppy //掛載軟驅 //
10. 為何掛載的CD-ROM不能顯示中文檔案?
使用 –o iocharset=cp936 選項一般能解決問題,否則使用utf-8編碼,
CODE:
# mount –o iocharset=cp936 /dev/hdc /mnt/cdrom
11. 如何開機自動掛載磁區?
每次掛載都要輸入那么長的命令的確是繁瑣了些,只要將磁區資訊寫到/etc/fstab檔案中即可實作系統啟動的自動掛載,例如對于/dev/hda5的自動掛載添加如下的行即可:
CODE:
/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0
12. 如何掛載samba 磁區?
CODE:
# mkdir /mnt/share
# mount -t smbfs -ousername=root,password=abc,codepage=936,iocharset=gb2312//192.168.1.100/share /mnt/share
如果中文顯示不正常請嘗試UTF-8編碼,當然可以寫到fstab中實作自動掛載,
13. mount--bind是什么意思?
mount --bind 是將一個目錄中的內容掛載到另一個目錄上,用法是
CODE:
# mount --bind olddir newdir
這個命令使得自己搭建的FTP要共享某個目錄的時候變得特別方便,如果要取消mount用命令:
CODE:
# mount --move olddir newdir 即可,
如果mount --bind 也想寫入fstab中的話格式如下:
CODE:
olddir newdir none bind 0 0
三、 umount基本用法
譬如 /dev/hda5 已經掛載在/mnt/hda5上,用一下三條命令均可卸載掛載的檔案系統
CODE:
# umount /dev/hda5
# umount /mnt/hda5
# umount /dev/hda5 /mnt/hda5
- 為什么umount的時候老顯示 device busy?
這是因為有程式正在訪問這個設備,最簡單的辦法就是讓訪問該設備的程式退出以后再umount,可能有時候用戶搞不清除究竟是什么程式在訪問設備,如果用戶不急著umount,則可以用:
CODE:
# umount -l /mnt/hda5
來卸載設備,選項 –l 并不是馬上umount,而是在該目錄空閑后再umount,還可以先用命令ps aux 來查看占用設備的程式PID,然后用命令kill來殺死占用設備的行程,這樣就umount的非常放心了,

本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/261585.html
標籤:Linux
上一篇:基礎命令的使用(一)
