掛載(mounting)是指由操作系統(tǒng)使一個(gè)存儲(chǔ)設(shè)備(諸如HDD、CD-ROM或共享資源)上的計(jì)算機(jī)文件和目錄可供用戶通過(guò)計(jì)算機(jī)的文件系統(tǒng)訪問(wèn)的一個(gè)過(guò)程。
一般來(lái)說(shuō),當(dāng)計(jì)算機(jī)關(guān)機(jī)時(shí),每個(gè)已掛載存儲(chǔ)都將經(jīng)歷一次卸載,以確保所有排隊(duì)的數(shù)據(jù)被寫(xiě)入,并保證介質(zhì)上文件系統(tǒng)結(jié)構(gòu)的完整性。
掛載概念
在windows操作系統(tǒng)中,
掛載通常是指給磁盤(pán)分區(qū)(包括被虛擬出來(lái)的磁盤(pán)分區(qū))分配一個(gè)盤(pán)符。
這個(gè)操作可以通過(guò)“計(jì)算機(jī)管理”中的“磁盤(pán)管理”來(lái)進(jìn)行。
第三方軟件,如磁盤(pán)分區(qū)管理軟件、虛擬磁盤(pán)軟件等,通常也附帶掛載功能。
在linux操作系統(tǒng)中,
掛載是一個(gè)非常重要的功能,使用非常頻繁。
它指將一個(gè)設(shè)備(通常是存儲(chǔ)設(shè)備)掛接到一個(gè)已存在的目錄上。
(這個(gè)目錄可以不為空,但掛載后這個(gè)目錄下以前的內(nèi)容將不可用。)
需要理解的是,
linux操作系統(tǒng)將所有的設(shè)備都看作文件,
它將整個(gè)計(jì)算機(jī)的資源都整合成一個(gè)大的文件目錄。
我們要訪問(wèn)存儲(chǔ)設(shè)備中的文件,必須將文件所在的分區(qū)掛載到一個(gè)已存在的目錄上,
然后通過(guò)訪問(wèn)這個(gè)目錄來(lái)訪問(wèn)存儲(chǔ)設(shè)備。
掛載條件
1、掛載點(diǎn)必須是一個(gè)目錄。
2、一個(gè)分區(qū)掛載在一個(gè)已存在的目錄上,這個(gè)目錄可以不為空,但掛載后這個(gè)目錄下以前的內(nèi)容將不可用。對(duì)于其他操作系統(tǒng)建立的文件系統(tǒng)的掛載也是這樣。
系統(tǒng)格式
需要理解的是:光盤(pán)、軟盤(pán)、其他操作系統(tǒng)使用的文件系統(tǒng)的格式與Linux使用的文件系統(tǒng)格式是不一樣的。光盤(pán)是ISO9660;軟盤(pán)是fat16;
windowsNT是fat16、NTFS;
Windows 98是fat16、fat32;
Windows 2000和Windows XP是fat16、fat32、NTFS。
掛載前要了解linux是否支持所要掛載的文件系統(tǒng)格式。
掛載命令
掛載時(shí)使用mount命令:
格式:mount[-參數(shù)][設(shè)備名稱][掛載點(diǎn)]
其中常用的參數(shù)有:
-t<文件系統(tǒng)類(lèi)型>指定設(shè)備的文件系統(tǒng)類(lèi)型,
常見(jiàn)的有:minixlinux最早使用的文件系統(tǒng)
ext2linux目前常用的文件系統(tǒng)
msdosMS-DOS的fat,就是fat16
vfatWindows 98常用的fat32
nfs網(wǎng)絡(luò)文件系統(tǒng)
iso9660CD-ROM光盤(pán)標(biāo)準(zhǔn)文件系統(tǒng)
ntfswindowsNT2000的文件系統(tǒng)
hpfsOS/2文件系統(tǒng)
auto自動(dòng)檢測(cè)文件系統(tǒng)
-o<選項(xiàng)>指定掛載文件系統(tǒng)時(shí)的選項(xiàng)。有些也可用在/etc/fstab中。
常用的有codepage=XXX代碼頁(yè)iocharset=XXX字符集ro以只讀方式掛載
rw以讀寫(xiě)方式掛載nouser使一般用戶無(wú)法掛載user可以讓一般用戶掛載設(shè)備
示例
提醒一下,你要把文件系統(tǒng)掛載到哪,首先要先建上個(gè)目錄。
例子:Windows 98裝在hda1分區(qū),同時(shí)計(jì)算機(jī)上還有軟盤(pán)和光盤(pán)需要掛載。
#mk/mnt/winc
#mk/mnt/floppy
#mk/mnt/cdrom
#mount-tvfat/dev/hda1/mnt/winc
#mount-tmsdos/dev/fd0/mnt/floppy
#mount-tiso9660/dev/cdrom/mnt/cdrom
現(xiàn)在就可以進(jìn)入/mnt/winc等目錄讀寫(xiě)這些文件系統(tǒng)了。
要保證最后兩行的命令不出錯(cuò),要確保軟驅(qū)和光驅(qū)里有盤(pán)。
分區(qū)標(biāo)識(shí)
介紹Linux下分區(qū)是如何標(biāo)識(shí)的,
通常是hdyN(IDE磁盤(pán))或sdyN(SCSI磁盤(pán))。
y這個(gè)字母標(biāo)明分區(qū)所在的設(shè)備。
例如,/dev/hda(第一個(gè)IDE磁盤(pán))或/dev/sdb(第二個(gè)SCSI磁盤(pán))
N這個(gè)數(shù)字代表分區(qū)的編號(hào)。
前四個(gè)分區(qū)(主分區(qū)或擴(kuò)展分區(qū))是用數(shù)字從1排列到4。邏輯分區(qū)從5開(kāi)始。
例如,/dev/hda3是在第一個(gè)IDEHDD上的第三個(gè)主分區(qū)或擴(kuò)展分區(qū);/dev/sdb6是在第二個(gè)scsi硬盤(pán)上的第二個(gè)邏輯分區(qū)。
中文支持
如果你的Windows 98目錄里有中文文件名,使用上面的命令掛載后,顯示的是一堆亂碼。
這就要用到-o參數(shù)里的codepageiocharset選項(xiàng)。
codepage指定文件系統(tǒng)的代碼頁(yè),簡(jiǎn)體中文中文代碼是936;
iocharset指定字符集,簡(jiǎn)體中文一般用cp936或gb2312。
當(dāng)掛載的文件系統(tǒng)Linux不支持時(shí),mount一定報(bào)錯(cuò),如Windows 2000的ntfs文件系統(tǒng)。
可以重新編譯linux內(nèi)核以獲得對(duì)該文件系統(tǒng)的支持或者下個(gè)支持ntfs的補(bǔ)丁。
自動(dòng)掛載
每次開(kāi)機(jī)訪問(wèn)windows分區(qū)都要運(yùn)行mount命令顯然太煩瑣,
我們可以設(shè)定讓linux在啟動(dòng)的時(shí)候也掛載我們希望掛載的分區(qū),如windows分區(qū),
以實(shí)現(xiàn)文件系統(tǒng)的自動(dòng)掛載。
在/etc目錄下有個(gè)fstab文件,它里面列出了Linux開(kāi)機(jī)時(shí)自動(dòng)掛載的文件系統(tǒng)的列表。
我的/etc/fstab文件如下:
LABEL=//ext3defaultS11
LABEL=/boot/bootext3defaults12none
/dev/ptsdevptsgid=5,調(diào)式=62000小行星55565
/procprocdefaults00none
/dev/shmtmpfsdefaults00
/dev/hda8swapswapdefaults00
/dev/cdrom/mnt/cdromudf,iso9660noauto,owner,kudzu,ro00
/dev/fd0/mnt/floppyautonoauto,owner,kudzu00
/dev/cdrom1/mnt/cdrom1udf,iso9660noauto,owner,kudzu,ro00
/dev/hdb1/mnt/wincntfsdefaults,codepage=936,iocharset=cp93600
/dev/hda5/mnt/windvfatdefaults,codepage=936,iocharset=cp93600
/dev/hda6/mnt/winfvfatdefaults,codepage=936,iocharset=cp93600
在/etc/fstab文件里,
第一列是掛載的文件系統(tǒng)的設(shè)備名,
第二列是掛載點(diǎn),
第三列是掛載的文件系統(tǒng)類(lèi)型,
第四列是掛載的選項(xiàng),
選項(xiàng)間用逗號(hào)分隔。
在最后三行是我手工添加的windows下的C、D、F盤(pán),
加了codepage=936和iocharset=cp936參數(shù)以支持中文文件名。
參數(shù)defaults實(shí)際上包含了一組默認(rèn)參數(shù):
rw以可讀寫(xiě)模式掛載suid開(kāi)啟用戶ID和群組ID設(shè)置位dev可解讀文件系統(tǒng)上的字符或區(qū)塊設(shè)備
exec可執(zhí)行二進(jìn)制文件auto自動(dòng)掛載nouser使一般用戶無(wú)法掛載
async以非同步方式執(zhí)行文件系統(tǒng)的輸入輸出操作
大家可以看到在這個(gè)列表里,光驅(qū)和軟驅(qū)是不自動(dòng)掛載的,參數(shù)設(shè)置為noauto。
掛載ISO
掛載ISO格式的命令:
mount-loop-oiocharset=cp936xxxxx.iso/mnt/iso
參考資料 >