1. 程式人生 > >【轉載】linux下的mount命令詳解;

【轉載】linux下的mount命令詳解;

文件的 flag 自動加載 網絡文件系統 解決問題 選項 lock home 多個參數

以下內容來自:http://blog.csdn.net/clozxy/article/details/5299054

http://linux.chinaunix.net/techdoc/system/2007/06/17/960372.shtml

http://tutu.spaces.eepw.com.cn/articles/article/item/70737

umount:

功能:正好與mount的功能相反,卸載設備,umount後面跟掛載點或設備名(如/dev/sda5),不可以跟LABEL和UUID;

mount

功能:

加載指定的文件系 統;mount可將指定設備中指定的文件系統加載到 Linux目錄下(也就是裝載點)。可將經常使用的設備寫入文件/etc/fastab,以使系 統在每次啟動時自動加載。mount加載設備的信息記錄在/etc/mtab文件中。使用umount命令卸載設備時,記錄將被清除。

用法:

mount [-afFhnrvVw] [-L<標簽>] [-o<選項>] [-t<文件系統類型>] [設備名] [加載點]

參數:

-a 加載文件/etc/fstab中設置的所有設備。
-f 不實際加載設備。可與-v等參數同時使用以查看mount的執行過程。 偽裝mount,作出檢查設備和目錄的樣子,但並不真正掛載文件系統。
-F 需與-a參數同時使用。所有在/etc/fstab中設置的設備會被同時加載,可加快執行速度。
-h 顯示在線幫助信息。
-L<標簽> 加載文件系統標簽為<標簽>的設備。
-n 不將加載信息記錄在/etc/mtab文件中。

-r 以只讀方式加載設備。

-v 執行時顯示詳細的信息。
-V 顯示版本信息。

-o<選項> 指定加載文件系統時的選項。有些選項也可在/etc/fstab中使用。多個-o的參數時,-o只寫一次,多個參數之間用半角逗號隔開:這些選項包括:

async 以非同步的方式執行文件系統的輸入輸出動作。
atime 每次存取都更新inode的存取時間,默認設置,取消選項為noatime。
auto 必須在/etc/fstab文件中指定此選項。執行-a參數時,會加載設置為auto的設備,取消選取為noauto。

noauto 無法使用-a參數來加載.

defaults 使用默認的選項。默認選項為rw、suid、dev、exec、anto nouser與async。
dev 可讀文件系統上的字符或塊設備,取消選項為nodev。

nodev 不讀文件系統上的字符或塊設備。

exec 可執行二進制文件,取消選項為noexec。
noatime 每次存取時不更新inode的存取時間。

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 可以讓一般用戶加載設備。

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 把一個文件當作硬盤分區來掛載;

上面內容有點重復,不過沒事,看看更好明白啊;


-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 自動檢測文件系統。

