1. 程式人生 > >linux分區之ext2,ext3,ext4,gpt

linux分區之ext2,ext3,ext4,gpt

特點 次數 次方 windows系統 index 第一個 wid 內部 自己

linux分區之ext2,ext3,ext4,gpt 2013-07-10 12:00:24 標簽:ext3 gpt 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://wushank.blog.51cto.com/3489095/1244191

一、各分區簡單介紹:

1、EXT是Linux系統下的一種磁盤分區格式,等同於XP下的FAT/FAT16/FAT32,大家知道安卓是基於Linux系統開發的手機系統,那麽同樣的就有這些分區格式,平時我們所說的開啟a2sd功能,就是在SD卡中分出一個系統所支持的磁盤格式,下面來說一下這些格式的區別!
2、Ext2(第二擴展文件系統): 是 GNU/Linux 系統中標準的文件系統,其特點為存取文件的性能極好,對於中小型的文件更顯示出優勢,這主要得利於其簇快取層的優良設計。其單一文件大小與文件系統本身的容量上限與文件系統本身的簇大小有關,在一般常見的 x86 電腦系統中,block最大為 4KB, 則單一文件大小上限為 2048GB, 而文件系統的容量上限為 16384GB。但由於目前核心 2.4 所能使用的單一分割區最大只有 2048GB,因此實際上能使用的文件系統容量最多也只有 2048GB。

3、Ext3(第三擴展文件系統): 顧名思義,它就是 ext2 的下一代,也就是在保有目前 ext2 的格式之下再加上日誌功能。
4、EXT4(第四擴展文件系統):文件系統是Linux系統下的日誌文件系統,是ext3文件系統的後繼版本,但是Ext4是Linux文件系統的一次改進。在很多方面,Ext4相對於Ext3的進步要遠超過Ext3相對於Ext2的進步。Ext3相對於 Ext2的改進主要在於日誌方面,但是Ext4相對於Ext3的的改進是更深層次的,是文件系統數據結構方面的優化,是一個高效的、優秀的、可靠的和極具特點的文件系統,並且EXT3可以轉為EXT4的。

5、xfs

XFS 是一種高性能的64 位文件系統,由SGI 公司為了替代原有的EFS 文件系統而開發的。XFS 通過保持cache 的一致性、定位數據和分布處理磁盤請求來提供對文件系統數據的低延遲、高帶寬的訪問。目前SGI已經將XFS文件系統從IRIX移植到Linux。

最大可支持的文件大小為263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸為18 exabytes。

6、ReiserFS

ReiserFS 是一個非常優秀的文件系統,其開發者非常有魄力,整個文件系統完全是從頭設計的。目前,ReiserFS可輕松管理上百G的文件系統,這在企業級應用中非常重要。ReiserFS 是根據面向對象的思想設計的,由語義層(semantic layer)和存儲層(storage layer)組成。語義層主要是對對象命名空間的管理及對象接口的定義,以確定對象的功能。存儲層主要是對磁盤空間的管理。語義層與存儲層是通過鍵(key)聯系的。語義層通過對對象名進行解析生成鍵,存儲層通過鍵找到對象在磁盤上存儲空間,鍵值是全局唯一的。 與ext3 一樣,ReiserFS也有三種日誌模式,即journal,ordered,writeback。

最大文件尺寸 8 TiB
最大卷容量 16 TiB

7、JFS

JFS 由IBM 公司開發,最初出現在AIX 操作系統之上,它提供了基於日誌的字節級、面向事務的高性能文件系統。它具有可伸縮性和健壯性,與非日誌文件系統相比,它的優點是其快速重啟能力:JFS 能夠在幾秒或幾分鐘內就把文件系統恢復到一致狀態。JFS 是完全 64 位的文件系統。所有 JFS 文件系統結構化字段都是 64 位大小。這允許 JFS 同時支持大文件和大分區。

8、EXT4和EXT3的特點和區別:
Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能:
   (1). 與 Ext3 兼容。 執行若幹條命令,就能從 Ext3 在線遷移到 Ext4,而無須重新格式化磁盤或重新安裝系統。原有 Ext3 數據結構照樣保留,Ext4 作用於新數據,當然,整個文件系統因此也就獲得了 Ext4 所支持的更大容量。

