Linux mount命令的使用

從網上收集了兩篇關於mount命令文章,摘抄於此,以備日後參考。


轉自:http://no001.blog.51cto.com/1142339/270932
mount命令詳解
2009-06-29 14:38

功能: 加載指定的文件系統。
語法: mount [-afFhnrvVw] [-L] [-o] [-t] [設備名] [加載點]
用法說明: mount 可將指定設備中指定的文件系統加載到Linux目錄下(也就是裝載點)。可將經常使用的設備寫入 文件/etc/fstab,以使系統在每次啓動時自動加載。mount加載設備的信息記錄在/etc/mtab文件中。使用umount命令卸載設備 時,記錄將被清除。


常用參數和選項:
-a 加載文件/etc/fstab中設置的所有設備。
-f 不實際加載設備。可與-v等參數同時使用以查看mount的執行過程。
-F 需與-a參數同時使用。所有在/etc/fstab中設置的設備會被同時加載,可加快執行速度。
-h 顯示在線幫助信息。
-L 利用partition的表頭名稱(Lable)來進行掛載。
-n 不將加載信息記錄在/etc/mtab文件中。
-o 指定加載文件系統時的選項。有些選項也可在/etc/fstab中使用。這些選項包括:
async 以非同步的方式執行文件系統的輸入輸出動作。
atime 每次存取都更新inode的存取時間,默認設置,取消選項爲noatime。
auto 必須在/etc/fstab文件中指定此選項。執行-a參數時,會加載設置爲auto的設備,取消選取爲noauto。
defaults 使用默認的選項。默認選項爲rw、suid、dev、exec、anto nouser與async。
dev 可讀文件系統上的字符或塊設備,取消選項爲nodev。
exec 可執行二進制文件,取消選項爲noexec。
noatime 每次存取時不更新inode的存取時間。
noauto 無法使用-a參數來加載。
nodev 不讀文件系統上的字符或塊設備。
noexec 無法執行二進制文件。
nosuid 關閉set-user-identifier(設置用戶ID)與set-group-identifer(設置組ID)設置位。
nouser 使一位用戶無法執行加載操作,默認設置。
remount 重新加載設備。通常用於改變設備的設置狀態。
ro 以只讀模式加載。
rw 以可讀寫模式加載。
suid 啓動set-user-identifier(設置用戶ID)與set-group-identifer(設置組ID)設置位,取消選項爲nosuid。
sync 以同步方式執行文件系統的輸入輸出動作。
user 可以讓一般用戶加載設備。
-r 以只讀方式加載設備。
-t 指定設備的文件系統類型。常用的選項說明有:
minix Linux最早使用的文件系統。
ext2 Linux目前的常用文件系統。
msdos MS-DOS 的 FAT。
vfat Win85/98 的 VFAT。
nfs 網絡文件系統。
iso9660 CD-ROM光盤的標準文件系統。
ntfs Windows NT的文件系統。
hpfs OS/2文件系統。Windows NT 3.51之前版本的文件系統。
auto 自動檢測文件系統。
-v 執行時顯示詳細的信息。
-V 顯示版本信息。
-w 以可讀寫模式加載設備,默認設置。

簡單用法:
fat32的分區
mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom (mount -t vfat -o iocharset=cp936 /dev/hda7 /mnt/cdrom)
ntfs的分區
mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件
mount -o loop /abc.iso /mnt/cdrom
軟盤
mount /dev/fd0 /mnt/floppy
USB閃存
mount /dev/sda1 /mnt/cdrom
所有/etc/fstab內容 mount -a
可以指定文件格式"-t 格式", 格式可以爲vfat, ext2, ext3等.
鏡像文件:
mount fileName mountPoint -o loop,fileName是鏡像文件名(*.iso,*.img),其它的不用說了,跟上面一樣。用例:如我有一個a.iso光盤鏡像文件,mount a.iso a -o loop,這樣進入目錄a你就能瀏覽a.iso的內容了,*.img文件的用法一樣。
顯示中文方面,如果是fedora core 1 的話,用utf8更好
mount -o iocharset=uft8 /dev/hda1 /mnt/c
mount -o iocharset=uft8 /dev/sda1 /mnt/usb
mount -t smbfs //ip_addr/share/dir /mnt/smb/share -o iocharset=uft8,username=name, password=passwd
開機就mount上windows下的分區
自動將windows的d盤掛到/mnt/d上,用vi打開/etc/fstab,加入以下一行
/dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
注意,先得手工建立一個/mnt/d目錄
mount局域網上其他windows機器共享出的目錄(bjchenxu)
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

格式: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 掛載“迴旋設備”以及“ISO鏡像文件”

需要注意的是,掛載點必須是一個已經存在的目錄,這個目錄可以不爲空,但掛載後這個目錄下以前的內容將不可用,umount以後會恢復正常。使用多個-o參數的時候,-o 只用一次,參數之間用半角逗號隔開:

# mount –o remount,rw /

例如要掛載windows下文件系統爲FAT32的D盤,一般而言在Linux下這個分區對應/dev/hda5,根據具體的分區情況會有不同,這裏就以hda5來舉例說明:

# mkdir /mnt/hda5 //創建hda5的目錄作爲掛載點,位置和目錄名可自定義//

# mount -t vfat /dev/hda5 /mnt/hda5

一般而言,Linux會自動探測分區的文件系統,除非讓你指定時,否則-t vfat 可以省掉。

# mount /dev/hda5 /mnt/hda5

這樣就可以進入/mnt/hda5目錄去訪問分區中的資源了。

3. 爲什麼mount上分區後顯示不了中文文件爲問號/亂碼?

顯示問號表明你的系統中沒有可識別使用的中文字體,請先安裝中文字體。確保你的系統已經可以很好的顯示中文。顯示爲亂碼一般是mount默認使用的 文件系 統編碼和文件系統中文件的實際編碼不一致造成的。要想正常顯示中文文件,mount時需要用到 -o 參數裏的codepage和iocharset選項。codepage指定文件系統的代碼頁,簡體中文中文代碼是936;iocharset指定字符集, 簡體中文一般用cp936或gb2312。

# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5

一般來說 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解決問題了。

如果這樣做了以後還有問題,請嘗試UTF-8編碼:

# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5

4. 爲什麼mount上去以後分區普通用戶不可寫?

mount時加上 –o umask=000 即可:

# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5

5. 爲什麼mount上去後的分區中的文件都變成短文件名了?

這是文件系統掛錯的原因,將FAT32掛載成FAT16時就會出現這種情況,先umount,然後用 –t vfat 重新掛載即可解決問題。

# mount –t vat /dev/hda5 /mnt/hda5

7. 如何掛載U盤和mp3?

如果計算機沒有其它SCSI設備和usb外設的情況下,插入的U盤的設備路徑是 /dev/sda1,用命令:

# mkdir /mnt/u

# mount /dev/sda1 /mnt/u

掛載即可。

8. 可以直接使用iso文件嗎?

可以,就是mount的這一選項使得Linux下有免費虛擬光驅的說法,具體用法是:

# mkdir /mnt/iso

# mount –o loop linux.iso /mnt/iso

當然,掛載以後掛載點/mnt/iso也是隻讀的。

12. 如何開機自動掛載分區?

每次掛載都要輸入那麼長的命令的確是繁瑣了些,只要將分區信息寫到/etc/fstab文件中即可實現系統啓動的自動掛載,例如對於/dev/hda5的自動掛載添加如下的行即可:

/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0

13. 如何掛載samba 分區?

# mkdir /mnt/share

# mount -t smbfs -o username=root,password=abc,codepage=936,iocharset=gb2312 //192.168.1.100/share /mnt/share

如果中文顯示不正常請嘗試UTF-8編碼。當然可以寫到fstab中實現自動掛載。

14. mount –bind是什麼意思?

mount –bind 是將一個目錄中的內容掛載到另一個目錄上,用法是

# mount –bind olddir newdir

這個命令使得自己搭建的FTP要共享某個目錄的時候變得特別方便。如果要取消mount用命令:

# mount –move olddir newdir 或者
umount newdir

如果mount –bind 也想寫入fstab中的話格式如下:

olddir newdir none bind 0 0

16. 爲什麼umount的時候老顯示 device busy?

這是因爲有程序正在訪問這個設備,最簡單的辦法就是讓訪問該設備的程序退出以後再umount。可能有時候用戶搞不清除究竟是什麼程序在訪問設備,如果用戶不急着umount,則可以用:

# umount -l /mnt/hda5

來卸載設備。選項 –l 並不是馬上umount,而是在該目錄空閒後再umount。還可以先用命令 ps aux 來查看佔用設備的程序PID,然後用命令kill來殺死佔用設備的進程,這樣就umount的非常放心了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章