【轉】Linux下的磁盤分區方法


轉自:https://www.cnblogs.com/lbole/p/8904298.html

一、硬盤接口類型

  硬盤的接口主要有IDE、SATA、SCSI 、SAS和光纖通道等五種類型。其中IDE和SATA接口硬盤多用於家用產品中,也有部分應用於服務器,SATA是一種新生的硬盤接口類型,已經取代了大部分IDE接口應用。SCSI 、SAS主要應用於服務器上,普通家用設備一般不支持SCSI和SAS接口。SAS也是是一種新生的硬盤接口類型,可以和SATA以及部分SCSI設備無縫結合。光纖通道最初設計也不是為了硬盤設計開發的接口,是專門為網絡系統設計的,但隨着存儲系統對速度的需求,才逐漸應用到硬盤系統中,並且其只應用在高端服務器上價格昂貴。

二、硬盤和分區

  Linux中主要有兩種分區類型,分別為MBR(Master Boot Record)和GPT(GUID Partition Table),是在磁盤上存儲分區信息的兩種不同方式。這些分區信息包含了分區從哪里開始的信息,這樣操作系統才知道哪個扇區是屬於哪個分區的,以及哪個分區是可以啟動的。在磁盤上創建分區時,你必須在MBR和GPT之間做出選擇。

  在Linux中會把設備映射成為一個/dev目錄下的系統文件,IDE接口類型的硬盤設備映射的文件名稱前綴為“hd”,SCSI、SATA、SAS等接口的硬盤設備映射的文件名稱前綴為“sd”(部分虛擬機或者雲主機的名稱可能是其他的,比如“vd”),后面拼接從“a”開始一直到“z”用來區分不同的硬盤設備,在硬盤名稱后面拼接數字形式的分區號用來區分不同的分區。

1、MBR分區
  MBR的意思是“主引導記錄”,它是存在於驅動器開始部分的一個特殊的啟動扇區。這個扇區包含了已安裝的操作系統的啟動加載器和驅動器的邏輯分區信息。MBR支持最大2TB磁盤,它無法處理大於2TB容量的磁盤。MBR格式的磁盤分區主要分為基本分區(primary partion)和擴展分區(extension partion)兩種主分區和擴展分區下的邏輯分區。主分區總數不能大於4個,其中最多只能有一個擴展分區。且基本分區可以馬上被掛載使用但不能再分區,擴展分區必須再進行二次分區后才能掛載。擴展分區下的二次分區被稱之為邏輯分區,邏輯分區數量限制視磁盤類型而定。

  MBR的主分區號為1-4,邏輯分區號為從5開始累加的數字。比如設備主板上裝了4塊硬盤,分別為2塊IDE接口硬盤,1塊SCSI接口硬盤和一塊SATA接口硬盤。其中2塊IDE接口硬盤的分區策略為2個主分區和2個邏輯分區,SCSI分區策略為3個主分區和3個邏輯分區,SATA分區策略為4個主分區。硬盤文件和分區名稱如下:

  硬盤  主分區1 主分區2 主分區3  主分區4  邏輯分區1  邏輯分區2  邏輯分區3 ......  邏輯分區n
IDE1 /dev/hda /dev/hda1(p) /dev/hda2(p) /dev/hda3(e) / /dev/hda5(l) /dev/hda6(l) / ...... /
IDE2 /dev/hdb /dev/hdb1(p) /dev/hdb2(p) /dev/hdb3(e) / /dev/hdb5(l) /dev/hdb6(l) / ...... /
SCSI /dev/sda /dev/sda1(p) /dev/sda2(p) /dev/sda3(p) /dev/sda4(e) /dev/sda5(l) /dev/sda6(l) /dev/sda7(l) ...... /
SATA /dev/sdb /dev/sdb1(p) /dev/sdb2(p) /dev/sdb3(p) /dev/sdb4(p) / / / ...... /

  其中分區名稱后面的(p)代表基本分區,(e)代表擴展分區,(l)代表邏輯分區。需要注意的是,如果分區策略中存在邏輯分區,則說明一定會有擴展分區,那么基本分區數則最多只能有3個,擴展分區數最多只能是1個,如果沒有擴展分區則可以創建4個基本分區。想要創建邏輯分區,則必須先將唯一的擴展分區創建出來,並且如果刪除了擴展分區,那么它下面的所有邏輯分區也會被自動刪除。

  如果是SCSI接口硬盤則最多只能有15(其中擴展分區不能直接使用所以不計算)個分區,其中主分區最多4個,邏輯分區最多12個。IDE接口硬盤最多只能有63(其中擴展分區不能直接使用所以不計算)個分區,其中主分區最多4個,邏輯分區最多60個。

2、GPT分區

  GPT意為GUID分區表,驅動器上的每個分區都有一個全局唯一的標識符(globally unique identifier,GUID)。支持的最大磁盤可達18EB,它沒有主分區和邏輯分區之分,每個硬盤最多可以有128個分區,具有更強的健壯性與更大的兼容性,並且將逐步取代MBR分區方式。GPT分區的命名和MBR類似,只不過沒有主分區、擴展分區和邏輯分區之分,分區號直接從1開始累加一直到128。