從ext3升級到ext4:


  # cd /; umount /dev/sda1

  # tune2fs -O extents,uninit_bg,dir_index /dev/sda1

  記住,轉換成 ext4 後必須用 fsck 掃描,否則不能 mount,-p 參數說明 “自動修復” 文件系統:

  # fsck -pf /dev/sda1

  掛載 ext4 文件系統:

  # mount -t ext4 /dev/sda1 /path/to/


   (2). 更大的文件系統和更大的文件。 較之 Ext3 目前所支持的最大 16TB 文件系統和最大 2TB 文件,Ext4 分別支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系統,以及 16TB 的文件。
   (3). 無限數量的子目錄。 Ext3 目前只支持 32,000 個子目錄,而 Ext4 支持無限數量的子目錄。
   (4). Extents。 Ext3 采用間接塊映射,當操作大文件時,效率極其低下。比如一個 100MB 大小的文件,在 Ext3 中要建立25,600 個數據塊(每個數據塊大小為 4KB)的映射表。而 Ext4 引入了現代文件系統中流行的 extents 概念,每個 extent 為一組連續的數據塊,上述文件則表示為“該文件數據保存在接下來的 25,600 個數據塊中”,提高了不少效率。
   (5). 多塊分配。當寫入數據到 Ext3 文件系統中時,Ext3 的數據塊分配器每次只能分配一個 4KB 的塊,寫一個 100MB 文件就要調用 25,600次數據塊分配器,而 Ext4 的多塊分配器“multiblock allocator”(mballoc) 支持一次調用分配多個數據塊。
   (6). 延遲分配。 Ext3 的數據塊分配策略是盡快分配,而 Ext4 和其它現代文件操作系統的策略是盡可能地延遲分配,直到文件在 cache 中寫完才開始分配數據塊並寫入磁盤,這樣就能優化整個文件的數據塊分配,與前兩種特性搭配起來可以顯著提升性能。
   (7). 快速 fsck。 以前執行 fsck 第一步就會很慢,因為它要檢查所有的 inode,現在 Ext4 給每個組的 inode表中都添加了一份未使用 inode 的列表,今後 fsck Ext4 文件系統就可以跳過它們而只去檢查那些在用的 inode 了。
   (8). 日誌校驗。 日誌是最常用的部分,也極易導致磁盤硬件故障,而從損壞的日誌中恢復數據會導致更多的數據損壞。Ext4 的日誌校驗功能可以很方便地判斷日誌數據是否損壞,而且它將 Ext3 的兩階段日誌機制合並成一個階段,在增加安全性的同時提高了性能。
   (9). “無日誌”(No Journaling)模式。 日誌總歸有一些開銷,Ext4 允許關閉日誌,以便某些有特殊需求的用戶可以借此提升性能。
   (10). 在線碎片整理。 盡管延遲分配、多塊分配和 extents 能有效減少文件系統碎片,但碎片還是不可避免會產生。Ext4 支持在線碎片整理,並將提供 e4defrag 工具進行個別文件或整個文件系統的碎片整理。
   (11). inode 相關特性。 Ext4 支持更大的 inode,較之 Ext3 默認的 inode 大小 128 字節,Ext4 為了在 inode中容納更多的擴展屬性(如納秒時間戳或 inode 版本),默認 inode 大小為 256 字節。Ext4 還支持快速擴展屬性(fastextended attributes)和 inode 保留(inodes reservation)。
   (12). 持久預分配(Persistent preallocation)。 P2P軟件為了保證下載文件有足夠的空間存放,常常會預先創建一個與所下載文件大小相同的空文件,以免未來的數小時或數天之內磁盤空間不足導致下載失敗。Ext4 在文件系統層面實現了持久預分配並提供相應的 API(libc 中的 posix_fallocate()),比應用軟件自己實現更有效率。
   (13). 默認啟用 barrier。 磁盤上配有內部緩存,以便重新調整批量數據的寫操作順序,優化寫入性能,因此文件系統必須在日誌數據寫入磁盤之後才能寫commit 記錄,若 commit 記錄寫入在先,而日誌有可能損壞,那麽就會影響數據完整性。Ext4 默認啟用 barrier,只有當barrier 之前的數據全部寫入磁盤,才能寫 barrier 之後的數據。(可通過 "mount -o barrier=0"命令禁用該特性)

二、GPT介紹及使用:

先說說目前廣泛使用的磁盤分區表方案。傳統的分區方案(稱為MBR分區方案)是將分區信息保存到磁盤的第一個扇區(MBR扇區)中的64個字節中,每個分區項占用16個字節,這16個字節中存有活動狀態標誌、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由於MBR扇區只有64個字節用於分區表,所以只能記錄4個分區的信息。這就是硬盤主分區數目不能超過4個的原因。後來為了支持更多的分區,引入了擴展分區及邏輯分區的概念。但每個分區項仍用16個字節存儲。

MBR分區方案不是用得好好的嗎?為什麽要提出新的方案呢?那就讓我們看看MBR分區方案有什麽問題。前面已經提到了主分區數目不能超過4個的限制,這是其一,很多時候,4個主分區並不能滿足需要。另外最關鍵的是MBR分區方案無法支持超過2TB容量的磁盤。因為這一方案用4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512字節計算,每個分區最大不能超過2TB。磁盤容量超過2TB以後,分區的起始位置也就無法表示了。在硬盤容量突飛猛進的今天,2TB的限制將很快被突破。由此可見,MBR分區方案已經無法滿足需要了。下面介紹GUID分區表方案。

GUID分區表(簡稱GPT。使用GUID分區表的磁盤稱為GPT磁盤)是源自EFI標準的一種較新的磁盤分區表結構的標準。與目前普遍使用的主引導記錄(MBR)分區方案相比,GPT提供了更加靈活的磁盤分區機制。它具有如下優點:
1、支持2TB以上的大硬盤。
2、每個磁盤的分區個數幾乎沒有限制。為什麽說“幾乎”呢?是因為Windows系統最多只允許劃分128個分區。不過也完全夠用了。
3、分區大小幾乎沒有限制。又是一個“幾乎”。因為它用64位的整數表示扇區號。誇張一點說,一個64位整數能代表的分區大小已經是個“天文數字”了,若幹年內你都無法見到這樣大小的硬盤,更不用說分區了。
4、分區表自帶備份。在磁盤的首尾部分分別保存了一份相同的分區表。其中一份被破壞後,可以通過另一份恢復。
5、每個分區可以有一個名稱(不同於卷標)。

既然GUID分區方案具有如此多的優點,在分區時是不是可以全部采用這種方案呢?不是的。並不是所有的Windows系統都支持這種分區方案。 請看下表:

Windows種類 能否讀寫GPT磁盤 能否從GPT磁盤啟動
32位 Windows XP 不能。只能看到一個Protective MBR分區 不支持
Windows 2000/NT/9x 不能。只能看到一個Protective MBR分區 不支持
64位 Windows XP 只有基於Itanium的系統才能從GPT磁盤啟動
Windows Server 2003 SP1及以上版本 只有基於Itanium的系統才能從GPT磁盤啟動
Windows Vista 只有基於 EFI 的系統支持從GPT磁盤啟動
Windows Server 2008 只有基於 EFI 的系統支持從GPT磁盤啟動
Windows 7 只有基於 EFI 的系統支持從GPT磁盤啟動

是不是很失望?目前多數的個人電腦系統還無法完美支持GPT磁盤。但是這並不意味著我們不需要了解GUID分區方案。別忘了,硬件的發展速度總是令人吃驚的。1.5TB的硬盤已經大量上市,2TB以上容量的硬盤很快就會普及,基於EFI的主板也正在銷售。GUID分區方案終將成為主流 。

做為一款分區軟件,DiskGenius從3.1版本開始支持GUID分區表。這是國內第一款支持GUID分區表的分區軟件。DiskGenius提供了GUID分區的建立、刪除、格式化、已丟失分區恢復、文件恢復、分區表備份、GUID分區表格式與MBR分區表格式之間的相互轉換(無誤轉換)等功能。

------------------------------------------------------------------------------------------------------

Linux下大於2T磁盤的使用:GPT磁盤

兩種分區表

MBR分區表:(MBR含義:主引導記錄)

所支持的最大卷:2T (T; terabytes,1TB=1024GB)

對分區的設限:最多4個主分區或3個主分區加一個擴展分區(擴展分區中支持無限制的邏輯驅動器)

GPT分區表:(GPT含義:GUID分區表)

支持最大卷:18EB,(E:exabytes,1EB=1024PB,1PB=1024TB)

每個磁盤最多支持128個分區

fdisk命令雖然很交互,操作也方便,但是對於大於2T的磁盤無法操作,如果我們想用大於2T的磁盤怎麽辦?可以把磁盤轉化為GPT格式。

