在Linux下有時候需要掛載光盤,拷貝文件或安裝系統,例如拷貝Redhat操作系統鏡像文件等。下面介紹一下在Linux系統下掛載、卸載光盤的方法。
在Linux系統中,每一個物理設備都可以看做是一個文件,而像硬盤、光盤等物理設備文件都在/dev目錄下(部分信息截圖)
其中光驅設備文件一般是cdrom 或dvd, 在執行光驅掛載命令前,我們需要創建一個目錄用來做掛載點,關於目錄的位置一般隨個人習慣而定,我一般習慣將該目錄創建在/mnt/hgfs下
掛載光驅
[root@getlnx05 ~]# cd /mnt/hgfs/
[root@getlnx05 hgfs]# ls
[root@getlnx05 hgfs]# mkdir cdrom
[root@getlnx05 hgfs]#
關於mount命令的參數和格式,你可以通過man mount 來查看文檔內容.
mount [-t vfstype] [-o options] device dir
其中:
1.-t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有:
關於一些常用的文件:
iso9660 光盤或光盤鏡像。
msdos DOS fat16文件系統
vfat Windows 9x fat32文件系統。
ntfs Windows NT ntfs文件系統
smbfs Mount Windows文件網絡共享。
nfs UNIX(Linux) 文件網絡共享。
..............................
2.-o options 主要用來描述設備或檔案的掛接方式。
3.device 要掛接(mount)的設備。通常指/dev/cdrom
4.dir設備在系統上的掛接點(mount point)。
[root@getlnx05 opt]# mount -t iso9660 /dev/cdrom /mnt/hgfs/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@getlnx05 cdrom]# ls
Cluster README-te.html RELEASE-NOTES-U7-en
ClusterStorage README-zh_CN.html RELEASE-NOTES-U7-en.html
EULA README-zh_TW.html RELEASE-NOTES-U7-es.html
eula.en_US RELEASE-NOTES-as.html RELEASE-NOTES-U7-fr.html
GPL RELEASE-NOTES-bn.html RELEASE-NOTES-U7-gu.html
images RELEASE-NOTES-de.html RELEASE-NOTES-U7-hi.html
isolinux RELEASE-NOTES-en RELEASE-NOTES-U7-it.html
README-as.html RELEASE-NOTES-en.html RELEASE-NOTES-U7-ja.html
README-bn.html RELEASE-NOTES-es.html RELEASE-NOTES-U7-kn.html
README-de.html RELEASE-NOTES-fr.html RELEASE-NOTES-U7-ko.html
README-en RELEASE-NOTES-gu.html RELEASE-NOTES-U7-ml.html
README-en.html RELEASE-NOTES-hi.html RELEASE-NOTES-U7-mr.html
README-es.html RELEASE-NOTES-it.html RELEASE-NOTES-U7-or.html
README-fr.html RELEASE-NOTES-ja.html RELEASE-NOTES-U7-pa.html
README-gu.html RELEASE-NOTES-kn.html RELEASE-NOTES-U7-pt_BR.html
README-hi.html RELEASE-NOTES-ko.html RELEASE-NOTES-U7-ru.html
README-it.html RELEASE-NOTES-ml.html RELEASE-NOTES-U7-si.html
README-ja.html RELEASE-NOTES-mr.html RELEASE-NOTES-U7-ta.html
README-kn.html RELEASE-NOTES-or.html RELEASE-NOTES-U7-te.html
README-ko.html RELEASE-NOTES-pa.html RELEASE-NOTES-U7-zh_CN.html
README-ml.html RELEASE-NOTES-pt_BR.html RELEASE-NOTES-U7-zh_TW.html
README-mr.html RELEASE-NOTES-ru.html RELEASE-NOTES-zh_CN.html
README-or.html RELEASE-NOTES-si.html RELEASE-NOTES-zh_TW.html
README-pa.html RELEASE-NOTES-ta.html RPM-GPG-KEY-redhat-beta
README-pt_BR.html RELEASE-NOTES-te.html RPM-GPG-KEY-redhat-release
README-ru.html RELEASE-NOTES-U7-as.html Server
README-si.html RELEASE-NOTES-U7-bn.html TRANS.TBL
README-ta.html RELEASE-NOTES-U7-de.html VT
卸載光驅
卸載光驅的命令一般用umount,語法格式如下
/sbin/umount.<suffix> {dir|device} [-nlfvr]
出現這種錯誤:“xxx device is busy” 狀態的時候,不能卸載該文件系統。如下情況將導致文件系統處於“busy”狀態:
1) 文件系統上面有打開的文件
2) 某個進程的工作目錄在此文件系統上
3) 文件系統上面的緩存文件正在被使用
1:此時可以使用 umount -l /mnt/hda5來卸載設備。選項 –l 並不是馬上umount,而是在該目錄空閑后再umount。
2:還可以先用命令 ps aux 來查看占用設備的程序PID,然后用命令kill來殺死占用設備的進程,這樣就umount的非常放心了。
下面摘抄自http://cicikasa.blog.163.com/blog/static/13757535520102174379862/, 這里面的關於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 掛載回旋設備
需要注意的是,掛載點必須是一個已經存在的目錄,這個目錄可以不為空,但掛載后這個目錄下以前的內容將不可用,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 即可。
如果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的非常放心了。