mount命令詳解及常見問題彙總

angel_kitty發表於2018-04-17

一 、mount命令(用來掛載硬碟或映象等)

用法:mount [-t vfstype] [-o options] device dir
1、-t vfstype 指定檔案系統的型別,通常不必指定。mount 會自動選擇正確的型別。常用型別有:
DOS fat16檔案系統:msdos
Windows 9x fat32檔案系統:vfat
Windows NT ntfs檔案系統:ntfs
Windows網路檔案共享:smbfs (預設的windows系統都支援的)

windows網路共享檔案:cifs (cifs是smbfs的升級版,預設的windows系統都支援的,首先推薦)

光碟或光碟映象:iso9660
UNIX(LINUX) 檔案網路共享:nfs

2、-o options 主要用來描述裝置或檔案的掛接方式。常用的引數有:
loop:用來把一個檔案當成硬碟分割槽掛接上系統
ro:採用只讀方式掛接裝置
rw:採用讀寫方式掛接裝置
iocharset:指定訪問檔案系統所用字符集
3、device 要掛接(mount)的裝置。
4、dir裝置在系統上的掛接點(mount point)。 

5、monut 遠端或本機的windows分割槽之NTFS格式支援:
1)根據核心安裝ntfs支援模組:http://sourceforge.net/projects/linux-ntfs/files/
具體的過程幫助:http://gerardmcgarry.com/blog/hacking-centos-ntfs-support
例項:sudo mount -t cifs //remotehostname/shared /mnt/myshared -o username=XXX,password=XXX
2)安裝ntfs-3g—– yum install ntfs-3g(fuse-ntfs-3g)
參考:http://www.zzdushi.com/?p=30
參考:http://ntfs-3g.org/
具體過程幫助:http://wiki.centos.org/TipsAndTricks/NTFS
例項:mount -t ntfs-3g /dev/sda1 /mnt/windows(umount /mnt/windows)

6、例項:
掛載本機的iso:mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
掛載遠端的fat32的共享目錄:mount //10.167.20.20/shared /mnt/mywinshare
Windows 的C分割槽掛到Liunx的/mnt/winc目錄下: mount -t vfat /dev/hda1 /mnt/winc ,如果中文顯示有問題:#mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc。(要掛載本地的windows分割槽,在ubuntu下使用命令sudo fdisk -l 來檢視磁碟分割槽情況。)
當插入閃盤後,閃盤被識別為一個SCSI盤,通常輸入以下命令:mount /dev/sda1 /usb

二 、FQA

1. 用mount/umount能做什麼?
不同的作業系統使用不同的檔案系統格式。MS-DOS支援FAT16檔案系統,Windows98支援FAT16、FAT32檔案系 統,WindowsNT支援FAT16、NTFS檔案系統,Windows2000則支援FAT16、FAT32、NTFS三種檔案系統格式,而 Linux差不多支援所有的檔案系統格式,但一般使用ext2或ext3檔案系統。 很多使用者使用的是windows作業系統,如果想在執行的Linux下訪問其它檔案系統中的資源的話,就要用mount命令來實現。  

2.  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 掛載迴旋裝置
username/password用來設定有訪問許可權的使用者名稱和密碼

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

# mount –o remount,rw XXX XXX

例如要掛載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

6. 為什麼不能mount ntfs分割槽?
這是核心不支援NTFS檔案系統的原因,請重新編譯核心或者安裝核心的NTFS檔案系統支援包,以使得核心有NTFS檔案系統的支援。

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也是隻讀的。  

9. 我怎麼不可以mount iso檔案?
一般而言,大多數的發行版使用的核心均已將loop裝置的支援編譯進去了,但是也有沒有的情況,所以請確保系統所使用的核心支援loop裝置。
第二種情況是iso檔案被放置到了NTFS或其它只讀檔案系統中了。掛載loop 裝置必須要求掛載到一個可寫的分割槽中,目前Linux核心對NTFS檔案系統的寫支援非常有限,請將iso檔案複製到其它可寫檔案系統中後再掛載。

10. 如何掛載光碟機和軟碟機
一般來說CDROM的裝置檔案是/dev/hdc,軟碟機的裝置名是/dev/fd0

# mkdir /mnt/cdrom 
# mount /dev/hdc /mnt/cdrom //掛載光碟機 //
# mkdir /mnt/floppy  
# mount /dev/fd0 /mnt/floppy   //掛載軟碟機 //

11.  為何掛載的CD-ROM不能顯示中文檔案?
使用 –o iocharset=cp936 選項一般能解決問題,否則使用utf-8編碼。

# mount –o iocharset=cp936 /dev/hdc /mnt/cdrom

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

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

olddir newdir none bind 0 0

15.  umount基本用法是?
譬如 /dev/hda5 已經掛載在/mnt/hda5上,用一下三條命令均可解除安裝掛載的檔案系統

# umount /dev/hda5
# umount /mnt/hda5
# umount /dev/hda5 /mnt/hda5

16.  為什麼umount的時候老顯示 device busy?
這是因為有程式正在訪問這個裝置,最簡單的辦法就是讓訪問該裝置的程式退出以後再umount。可能有時候使用者搞不清除究竟是什麼程式在訪問裝置,如果使用者不急著umount,則可以用:

# umount -l /mnt/hda5

來解除安裝裝置。選項 –l 並不是馬上umount,而是在該目錄空閒後再umount。還可以先用命令 ps aux 來檢視佔用裝置的程式PID,然後用命令kill來殺死佔用裝置的程式,這樣就umount的非常放心了。

您可以考慮給博主來個小小的打賞以資鼓勵,您的肯定將是我最大的動力。thx.

微信打賞

微信賬號 nzf6698

支付寶打賞

支付寶賬號 18979406698

作  者:
Angel_Kitty

出  處:http://www.cnblogs.com/ECJTUACM-873284962/

關於作者:潛心機器學習以及資訊保安的綜合研究。如有問題或建議,請多多賜教!

版權宣告:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。

特此宣告:所有評論和私信都會在第一時間回覆。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信

聲援博主:如果您覺得文章對您有幫助,可以點選右下角推薦推薦一下該博文。您的鼓勵是作者堅持原創和持續寫作的最大動力!


相關文章