GPT格式的磁盤相當於原來MBR磁盤中原來保留4個partitiontable的4*16個字節,只留第一個16個字節,類似於擴展分區,真正的partition table在512字節之後,GPT磁盤沒有四個主分區的限制。

但fdisk不支持GPT,我們可以使用parted來對GPT磁盤操作。

parted功能很強大,既可用命令行也可以用於交互式

在提示符下輸入parted就會進入交互式模式,如果有多個磁盤的話,我們需要運行select sdx x為磁盤,來進行磁盤的選擇

parted>

parted>select sdb假設磁盤為sdb

parted>mklabel gpt將MBR磁盤格式化為GPT

parted>mklabel msdos將GPT磁盤轉化為MBR磁盤

parted>mkpart primary 0 100劃分一個起始位置為0大小為100M的主分區

parted>mkpart primary 100 200劃分一個起始位置為100M大小為100M的主分區

parted>print打印當前分區

在parted裏邊不支持ext3的文件系統,所以如果要使用的話,要退出parted進行格式話

mkfs.ext3 /dev/sdx1

因為fdisk是不支持GPT磁盤,所以不要使用fdisk -l來查看X磁盤剛才分好的區,看不到的。

命令行的模式:

將硬盤轉化為GPT磁盤後,執行下列命令

parted /dev/sdx mkpart primary 0 100劃分一個起始位置為0大小為100M的主分區

詳細用法:

parted [選項]... [設備 [命令 [參數]...]...]

將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。

選項:

-h, --help顯示此求助信息

-i, --interactive在必要時,提示用戶

-s, --script從不提示用戶

-v, --version顯示版本

命令:

check MINOR對文件系統進行一個簡單的檢查.

MINOR 是 Linux 使用的分區編號。

在 msdos 磁盤標簽中,主分區編號為1 - 4,邏輯分區從 5 開始。

cp [FROM-DEVICE] FROM-MINOR TO-MINOR將文件系統復制到另一個分區.

MINOR 是 Linux 使用的分區編號。在 msdos磁盤標簽中,主分

區編號為1 - 4,邏輯分區從 5 開始。DEVICE 通常為 /dev/hda 或 /dev/sda

help [COMMAND]打印通用求助信息,或關於 COMMAND 的信息

mklabel標簽類型

創建新的磁盤標簽 (分區表) “標簽類型”是以下任意一項:aix, bsd, gpt, mac, dvh, msdos, sun, loop

mkfs MINOR文件系統類型在 MINOR 創建類型為“文件系統類型”的文件系統.

MINOR是Linux使用的分區編號。在msdos磁盤標簽中,主分區編號為1-4,邏輯分區從5開始。

“文件系統類型”是以下任意一項:ext3, ext2, fat32, fat16, hfs, jfs, linux-swap, ntfs,reiserfs,hp-ufs, sun-ufs, xfs

mkpart 分區類型 [文件系統類型] 起始點終止點創建一個分區 .

“分區類型”是主分區、邏輯分區、擴展分區之一.“文件系統類型”是以下任意一項:ext3, ext2, fat32, fat16, hfs, jfs,

linux-swap, ntfs,reiserfs,hp-ufs, sun-ufs, xfs.“起始點”和“終止點”以兆為單位。負值表示從磁盤末段開始計數。

mkpart 創建分區而不在分區上創建新文件系統。“文件系統類型”可以用於設置適當的分區標識。

mkpartfs 分區類型文件系統類型起始點終止點創建一個帶有文件系統的分區,“分區類型”是主分區、邏輯分區、擴展分區之一,“起始點”和“終止點”以兆為單位。負值表示從磁盤末段開始計數。

move MINOR 起始點終止點移動編號為 MINOR 的分區.MINOR 是 Linux 使用的分區編號。在msdos 磁盤標簽中,主分區編號為 1 - 4,邏輯分區從 5 開始。“起始點”和“終止點”以兆為單位。負值表示從磁盤末段開始計數。

name MINOR 名稱將編號為 MINOR 的分區命名為“名稱”.MINOR 是 Linux 使用的分區編號。在 msdos 磁盤標簽中,主分區編號為 1 - 4,邏輯分區從 5 開始。NAME 是您需要的任何單詞

print [MINOR]打印分區表,或者分區

quit退出程序

rescue 起始點終止點挽救臨近“起始點”、“終止點”的遺失的分區

resize MINOR 起始點終止點改變位於編號為 MINOR 的分區中文件系統的大小.MINOR 是 Linux 使用的分區編號。在msdos 磁盤