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 允許/不允許一般用戶掛載

   c odepage=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目錄去訪問分區中的資源了。 


1. 為什么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 



2. 為什么mount上去以后分區普通用戶不可寫? 

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

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



3. 為什么mount上去后的分區中的文件都變成短文件名了? 

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

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



4. 如何掛載U盤和mp3? 

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

#  mkdir /mnt/u

#  mount /dev/sda1 /mnt/u 


掛載即可。 


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

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

#  mkdir /mnt/iso

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


當然,掛載以后掛載點/mnt/iso也是只讀的。 


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

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

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



7. 如何掛載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中實現自動掛載。 


8. mount --bind是什么意思? 

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

#  mount --bind olddir newdir 


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

#  mount --move olddir newdir

即可。 

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

olddir newdir none bind 0 0



9. 為什么umount的時候老顯示 device busy? 

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

#  umount -l /mnt/hda5 


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

 

 

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

開機掛載及/etc/fstab格式

 

    當我們在掛載磁盤的時候,除了利用磁盤的代號之外 (/dev/hdxx) 也可以直接利用磁盤的 label 來作為掛載的磁盤掛載點喔!基本上, 就是那個/etc/fstab 檔案的設定,Label 來做為磁盤掛載的依據, 這樣有好有壞:
優點:不論硬盤代號怎么變,不論您將硬盤插在那個 IDE 接口 (IDE1 或 IDE2 或 master 或 slave 等),由於系統是透過 Label ,所以,磁盤插在那個接口將不會有影響。
缺點:如果插了兩顆硬盤,剛好兩顆硬盤的 Label 有重復的,那就慘了~ 因為系統會無法判斷那個磁盤分割槽才是正確的!

開機掛載 /etc/fstab 及 /etc/mtab:
系統掛載的一些限制:
根目錄 / 是必須掛載的,而且一定要先於其它 mount point 被掛載進來。
其它 mount point 必須為已建立的目錄,可任意指定,但一定要遵守必須的系統目錄架構原則
所有 mount point 在同一時間之內,只能掛載一次。
所有 partition 在同一時間之內,只能掛載一次。
如若進行卸載,您必須先將工作目錄移到 mount point(及其子目錄) 之外。

復制代碼
[root@linux ~] #  cat /etc/fstab
#
 Device Mount_point filesystem parameters dump fsck
LABEL=/       /          ext3     defaults   1     1  (以標頭名稱掛載)
/dev/hda5     /home     ext3      defaults   1    2
/dev/hda3     swap      swap     defaults   0     0
/dev/hdc /media/cdrom     auto     pamconsole,exec,noauto,managed 0 0
/dev/devpts       /dev/pts devpts gid=5,mode=620 0 0
/dev/shm   /dev/shm     tmpfs      defaults   0    0
/dev/proc     /proc     proc      defaults   0     0
/dev/sys     /sys     sysfs      defaults   0     0
復制代碼


    其實這個 /etc/fstab 就是將我們使用 mount 來掛載一個裝置到系統的某個掛載點, 所需要下達的指令內容,將這些內容通通寫到 /etc/fstab 里面去,而讓系統一開機就主動掛載。 那么 mount 下達指令時,需要哪些參數?不就是『裝置代號、掛載點、檔案系統類別、參數』等等, 而我們的 /etc/fstab 則加入了兩項額外的功能,分別是備份指令 dump 的執行與否, 與是否開機進行 fsck 掃瞄磁盤。
    前面的4個已經很熟悉了,每個檔案系統還有很多參數可以加入的,例如中文編碼的 iocharset=big5,codepage=950 之類的,當然還有很多常見的參數,具體可以看mount中的詳細介紹,具體說一下后2個:dump和fsck。

能否被 dump 備份指令作用: 
    在 Linux 當中,可以利用 dump 這個指令來進行系統的備份的。而 dump 指令則會針對 /etc/fstab 的設定值,去選擇是否要將該 partition 進行備份的動作呢! 0 代表不要做 dump 備份, 1 代表要進行 dump 的動作。 2 也代表要做 dump 備份動作, 不過,該 partition 重要度比 1 小。

是否以 fsck 檢驗扇區:
    開機的過程中,系統預設會以 fsck 檢驗我們的 partition 內的 filesystem 是否完整 (clean)。 不過,某些 filesystem 是不需要檢驗的,例如虛擬內存 swap ,或者是特殊檔案系統, 例如 /proc 與 /sys 等等。所以,在這個字段中,我們可以設定是否要以 fsck 檢驗該 filesystem 喔。 0 是不要檢驗, 1 是要檢驗, 2 也是要檢驗,不過 1 會比較早被檢驗啦! 一般來說,根目錄設定為 1 ,其它的要檢驗的 filesystem 都設定為 2 就好了。

    一般來說, 當我們編輯 /etc/fstab 后,為了避免可能的錯誤,通常就會以 mount -a (模擬開機自動掛載操作)這個指令來測試看看呢!這是很重要的一個測試動作喔!

    /etc/fstab 是開機時的設定檔,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!但是,萬一發生您在 /etc/fstab 輸入的數據錯誤,導致無法順利開機成功,而進入單人維護模式當中,那時候的 / 可是 read only 的狀態,當然您就無法修改 /etc/fstab ,也無法更新 /etc/mtab ,沒關系,可以利用底下這一招:

[root@linux ~] #  mount -n -o remount,rw /


加上 -n 則不更新 /etc/mtab ,加上 -o 則提供額外的參數設定。 利用這一動作,嘿嘿!您的 / 就可以讀寫,那么自然就能夠更新檔案內容了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM