新手入門:淺談Linux的文件系統

轉自:http://h50237.www5.hp.com/PartnerPortal/Forum/Messages/ShowTopic.aspx?AID=2ebbdb9f-2615-4fc1-a0c9-3027d64ba8d8

 

新手入門:淺談Linux的文件系統

如果您是一位新手,也許 您還不知道如何把文件從Windows拷貝到Linux上吧?下面,我們將說明Unix文件系統以及mount的工作過程,然後再比較詳細地討論 

mount的使用和有關選項。如果您已經瞭解Unix文件系統是如何工作的,那麼可以跳過下面一節。否則,您最好繼續接着學習"mount"的含義。 

什麼是mount? 

在一些操作系統(如Windows)中,計算機通過設備名來識別設備,例如,大多數PC機系統都包括"A:drive"(軟盤)、"C:drive"(硬盤)和­"D:drive"(一般是隻讀光盤)。 

出於各種各樣的理由,Linux系統一般不採用這種方式指示存儲設備。Linux系統採用單一的目錄樹(類似於Windows上用戶的"C:drive"目錄樹­結構),通過mount到目錄樹的分支上來查找存儲設備的內容。 

在這臺特定的計算機上,總共有4個硬盤驅動器,它們全都被文件系統管理。例如,假設我們沿用Windows系統的方法,給這4個硬盤驅動器分別命名爲C、D、E­和F,那麼它們的Linux路徑名和Windows的等價名如表1所示。 
 

磁盤號 Linux路徑 等價的Windows文件名 
1 / C:/ 
1  /var  C:/VAR 
1  /var/adm  C:/VAR/ADM 
1  /var/spool  C:/VAR/SPOOL 
1  /home  C:/HOME 
1  /home/jackon C:/HOME/JACKON 
2  /usr  D:/ 
2  /usr/lib  D:/USR/LIB 
3  /usr/X11R6  E:/ 
4 /home  F:/ 

 
 
通過維護系統中的設備列表,以及設備被mount的情況,Linux系統知道到哪裏去尋找包含在每個路徑表上的數據,而不管數據具體存放在哪個設備上。因爲數據­映射的操作是自動完成的,所以用戶不需要記住數據在哪個硬盤驅動器上。 

例如,對匿名ftp用戶,只需要記住/home/ftp是在"home"目錄上,而不需要記住所有的ftp文件都在"F:/"或第4個硬盤驅動器上,這樣 

顯然直觀多了。同樣地,記住面向用戶的庫程序全在/usr/lib上,比必須記住面向用戶的庫程序全部在第2個硬盤驅動器的"LIB"目錄上也直觀得多。 

設備標識 

爲了記住每個設備被mount到哪裏,Linux系統需要有一種惟一的方法標識各個設備。對於人來講,通過在/dev目錄上找到設備名就完成了任務。但 

是,這個目錄包含了大量的特殊文件,每個文件都指示不同類型的設備,或現有設備上的分區。例如,/dev/hda設備指示系統的第一個硬盤驅動器; 

/dev/hda1指示第一個硬盤驅動器的第1分區,而/dev/hda2是第2個硬盤驅動器的第2分區。表2展示了一些常用的設備文件和相應的設備。 

特殊文件 設備 

/dev/fdo 第1軟盤驅動器 

/dev/fdl 第2軟盤驅動器 

/dev/cdrom CD-ROM驅動器 

/dev/hda[1-16] 第1硬盤驅動器(IDE1,1)和分區1-16 

/dev/hdb[1-16] 第2硬盤驅動器(IDE2,2)和分區1-16 

/dev/sda[1-16] 第1硬盤驅動器(SCSI0)和分區1-16 

/dev/sdb[1-16] 第2硬盤驅動器(SCSI1)和分區1-16 

/dev/sdc[1-16] 第3硬盤驅動器(SCSI2)和分區1-16 

/dev/sdd[1-16] 第4硬盤驅動器(SCSI3)和分區1-16 

當然,有許多設備在表2中沒能列出。要看到在您的系統中完整的特殊設備列表,可以採用如下命令: 

#/s /dev 

不用擔心,許多設備您永遠也用不上,一般也不需要研究和記住它們。 

文件格式 

除了要記住每個設備被mount到何處,Linux系統還需要記住每個設備上存在什麼類型的文件系統。對於Windows操作系統,大多數設備存儲信息 

時,只採用目前流行的兩種格式,即FAT16或FAT32中的一種。只有CD-ROM驅動器是一個明顯的例外,它採用ISO-9660文件格式。對於 

Linux系統,大多數設備存儲信息採用Extended-2(ext2)文件系統。同樣地,最顯著的例外也是CD-ROM驅動器,它依然採用ISO- 

9660文件格式,但是Linux也能識別和mount其他的文件系統。要看看您的Linux內核支持哪些文件系統,可以輸入以下命令: 

# cat   /proc/filesystems 

讓我們假設對於一種給定的情況,上述命令的執行結果爲: 

ext2 

vfat 

noelevproc 

iso9660 

對於這個特定的系統,Linux內核支持ext2、vfat、proc和iso9660文件系統。表3給出了Linux所支持的大部分文件系統類型。 

文件系統 操作系統或類型 

ext2 LinuxExtended-2 

minix Minix文件系統 

msdos 最初的FAT文件系統(短文件名) 

vfat 其他FAT文件系統(長文件名) 

ntfs WindowsNT文件系統(長文件名) 

hpft OS/2高性能文件系統 

hfs AppleMacintosh文件系統 

nfs 網絡文件系統 

ncpfs NovellNetWare文件系統 

affs Amiga快速文件系統 

Linux還支持其他一些文件系統。爲了讓Linux支持更多的文件系統,需要或者重新編譯Linux的內核,或者下載有關的模塊。 

/etc/fstab文件幸運的是,在使用Linux維護目錄樹時,用戶不必經常直接和設備名或文件系統打交道。我們已經提到過,Linux在mount 

文件系統時,會自動進行維護,它還知道每次是從什麼地方開始mount文件系統,這主要是它利用了/etc/fstab文件。對於上面提到過的4個設備的 

目錄,從/etc/fstab文件中可以摘出有關的內容: 

/dev/sda1 / ext2 defaults 1 1 

/dev/sdc1 /usr ext2 ext2 defaults 1 2 

/dev/sdc1 /usr/X11R6 ext2 defaults 1 2 

/dev/sdc2 /home/ftp vfat defaults 1 2 

對上述給定的/etc/fstab信息,Linux每次開始mount時將按下列步驟進行: 

●mount第1個SCSI硬盤驅動器的第1個分區(/dev/sda1),把它作爲最先的(根)文件系統,這是一個Linux的ext2格式的磁盤; 

●在/usr的目錄樹上,mount第2個SCSI硬盤驅動器的第1個分區(/dev/sdb1),這是一個Linux的ext2格式的磁盤; 

●在/home/ftp的目錄樹上,Mount第3個SCSI硬盤驅動器的第2個分區(/dev/sdc2),這是一個Windows95的vfat格式的硬盤­。 

通過適當地配置/etc/fstab文件,用戶可以構造一個目錄樹,該目錄樹可以容納許多不同的設備,而且支持許多不同的操作系統文件格式。每次在Linux的­根部將自動構造這種目錄樹。


發佈了76 篇原創文章 · 獲贊 2 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章