學習作業系統時我們都了解到檔案系統是作業系統的重要組成部分之一。檔案系統有很多種型別,比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檔案系統
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
3.加掛u盤上的檔案系統
現在使用u盤的人越來越多了,其實在linux下使用u盤也非常簡單,linux對usb裝置有很好的支援,在你插入u盤後,u盤被識別為乙個scsi盤,通常您用以下命令就能加掛u盤上的檔案系統
mount /dev/sda1 /usb
同樣對於中文的檔名和目錄名會出現亂碼的問題可以指定字符集,命令類似於上面對fat32介紹的:
mount /dev/sda1 /usb -o pagecode=936,iocharset=cp936
4.加掛linux系統通過samba共享出來的目錄
利用samba共享出來的目錄其實很難說其原來是哪種檔案系統,不過這一點不重要,只要它對使用者是透明的就好啦。加掛時,我們指定型別為**bfs,在加掛samba共享的分割槽時,也會出現中文的檔名和目錄名亂碼情況,可以用以下命令加掛:
mount -t **bfs -o
username=terry,password=terry,codepage=936,iocharset=cp936
//terry-linux/terry /***/
mount -t **bfs -o
username=terry,password=terry,codepage=936,iocharset=cp936
//192.168.100.228/terry /***/
注意:你可以不直接寫password=terry這個引數,系統界時會要你輸入密碼,這樣就可以防止有人直接看到你的密碼。視具體情況而定,-o後面的引數可以對應增減。
5.加掛window系統共享出來的目錄
在區域網中,常常需要去訪問其它windows系統共享出來的目錄,在linux下,安裝了samba後就可以使用samba中帶的命令來訪問windows機器的共享資源。
用**bclient來列出windows機器的共享資源
**bclient -l 192.168.100.111
根據上面所列出windows的共享資源後,可以選擇需要加掛到本地linux中去的windows的共享資源,然後使用**bmount或mount來加掛,請參照下面幾條命令:
**bmount //192.168.100.111/public /public/
mount //192.168.100.111/d /mnt/cdrom -o username=terry (這樣要在命令列輸入密碼的)
mount //192.168.100.111/d /mnt/cdrom -o username=terry$1234 (這樣則不必在命令列輸入密碼)
注:除了上面介紹的命令列方法之外,這時最好的方法就是使用其它的客戶端,如linneighborhood、networkneighbours、k**bshare等,請參考其它文章。
以上介紹的都是命令列的方式,每次使用時都要輸入一次,如果你常常要加掛一些檔案系統,想在啟動時自動加掛應該怎樣做呢?下面介紹兩種方法:
方法1.
把加掛的命令放在/etc/rc.d/rc.local中。
方法2.
修改分割槽配置檔案/etc/fstab,在啟動時加掛檔案系統,下面是我的/etc/fstab檔案:
label=/ / ext3 defaults
1 1none /dev/pts devpts gid=5,mode=620
0 0label=/home /home ext3 defaults
1 2none /proc proc defaults
0 0none /dev/shm tmpfs defaults
0 0/dev/hda4 swap swap defaults
0 0/dev/cdrom /mnt/cdrom iso9660
noauto,owner,kudzu,ro 0 0
/dev/hda2 /ntfs ntfs defaults,iocharset=cp936 0 0
/dev/hda6 /win vfat defaults,codepage=936,iocharset= cp936 0 0
//192.168.100.228/terry /*** **bfs username=terry,password=terry,codepage=cp936,iocharset=cp936 0 0
請注意最後三行:
倒數第四行,加掛我的c盤,ntfs格式的
倒數第三行,加掛我的d盤,fat32格式的
倒數第二行,加掛的是我的區域網中另一台安裝samba的linux檔案伺服器上的乙個目錄。
本文總結了一下在linux上不同情況下幾種常見加掛檔案系統的方法,包括如何加掛fat/ntfs/**bfs/u盤,以及解決加掛中關於中文顯示/使用者密碼等的問題。
Linux檔案系統小結
在 windows 下有 fat ntfs 和 exfat 這樣的檔案系統,在 linux 下又有哪些檔案系統呢,linux 下的檔案系統主要有ext2 ext3 ext4 等檔案系統。linux 還支援其他的 unix 檔案系統,比如 xfs jfs ufs 等,也支援 windows 的 fat...
當前Linux檔案系統架構下的檔案系統新需求
這裡討論一下在不改變當前linux檔案系統架構下,對linux檔案系統的新需求。第一需求,緩解檔案系統修復極度緩慢的問題。通過標記部分元資料為unused或者clean有助於減少修復檔案系統時需要檢查的資料總量。fsck的多種實現已經高度優化,但是仍然可能有更多的提公升空間。簡單來說,對檔案系統修復...
linux下的 Proc 檔案系統
proc檔案系統是一種在使用者態檢查核心狀態的機制。在proc下一般有如下子目錄和檔案 apm 高階電源管理資訊 bus 匯流排以及匯流排上的裝置 devices 可用的裝置資訊 driver 已經啟用的驅動程式 interrupts 中斷資訊 ioports 埠使用資訊 version 核心版本 ...