三、邏輯卷

   LVM(邏輯卷)的產生是因為傳統的分區一旦分區好后就無法在線擴充空間,也存在一些工具能實現在線擴充空間但是還是會面臨數據損壞的風險;傳統的分區當分區空間不足時,一般的解決辦法是再創建一個更大的分區將原分區卸載然后將數據拷貝到新分區,但是在企業的生產系統往往不允許停機或者允許停機的時間很短,LVM就能很好的解決在線擴充空間的問題,而且不會對數據造成影響,LVM還能通過快照在備份的過程中保證日志文件和表空間文件在同一時間點的一致性。

  在LVM中PE(Physical Extend)是卷的最小單位,默認4M大小,就像我們的數據是以頁的形式存儲一樣,卷就是以PE的形式存儲。PV(Physical Volume)是物理卷,如果要使用邏輯卷,首先第一步操作就是將物理磁盤或者物理分區格式化成PV,格式化之后PV就可以為邏輯卷提供PE了。VG(Volume Group)是卷組,VG就是將很多PE組合在一起生成一個卷組,當然這里的PE是可以跨磁盤的,如果當前服務器磁盤空間不足就可以增加一個新磁盤對當前系統不會產生任何影響。LV(Logical Volume)是邏輯卷,邏輯卷最終是給用戶使用的,前面幾個都是為創建邏輯卷做的准備,創建邏輯卷的大小只要不超過VG剩余空間就可以。

四、文件系統

  當硬盤分區被創建完成之后,還並不能直接掛載到目錄上存儲文件,需要選擇合適的文件系統進行格式化。常見的分區類型有FAT32、FAT16、NTFS、HP-UX等,而專供Linux使用的主流的一些分區有ext2/3/4、physical volume (LVM) 、softwareRAID、swap、vfat、xfs等。其中:

  1、ext2/3/4:是適合Linux的文件系統類型,由於ext3文件系統多了日志記錄功能,因此系統恢復起來更加快速,ext4是ext3的升級,效率更加高,因此建議使用默認類型ext4類型,而不要使用ext2/3;

  2、physical volume (LVM):這是一種彈性調整文件系統大小的機制,即可以讓文件系統變大或變小,而不改變原文件數據的內容,功能不錯,但性能不佳。

  3、softwareRAID:利用Linux系統的特性,用軟件仿真出磁盤陣列功能。

  4、swap:就是內存交換空間。由於swap並不會使用到目錄樹的掛載,因此用swap就不需要指定掛載點。

  5、vfat:同時被Linux與windows所支持的文件系統類型。如果主機硬盤同事存在windows和linux兩種操作系統,為了進行數據交換,可以使用該文件系統。

  6、xfs:也是一個文件系統類型,在centos7中將被作為默認的文件系統類型,替換ext4。

五、使用fdisk操作分區

  本文主要以CentOS 7發行版的Linux作為實驗,我們使用Fdisk工具來操作分區,Fdisk 是各種 Linux 發行版本中最常用的分區工具。

  首先輸入 fdisk -h 命令查看幫助信息:

復制代碼
[root@localnat201 ~]# fdisk -h
用法:
fdisk [選項] <磁盤> 更改分區表
fdisk [選項] -l <磁盤> 列出分區表
fdisk -s <分區> 給出分區大小(塊數)

選項:
-b <大小> 扇區大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默認)
-h 打印此幫助文本
-u[=<單位>] 顯示單位:“cylinders”(柱面)或“sectors”(扇區,默認)
-v 打印程序版本
-C <數字> 指定柱面數
-H <數字> 指定磁頭數
-S <數字> 指定每個磁道的扇區數
復制代碼

  從中我們可以看出,使用 fdisk -l 命令可查看分區表信息:

復制代碼
[root@localnat201 ~]# fdisk -l

磁盤 /dev/sda:32.2 GB, 32212254720 字節,62914560 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x000b1bc3

   設備 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

磁盤 /dev/sdb:53.7 GB, 53687091200 字節,104857600 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節


磁盤 /dev/mapper/cl-root:29.0 GB, 28982640640 字節,56606720 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節


磁盤 /dev/mapper/cl-swap:2147 MB, 2147483648 字節,4194304 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
復制代碼

  從中我們可以看出,有4個設備,分別為/dev/sda、/dev/sdb、/dev/mapper/cl-root、/dev/mapper/cl-swap。其中/dev/sda硬盤已經有2個分區分區為:/dev/sda1和/dev/sda2。/dev/mapper/cl-root和/dev/mapper/cl-swap兩個設備是/dev/sda2分區創建的邏輯卷。這里的/dev/sdb硬盤設備並沒有被分區,我們則是需要來操作這個硬盤,至於如何操作邏輯卷后面會講到。

  輸入 fdisk /dev/sdb 命令,對/dev/sda硬盤的分區表進行操作:

