學習操作系統時我們都了解到文件系統是操作系統的重要組成部分之一。文件系統有很多種類型,比Windows的fat、fat32;Linux的ext、ext2或ext3;FreeBSD的ufs等等。在使用Linux的過程,也常常Linux操作系統使用虛擬文件系統VFS,通過VFS可以直接存取其它已被內核支持的各種文件系統,用起來就像是在普通的 Linux的ext系列文件系統一樣。早期的Linux內置支持的文件系統不多,自 kernel 2.0.x 起並支持到 VFAT ,以後逐 漸增加,到目前可以說 決大多數的文件系統都有了支持。只是有一些如NTFS需要重新編譯內核才能支持。
Linux在啟動過程中,會按照/etc/fstab中的設置,把各個分區上的文件系統加掛到對應到加載點上去。Linux至少需要兩個分區才能啟動:一個是根分區/,另一個是交換分區,如果在啟動時根分區加載失敗,Linux就不能完成啟動。如果交換分區加載失敗,Linux就不能仍能啟動,在內存不夠的情況下速度就會受很大的影響。根分區的文件系統類型通常是ext、ext2或ext3,但也可以是其它的一些文件系統。
除了加載了Linux所必需的文件系統外,Linux的用戶還經常需要使用其它的各種文件系統,特別是在一台機器上同時安裝多個操作系統的時候。比如筆者的機器上同時安裝了Linux和Windows2000,其中Windows的C盤采用了NTFS文件系統、D盤采用了FAT32文件系統。而當我在Linux上工作的時候,常常需要訪問Windows的C盤和D盤的內容,甚至是網絡上的共享目錄,Linux下加掛一個文件系統使用的是mount命令,用man mount命令可以得到命令參數的詳細解釋。下面就來介紹一下在幾種情況下以命令行方式加掛文件系統的具體方法:
1.加掛FAT32文件系統
最簡單的用法:
mount /dev/hda6 /mnt/d
/dev/hda6是筆者Windows的D盤,/mnt/d是目錄加掛點。Linux會識別到/dev/hda6分區的文件系統類型是什麼,然後加掛的。當然也可以指定分區的文件系統類型,命令如下:
mount -t vfat /dev/hda6 /mnt/d
在實際中操作中,直接加掛一個Windows的分區,中文的文件名和目錄名會出現亂碼,為了避免這種情況可以指定字符集,命令如下:
mount /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936 mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
注意:cp936是指簡體中文,cp950是指繁體中文。
2.加掛NTFS文件系統
在目前多數的Linux版本上,需要重編譯Linux核心才能,加掛NTFS分區(編譯方法請參閱其它文章)。核心支持NTFS後,可以用以下命令加掛:
mount -t ntfs /dev/hda2 /mnt/c
同樣對於中文的文件名和目錄名會出現亂碼的問題可以指定字符集,不過和加掛vfat分區不同,實際中用以下命令是可行的:
mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c