例子:來自(http://tutu.spaces.eepw.com.cn/articles/article/item/70737)

光盤鏡像文件的掛接(mount)

#mkdir /mnt/vcdrom
註:建立一個目錄用來作掛接點(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
註:使用/mnt/vcdrom就可以訪問盤鏡像文件mydisk.iso裏的所有文件了。

掛接移動硬盤
對linux系統而言,USB接口的移動硬盤是當作SCSI設備對待的。插入移動硬盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter /]# fdisk -l
接好移動硬盤後,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況.應該可以發現多了一個SCSI硬盤/dev/sdc和它的兩個磁盤分區/dev /sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分區的邏輯分區。我們可以使用下面的命令掛接/dev/sdc1和 /dev/sdc5。
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
註:建立目錄用來作掛接點(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
註:對ntfs格式的磁盤分區應使用-t ntfs 參數,對fat32格式的磁盤分區應使用-t vfat參數。若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令格式。
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linux系統下使用fdisk分區命令和mkfs文件系統創建命令可以將移動硬盤的分區制作成linux系統所特有的ext2、ext3格式。這樣,在linux下使用就更方便了。使用下面的命令直接掛接即可。
#mount /dev/sdc1 /mnt/usbhd1

掛接U盤
和USB接口的移動硬盤一樣對linux系統而言U盤也是當作SCSI設備對待的。使用方法和移動硬盤完全一樣。插入U盤之前,應先用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter root]# fdisk -l
插入U盤後,再用fdisk –l 或 more /proc/partitions查看系統的硬盤和硬盤分區情況。
[root at pldyrouter root]# fdisk -l
系統多了一個SCSI硬盤/dev/sdd和一個磁盤分區/dev/sdd1,/dev/sdd1就是我們要掛接的U盤。
#mkdir -p /mnt/usb
註:建立一個目錄用來作掛接點(mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
註:現在可以通過/mnt/usb來訪問U盤了, 若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令。
#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

掛接Windows文件共享
Windows網絡共享的核心是SMB/CIFS,在linux下要掛接(mount)windows的磁盤共享,就必須安裝和使用samba 軟件包。現在流行的linux發行版絕大多數已經包含了samba軟件包,如果安裝linux系統時未安裝samba請首先安裝samba。當然也可以到 www.samba.org網站下載......新的版本是3.0.10版。
當windows系統共享設置好以後,就可以在linux客戶端掛接(mount)了,具體操作如下:
# mkdir –p /mnt/samba
註:建立一個目錄用來作掛接點(mount point)
# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
註:administrator 和 pldy123 是ip地址為10.140.133.23 windows計算機的一個用戶名和密碼,c$是這臺計算機的一個磁盤共享
如此就可以在linux系統上通過/mnt/samba來訪問windows系統磁盤上的文件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003環境下測試通過。

掛接UNIX系統NFS文件共享
類似於windows的網絡共享,UNIX(Linux)系統也有自己的網絡共享,那就是NFS(網絡文件系統),下面我們就以SUN Solaris2.8和REDHAT as server 3 為例簡單介紹一下在linux下如何mount nfs網絡共享。
在linux客戶端掛接(mount)NFS磁盤共享之前,必須先配置好NFS服務端。
1、Solaris系統NFS服務端配置方法如下:
(1)修改 /etc/dfs/dfstab, 增加共享目錄
share -F nfs -o rw /export/home/sunky
(2)啟動nfs服務
# /etc/init.d/nfs.server start
(3)NFS服務啟動以後,也可以使用下面的命令增加新的共享
# share /export/home/sunky1
# share /export/home/sunky2
註:/export/home/sunky和/export/home/sunky1是準備共享的目錄
2、linux系統NFS服務端配置方法如下:
(1)修改 /etc/exports,增加共享目錄
/export/home/sunky 10.140.133.23(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
註:/export/home/目錄下的sunky、sunky1、sunky2是準備共享的目錄,10.140.133.23、*、 linux-client是被允許掛接此共享linux客戶機的IP地址或主機名。如果要使用主機名linux-client必須在服務端主機 /etc/hosts文件裏增加linux-client主機ip定義。格式如下:
10.140.133.23 linux-client
(2)啟動與停止NFS服務
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默認啟動的)
/etc/rc.d/init.d/nfs start 啟動NFS服務
/etc/rc.d/init.d/nfs stop 停止NFS服務
註:若修改/etc/export文件增加新的共享,應先停止NFS服務,再啟動NFS服務方能使新增加的共享起作用。使用命令exportfs -rv也可以達到同樣的效果。
3、linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享
# mkdir –p /mnt/nfs
註:建立一個目錄用來作掛接點(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
註:這裏我們假設10.140.133.9是NFS服務端的主機IP地址,當然這裏也可以使用主機名,但必須在本機/etc/hosts文件裏增加服務端ip定義。/export/home/sunky為服務端共享的目錄。
如此就可以在linux客戶端通過/mnt/nfs來訪問其它linux系統或UNIX系統以NFS方式共享出來的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc環境下測試通過

常見問題:

3. 為什麽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
4. 為什麽mount上去以後分區普通用戶不可寫?
mount時加上 –o umask=000 即可:
CODE:
# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5
5. 為什麽mount上去後的分區中的文件都變成短文件名了?
這是文件系統掛錯的原因,將FAT32掛載成FAT16時就會出現這種情況,先umount,然後用 –t vfat 重新掛載即可解決問題。
CODE:
# mount –t vat /dev/hda5 /mnt/hda5
6. 為什麽不能mount ntfs分區?
這是內核不支持NTFS文件系統的原因,請重新編譯內核或者安裝內核的NTFS文件系統支持包,以使得內核有NTFS文件系統的支持。
7. 如何掛載U盤和mp3?
如果計算機沒有其它SCSI設備和usb外設的情況下,插入的U盤的設備路徑是 /dev/sda1,用命令:
CODE:
# mkdir /mnt/u
# mount /dev/sda1 /mnt/u
掛載即可。
8. 可以直接使用iso文件嗎?
可以,就是mount的這一選項使得Linux下有免費虛擬光驅的說法,具體用法是:
CODE:
# 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
CODE:
# mkdir /mnt/cdrom
# mount /dev/hdc /mnt/cdrom //掛載光驅 //
# mkdir /mnt/floppy
# mount /dev/fd0 /mnt/floppy //掛載軟驅 //
11. 為何掛載的CD-ROM不能顯示中文文件?
使用 –o iocharset=cp936 選項一般能解決問題,否則使用utf-8編碼。
CODE:
# mount –o iocharset=cp936 /dev/hdc /mnt/cdrom
12. 如何開機自動掛載分區?
每次掛載都要輸入那麽長的命令的確是繁瑣了些,只要將分區信息寫到/etc/fstab文件中即可實現系統啟動的自動掛載,例如對於/dev/hda5的自動掛載添加如下的行即可:
CODE:
/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0
13. 如何掛載samba 分區?
CODE:
# 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 是將一個目錄中的內容掛載到另一個目錄上,用法是
CODE:
# mount --bind olddir newdir
這個命令使得自己搭建的FTP要共享某個目錄的時候變得特別方便。如果要取消mount用命令:
CODE:
# mount --move olddir newdir 即可。
如果mount --bind 也想寫入fstab中的話格式如下:
CODE:
olddir newdir none bind 0 0
15. umount基本用法是?
譬如 /dev/hda5 已經掛載在/mnt/hda5上,用一下三條命令均可卸載掛載的文件系統
CODE:
# umount /dev/hda5
# umount /mnt/hda5
# umount /dev/hda5 /mnt/hda5
16. 為什麽umount的時候老顯示 device busy?
這是因為有程序正在訪問這個設備,最簡單的辦法就是讓訪問該設備的程序退出以後再umount。可能有時候用戶搞不清除究竟是什麽程序在訪問設備,如果用戶不急著umount,則可以用:
CODE:
# umount -l /mnt/hda5
來卸載設備。選項 –l 並不是馬上umount,而是在該目錄空閑後再umount。還可以先用命令 ps aux 來查看占用設備的程序PID,然後用命令kill來殺死占用設備的進程,這樣就umount的非常放心了。

方法一:
fuser -m -v /nfs_old/
用戶 進程號 權限 命令
/nfs_old/: root 2699 ..c.. bash
root 2999 ..c.. su
如上所示,有兩個進程占用了,將其kill掉,再重新取消掛載。
kill -9 2699 2999
umount /nfs_old/
方法二:
umount -l /nfs_old/
方法三:
fuser -km /nfs_old/

完畢;

【轉載】linux下的mount命令詳解;