復制代碼
[root@localnat201 ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0xc72a6f6a 創建新的 DOS 磁盤標簽。
復制代碼

  我們輸入"m"選項可以查看到幫助信息:

復制代碼
命令(輸入 m 獲取幫助):m
命令操作
   a   toggle a bootable flag 切換可引導標志
   b   edit bsd disklabel 編輯BSD磁盤標簽
   c   toggle the dos compatibility flag 切換DOS兼容性標志
   d   delete a partition 刪除分區
   g   create a new empty GPT partition table 創建一個新的空GPT分區表
   G   create an IRIX (SGI) partition table 創建一個ILIX(SGI)分區表
   l   list known partition types 列出已知分區類型
   m   print this menu 打印此菜單
   n   add a new partition 添加新分區
   o   create a new empty DOS partition table 創建一個新的空DOS分區表
   p   print the partition table 打印分區表
   q   quit without saving changes 不保存更改退出
   s   create a new empty Sun disklabel 創建一個新的空太陽標簽
   t   change a partition's system id 更改分區的系統ID
   u   change display/entry units 更改顯示/輸入單元
   v   verify the partition table 驗證分區表
   w   write table to disk and exit 將表寫入磁盤並退出
   x   extra functionality (experts only) 額外功能(僅專家)

命令(輸入 m 獲取幫助):
復制代碼

  從上面的幫助信息中,可以得知一些選項的用途。這里主要注意"d"、"n"、"q"、"g"、"w"等選項。首先要明確分區格式,fdisk默認的分區格式是msdos(mbr),在此可輸入"g"選項,將分區格式修改為GPT,不過在修改完保存退出之后,在輸入 fdisk /dev/sdb 命令進入分區模式,會出現 WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. 信息,提示fdisk gpt分區是新的功能,目前還在實驗階段。所以如果要進行GPT分區,那么推薦使用 parted 命令,后面會介紹到。

  那么首先輸入"n"選項來開始創建分區:

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 

  可以看到交互界面打印的信息,提示需要選擇一個分區類型,"p":為基本分區(默認);"e":為擴展分區。在此我們選擇"p",創建一個基本分區:

Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p 分區號 (2-4,默認 2):

  交互界面提示需要選擇一個分區號,范圍為2-4。由於已經存在了一個基本分區,所以只可選擇2、3、4(默認2,順序累加)。在此我們輸入2:

復制代碼

Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):

復制代碼

  可以看到交互界面提示序號選擇其實扇區,默認為剩余未被分配的最小扇區,推薦選擇默認(直接點擊回車);

復制代碼
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-314572799,默認為 314572799):
復制代碼

  交互界面提示,要輸入需要分配的截止扇區,默認為未被分配的最小扇區,此處推薦默認(直接點擊回車):

復制代碼
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-314572799,默認為 314572799):
將使用默認值 314572799
分區 2 已設置為 Linux 類型,大小設為 149 GiB

命令(輸入 m 獲取幫助):
復制代碼

  可以看到又回到了最初的交互界面,這表示分區表已經設置成功,輸入選項q表示要放棄本次分區表的修改並退出,w選項表示保存本次分區表的修改並退出,此處選擇w表示將分區信息寫入到磁盤,此次分區完成;

  回到最初操作分區表的地方,選擇"d"選項,刪除分區的功能:

命令(輸入 m 獲取幫助):d
分區號 (1,2,默認 2):

  交互界面提示輸入要刪除的分區的分區號,此處選擇2:

命令(輸入 m 獲取幫助):d
分區號 (1,2,默認 2):2
分區 2 已刪除

命令(輸入 m 獲取幫助):

  交互界面提示本次分區表操作成功,輸入選項"w",表示將分區信息寫入到磁盤,此次刪除分區完成。回到最初選擇分區類型的地方,選擇"e",創建擴展分區:

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分區號 (2-4,默認 2):

  交互界面提示要輸入擴展分區的分區號,可選范圍為2-4,此處選擇2:

復制代碼
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):
復制代碼

  交互界面提示輸入要分配給擴展分區的起始扇區,此處選擇默認:

復制代碼
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-314572799,默認為 314572799):
復制代碼

  交互界面提示輸入要分配給擴展分區的截止扇區,此處選擇默認:

復制代碼
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分區號 (2-4,默認 2):2
起始 扇區 (2099200-314572799,默認為 2099200):
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-314572799,默認為 314572799):
將使用默認值 314572799
分區 2 已設置為 Extended 類型,大小設為 149 GiB

命令(輸入 m 獲取幫助):
復制代碼

  交互界面提示本次對分區表的操作已完成,輸入"w"選項,保存本次對分區表的操作;當再次創建分區的時候,交互界面就會將擴展分區的選項"e"替換成為邏輯分區的選項"l":

Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): 

  之后再要創建邏輯分區和之前創建分區的步驟一致,分區完成。至此CentOS中的分區操作已完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM