文件系統

今天開始進入Linux文件系統的學習,在文件系統的學習當中,需要注意以下幾點:1.Linux與window文件系統的差別。2.Linux文件系統的基本概念。3.Linux文件系統磁盤管理的常用指令和功能。4.管理Linux的文件系統(磁盤)。根據以上四點來介紹本文。

1.Linux和windows文件系統

Linux和window系統的文件系統完全不同,首先看看window的文件系統的發展:最初window的文件系統爲FAT,是DOS時代的主流,現在只有在存儲卡和U盤上還能看得到。 FAT32是FAT16的升級,從98開始應用,分區有32G的限制,單文件大小不能超過4G(這種文件系統的U盤不能考超過4G大小的文件)。NTFS全面超越FAT32的性能,是現在的主流文件系統(win7的文件系統)。支持的分區大小可以達到2TB。支持文件夾壓縮。支持動態磁盤功能。,文件可以誇磁盤存儲。window無論是那個一個文件系統,使用久了都會產生磁盤碎片,以最新的NTFS文件系統爲例:當一個文件系統存入磁盤時,系統會把它存放在靠近磁盤開始的地方並留有一定的“緩衝區”以處理文件擴大的情況,第二個文件會緊接着第一個文件放着。由於“緩衝區”有一定的限制,當文件擴大後,就會沒有留給文件足夠的增長空間,經過一段時間則會產生磁盤碎片。微軟的DOS和windows文件系統文件結構採用樹型結構,在DOS和 windows中這樣的樹型結構的根是磁盤分區的盤符(如C:),有幾個分區就有幾個樹型結構,他們之間的關係是並列的。可以使用cd命令來切換目錄,有趣的是:在命令行下目錄結構Windows是“\”,而Linux是“/”.

而在Linux中,文件系統有ext2,ext3(在ext2基礎上有日誌功能來記錄錯誤、歷史等),ext4等,他的文件存放原理和windows不同,他是將整個文件分散到整個磁盤上,每個文件之間都留有相當巨大的空閒空間,當文件被修改、體積增大、文件系統會嘗試轉移整個文件夾來消除碎片,所以Linux下沒有磁盤碎片的整理。但是當磁盤快要裝滿時,你會發現開始(>80%)有很多磁盤碎片,不管怎樣,正常使用情況下是不用擔心的。Linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構,每個文件系統必須掛在才能使用,根目錄是掛在的頂層。如幾個重要的目錄:/etc 系統管理和配置文件、/home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示。

2.文件系統的基本概念

明白磁盤-磁柱-磁道-扇區的物理結構,以及Linux對磁道的劃分。此處略。硬盤的分區,在Linux中,要掌握磁盤分區,重點在MBR(主引導記錄),擴展分區,邏輯分區。MBR(主引導記錄):它主要存放硬盤的信息,他是整個硬盤最重要的區域,一旦MBR物理實體損壞,整個硬盤差不多就報廢了。般來說,MBR有512個字節,且可以分爲兩個部分。
(1)第一部分有446個字節,用於存放引導代碼,即bootloader。
(2)第二部分有64個字節,用於存放磁盤分區表.其中,每個分區的信息需要用16個字節來記錄。因此,一個硬盤最多可以有4個分區(至少有一個主分區),這4個分區稱之爲主分區和擴展分區(extended)。
注:通常所說的"硬盤分區"就是指修改磁盤分區表,它定義了"第n個磁盤塊是從第x個柱面到第y個柱面".因此,當系統要讀取第n個磁盤塊時,就是去讀硬盤上第x個柱面到第y個柱面的信息。
由於擴展分區只能有一個(<=1),所以這4個分區可以是4個主分區或者3個主分區加1個擴展分區,如下所示:
P + P + P + P
P + P + P + E
重點說明的是,擴展分區不能直接使用,還需要將其劃分爲邏輯分區(因爲擴展分區裏面實際存儲的是擴展分區的一些信息表,類似鏈接文件中的軟連接)才行,這樣就產生了一個問題,既然擴展分區不能直接使用,但爲什麼還要劃分出一定的空間來給擴展分區呢?這是因爲,如果用戶想要將硬盤劃分爲5個分區的話,那該如何?此時,就需要擴展分區來幫忙了。
由於MBR僅能保存4個分區的數據信息,如果超過4個,系統允許在額外的硬盤空間存放另一份磁盤分區信息,這就是擴展分區.若將硬盤分成3P+E,則E實際上是告訴系統,磁盤分區表在另外的那份分區表,即擴展分區其實是指向正確的額外分區表.本身擴展分區不能直接使用,還需要額外將擴展分區分成邏輯分區才能使用,因此,用戶通過擴展分區就可以使用5個以上的分區了。
Attention!!!
(1)實際上,不建議用戶將硬盤分爲4個主分區,這是因爲,假如一個20GB的硬盤,若4個主分區佔據了15GB的空間,則剩下的5GB空間完全不能使用,因爲已經沒有多餘的分區表可以記錄這些空間了。
(2)考慮到磁盤的連續性,一般建議將擴展分區放在最後面的柱面內。

在Windows操作系統中,是先將物理地址分開,再在分區上建立目錄.在Windows操作系統中,所有路徑都是從盤符開始,如C://program file。Linux正好相反,是先有目錄,再將物理地址映射到目錄中。在Linux操作系統中,所有路徑都是從根目錄開始。Linux默認可分爲3個分區,分別是boot分區、swap分區和根分區,其實根目錄下的多數文件都是一個分區,比如/home分區,等。

3.Linux文件系統(磁盤管理)的基本命令

磁盤管理涉及到,1.格式化(root權限下的fdisk),2.磁盤分區,3.分區的掛載(mount),4,卸載(umount).在這些過程中,會涉及到磁盤空間的查看,分區的查看等。主要命令如下:

1 df -h 用於報告文件系統的總容量,使用量,剩餘容量。
2 du -b /home 查看目前/HOME目錄的容量(k)及子目錄的容量(k)。
3 fdisk -l 查看系統分區信息
4 fdisk /dev/sda 爲一塊新的SCSI硬盤進行分區
5 mkfs.ext3 /dev/sda1爲第一塊SCSI硬盤的第一主分區格式化成ext3的文件系統
# mkfs.ext2 /dev/sda2 格式化成ext2文件系統
6 mount -t 文件系統類型 設備路經 訪問路經
# 文件系統類型 ISO9660 光驅文件系統 vfat Fat文件系統(windows) 掛載光驅
# mount –t iso9660 /dev/cdrom /mnt/cdrom 掛載FAT
# mount –t vfat /dev/hda5 /mnt/cdrom 掛第一個ide的第五個邏輯分區
7 umount /mnt/cdrom 卸載/mnt/cdrom爲空

4.管理文件系統

主要是利用3.中的一些命令在實現自己的磁盤劃分,由於是新手,這裏不敢輕易嘗試,以免破壞磁盤,待以後有必要的時候在嘗試。這裏補充以下,默認情況下,Linux系統能識別window的ntfs系統,以及U盤,因爲這個也是系統掛載來實現的。默認也會掛載到Linux的文件系統中。

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