1. 程式人生 > >添加磁盤操作

添加磁盤操作

設計 擴展 nor 得到 能夠 位置 空間 script ron

添加磁盤步驟:

添加設備 分區 格式化(創建文件系統) 【起名】 修改配置文件 創建掛載點 掛載

基本概念

硬盤分區有三種,主磁盤分區、擴展磁盤分區、邏輯分區。 一個硬盤主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若幹個。 在windows下激活的主分區是硬盤的啟動分區,他是獨立的,也是硬盤的第一個分區,正常分的話就是C區。 在linux下主分區和邏輯分區都可以用來放系統,引導os開機,grub會兼容windows系統開機啟動。 分出主分區後,其余的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,那剩的部分就浪費了。 但擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若幹邏輯分區。他們的關系是包含的關系,所有的邏輯分區都是擴展分區的一部分。 在linux中第一塊硬盤分區為hda分區,主分區編號為hda1-4,邏輯分區從5開始。 硬盤的容量=主分區的容量+擴展分區的容量 擴展分區的容量=各個邏輯分區的容量之和 主分區也可成為“引導分區”,會被操作系統和主板認定為這個硬盤的第一個分區。所以C盤永遠都是排在所有磁盤分區的第一的位置上。 MBR(主引導記錄)的分區表(主分區表)只能存放4個分區,如果要分更多的分區的話就要一個擴展分區表(EBR),擴展分區表放在一個系統ID為0x05的主分區上,這個主分區就是擴展分區,擴展分區能可以分若幹個分區,每個分區都是個邏輯分區

2擴展分區和邏輯分區

DOS和FAT文件系統最初都被設計成可以支持在一塊硬盤上最多建立24個分區,分別使用從C到Z 24個驅動器盤符。但是主引導記錄中的分區表最多只能包含4個分區記錄,為了有效地解決這個問題,DOS的分區命令FDISK允許用戶創建一個擴展分區,並且在擴展分區內再建立最多23個邏輯分區,其中的每個分區都單獨分配一個盤符,可以被計算機作為獨立的物理設備使用。關於邏輯分區的信息都被保存在擴展分區內,而主分區和擴展分區的信息被保存在硬盤的MBR內。這也就是說無論硬盤有多少個分區,其主啟動記錄中只包含主分區(也就是啟動分區)和擴展分區兩個分區的信息。

在安裝CentOS5.3的過程中,會遇到磁盤分區的界面,下拉式菜單中有4個選項,這時你不要選擇默認,打開下拉式菜單,選擇最後一項(翻譯成中文意思是:建立自定義的分割模式)。然後選擇右下角的確認,在下一個對話界面裏依序建立/、/home 及 swap ,完成後如圖。確認設置後的分割區。

技術分享

為強調重點,把圖中重要內容,再寫一遍。

/ 根目錄 ext3 hda1

/home 用戶目錄 ext3 hda2

Swap 交換分區 swap hda3

對hda1的解釋:

hd:IDE硬盤。如果是SCSI硬盤,則為sd,這個只能記住,沒有更好的辦法。

a:: 第一塊硬盤。如果是第二塊硬盤,則為b,依此類推c,d……

1: 主分區。其中1,2,3,4都是主分區(或擴展分區, 主分區+擴展分區<=4, 這是因為硬盤有64字節描述分區,每一個占用16字節),從第5開始為邏輯分區,最大到16,新的Linux版本無限制

磁盤容量與主分區、擴展分區、邏輯分區的關系:

硬盤的容量=主分區的容量+擴展分區的容量

擴展分區的容量=各個邏輯分區的容量之和

一塊物理硬盤只能有: 一到四個主分區(但其中只能有一個是活動的主分區),或一到三個主分區,和一個擴展分區。分別對應hda1,hda2,hda3,hda4.

Linux 中規定,每一個硬盤設備最多能有 4 個主分區(其中包含擴展分區)構成,任何一個擴展分區都要占用一個主分區號碼,也就是在一個硬盤中,主分區和擴展分區一共最多是 4 個。

我曾經的困惑點是:不知道擴展分區要占用主分區(最多可以有4個)一個分區號碼。

我的總結:一塊硬盤可以只設主分區,這時主分區可設置4個分區號。也可以設置成主分區+邏輯分區,這時也是最多4個分區號碼,但是變成了4 = 3 + 1.其中4是主分區和擴展分區加起來最多4個; 3是主分區,可以小於或等於3; 1是擴展分區號,占用了一個主分區號。從5開始到16,都是邏輯分區。如果只有一個5,則擴展分區不再進行分區了,那麽擴展分區就是邏輯分區了(擴展分區的磁盤總量等於一個邏輯分區的磁盤總量)。常見的是擴展分區被分成幾個邏輯分區,用5,6,7,8等號碼標識。

再來理解上面的分區:

/ 根目錄 ext3 hda1 活動主分區,啟動OS

/home 用戶目錄 ext3 hda2 主分區

swap 交換分區 swap hda3 主分區

此處可能暗示有一個擴展分區,其應為hda4。因為這樣後面還可以設hda5,hda6,……

也可能就只有3個主分區(最多可以有4個)已占滿磁盤容量。

假設現在你的Linux操作系統磁盤空間只有16000M,又按照上面的設置分配磁盤空間。這樣就沒有擴展分區了。

我們知道硬盤的第一個扇區也就是第0扇區是用來存放主引導記錄(MBR)的,因此也稱MBR扇區。一個扇區是512字節,因此MBR的大小也是512字 節,其具體數據結構是:446個字節的引導代碼、64個字節的分區表及2個字節的簽名值"55AA"。由於MBR的分區表只有64個字節,這決定了它只能 存儲4個分區記錄。這就是為什麽一塊硬盤最多只能有4個“主分區"的原因。記住,“主分區”就是指記錄在主引導記錄MBR分區表中的分區,除此之外主分區 並無特別之處,但是過去的一些老操作系統往往不能安裝在主分區之外的分區上,所以,主分區也貼上“專門用來安裝操作系統”的標簽。

我 們已經知道了MBR中的分表區只能存放4個分區(即4個主分區),那系統是如何劃分出4個以上的分區的呢?一種直白而簡單的思路就是把其中一個主分區再進 行細分,衍生出一個二級分區表。對的,這個被用來二次分區的主分區就是“擴展分區”,它下面的二級分區就是“邏輯分區”。

關於如何在Linux下如何使用parted工具時行分區,這裏轉載一篇文章, 講解的非常清晰. 原文出處:http://dngood.blog.51cto.com/446195/647702/

一 關鍵詞

MBR和2TB的限制
在使用fdisk建立分區時,我們最大只能建立2TB大小的分區,如果你的磁盤(陣列)大於2TB,只能通過劃分多個分區的方法才能充分利用磁盤容量,這對於使用小於2TB分區的朋友沒啥影響,但對於使用大於2TB分區(比如5TB的分區)的朋友就會遇到問題了,要突破這個限制;我們先來了解下MBR(Master Boot Record)和GPT(GUID Partition Table).


MBR
主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是計算機開機後訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址為(柱面,磁頭,扇區)=(0,0,1)。

MBR是由分區程序(如Fdisk,Parted)所產生的,它不依賴任何操作系統,而且硬盤引導程序也是可以改變的,從而能夠實現多系統引導。

從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由於每個分區信息需要16個字節,所以對於采用MBR型分區結構的硬盤(其磁盤卷標類型為MS-DOS),最多只能識別4個主要分區。所以對於一個采用此種分區結構的硬盤來說,想要得到4個以上的主要分區是不可能的。這裏就需要引出擴展分區了。擴展分區也是主分區(Primary partition)的一種,但它與主分區的不同在於理論上可以劃分為無數個邏輯分區,每一個邏輯分區都有一個和MBR結構類似的擴展引導記錄(EBR)
在MBR分區表中最多4個主分區或者3個主分區+1個擴展分區,也就是說擴展分區只能有一個,然後可以再細分為多個邏輯分區。
在Linux系統中,硬盤分區命名為sda1-sda4或者hda1-hda4(其中a表示硬盤編號可能是a、b、c等等)。在MBR硬盤中,分區號1-4是主分區(或者擴展分區),邏輯分區號只能從5開始。
在MBR分區表中,一個分區最大的容量為2T,且每個分區的起始柱面必須在這個disk的前2T內。你有一個3T的硬盤,根據要求你至少要把它劃分為2個分區,且最後一個分區的起始扇區要位於硬盤的前2T空間內。如果硬盤太大則必須改用GPT



GPT
全局唯一標識分區表(GUID Partition Table,縮寫:GPT)是一個實體硬盤的分區結構。它是EFI(可擴展固件接口標準)的一部分,用來替代BIOS中的主引導記錄分區表。但因為MBR分區表不支持容量大於2.2TB(2.2 × 1012字節)的分區,所以也有一些BIOS系統為了支持大容量硬盤而用GPT分區表取代MBR分區表

在MBR硬盤中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲著系統的引導程序)。但在GPT硬盤中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬盤的第一個扇區仍然用作MBR,之後才是GPT頭。

與 支持最大卷為2 TB(Terabytes)並且每個磁盤最多有4個主分區(或3個主分區,1個擴展分區和無限制的邏輯驅動器)的MBR磁盤分區的樣式相比,GPT磁盤分 區樣式支持最大卷為18 EB(Exabytes)並且每磁盤的分區數沒有上限,只受到操作系統限制(由於分區表本身需要占用一定空間,最初規劃硬盤分區時,留給分區表的空間決定 了最多可以有多少個分區,IA-64版Windows限制最多有128個分區,這也是EFI標準規定的分區表的最小尺寸)。與MBR分區的磁盤不同,至關 重要的平臺操作數據位於分區,而不是位於非分區或隱藏扇區。另外,GPT分區磁盤有備份分區表來提高分區數據結構的完整性。


EFI
可 擴展固件接口(英文名Extensible Firmware Interface 或EFI)是一種個人電腦系統規格,用來定義操作系統與系統韌體之間的軟件界面,為替代BIOS的升級方案。可擴展固件接口負責加電自檢(POST)、連 系操作系統以及提供連接操作系統與硬件的接口。
EFI最初由英特爾開發,現時由UEFI論壇來推廣與發展。


UEFI
是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬於open source,目前版本為2.1。

二 創建一個大於2TB的分區

MBR 與 GPT,都是分區格式,其中MBR最大分區小於等於2TB,而GPT分區沒有2TB的限制,理論最大分區18 EB!

現在我們知道了要創建一個大於2TB的分區,就不能使用MBR 格式的分區表了,而要使用GPT格式的分區表,我們最常用的fdisk 分區工具就愛莫能助了,需要使用linux 下的Parted分區工具!

測試環境為:

Dell R710 2u 服務器

cpu 2* XEON 5606

mem 16G

disk 6*1TB sas 7200rpm

raid raid level 5 perc 6i卡

rhel 6 64bit ,創建一個4TB大小分區

下面正式開始分區:

1 在使用parted 分區之前,我們先用fdisk -l 來查看下硬盤信息!

2 上邊的信息我們知道 /dev/sdb 4.6TB,現在使用parted 命令,如下圖。

3 進入parted 後,執行2,3,4,5,6,7,8,9,10,10,11步驟,指令下邊有解釋!

4 分區完成後使用print 可以看到剛才分區的信息!大小 4684GB

5 quit 用於退出parted環境,信息提示更新/etx/fstab!

6 再用fdisk -l 來查看下 sdb硬盤,現在已經有sdb1 分區了,註意system gpt!

7 parted 到這裏就完成了!

下面格式化/dev/sdb1 文件系統為EXT4:

1 執行 mkfs.ext4 /dev/sdb1 一路回車即可!

更新/etc/fstab

1.使用blkid 查看分區的uuid 如下圖,復制新分區/dev/sdb1的 UUID

2 將 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 掛載在 /data 目錄下!

3 至此全部完成, 下面檢查一下!

mount -a 重新掛載 /etc/fstab 文件中的記錄!

mount 可以發現 /dev/sdb1 已經掛載到 /data 目錄下了!

df -h 發現 /data 4.2TB

三 詳細介紹下Parted命令

[[email protected] ~]# parted --help
用法:parted [選項]... [設備 [命令 [參數]...]...]
將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。

選項:
-h, --help 顯示此求助信息
-i, --interactive 在必要時,提示用戶
-s, --script 從不提示用戶
-v, --version 顯示版本

命令:
檢查 MINOR 對文件系統進行一個簡單的檢查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR 將文件系統復制到另一個分區
help [COMMAND] 打印通用求助信息,或關於 COMMAND 的信息
mklabel 標簽類型 創建新的磁盤標簽 (分區表)
mkfs MINOR 文件系統類型 在 MINOR 創建類型為“文件系統類型”的文件系統
mkpart 分區類型 [文件系統類型] 起始點 終止點 創建一個分區
mkpartfs 分區類型 文件系統類型 起始點 終止點 創建一個帶有文件系統的分區
move MINOR 起始點 終止點 移動編號為 MINOR 的分區
name MINOR 名稱 將編號為 MINOR 的分區命名為“名稱”
print [MINOR] 打印分區表,或者分區
quit 退出程序
rescue 起始點 終止點 挽救臨近“起始點”、“終止點”的遺失的分區
resize MINOR 起始點 終止點 改變位於編號為 MINOR 的分區中文件系統的大小
rm MINOR 刪除編號為 MINOR 的分區
select 設備 選擇要編輯的設備
set MINOR 標誌 狀態 改變編號為 MINOR 的分區的標誌

註意

mklabel label-type 必須是一下這些類型:

* bsd

* loop (raw disk access)

* gpt

* mac

* msdos

* pc98

* sun

例:(parted) mklabel gtp 或者 (parted) mklabel msdos

mkpart(建立新分區)

格式:mkpart part-type fs-type start end

建立一個新的分區

part-type是以下類型之一 primary(主分區), extended(擴展分區), logical(邏輯分區)。

fs-type來指定文件系統,比如ext4 。

start和end是新分區開始和結束的具體位置。0表示起止,-1表示結尾;或者以mb表示或者GB表示!

我們知道硬盤的第一個扇區也就是第0扇區是用來存放主引導記錄(MBR)的,因此也稱MBR扇區。一個扇區是512字節,因此MBR的大小也是512字 節,其具體數據結構是:446個字節的引導代碼、64個字節的分區表及2個字節的簽名值"55AA"。由於MBR的分區表只有64個字節,這決定了它只能 存儲4個分區記錄。這就是為什麽一塊硬盤最多只能有4個“主分區"的原因。記住,“主分區”就是指記錄在主引導記錄MBR分區表中的分區,除此之外主分區 並無特別之處,但是過去的一些老操作系統往往不能安裝在主分區之外的分區上,所以,主分區也貼上“專門用來安裝操作系統”的標簽。

我 們已經知道了MBR中的分表區只能存放4個分區(即4個主分區),那系統是如何劃分出4個以上的分區的呢?一種直白而簡單的思路就是把其中一個主分區再進 行細分,衍生出一個二級分區表。對的,這個被用來二次分區的主分區就是“擴展分區”,它下面的二級分區就是“邏輯分區”。

關於如何在Linux下如何使用parted工具時行分區,這裏轉載一篇文章, 講解的非常清晰. 原文出處:http://dngood.blog.51cto.com/446195/647702/

一 關鍵詞

MBR和2TB的限制
在使用fdisk建立分區時,我們最大只能建立2TB大小的分區,如果你的磁盤(陣列)大於2TB,只能通過劃分多個分區的方法才能充分利用磁盤容量,這對於使用小於2TB分區的朋友沒啥影響,但對於使用大於2TB分區(比如5TB的分區)的朋友就會遇到問題了,要突破這個限制;我們先來了解下MBR(Master Boot Record)和GPT(GUID Partition Table).


MBR
主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是計算機開機後訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址為(柱面,磁頭,扇區)=(0,0,1)。

MBR是由分區程序(如Fdisk,Parted)所產生的,它不依賴任何操作系統,而且硬盤引導程序也是可以改變的,從而能夠實現多系統引導。

從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由於每個分區信息需要16個字節,所以對於采用MBR型分區結構的硬盤(其磁盤卷標類型為MS-DOS),最多只能識別4個主要分區。所以對於一個采用此種分區結構的硬盤來說,想要得到4個以上的主要分區是不可能的。這裏就需要引出擴展分區了。擴展分區也是主分區(Primary partition)的一種,但它與主分區的不同在於理論上可以劃分為無數個邏輯分區,每一個邏輯分區都有一個和MBR結構類似的擴展引導記錄(EBR)
在MBR分區表中最多4個主分區或者3個主分區+1個擴展分區,也就是說擴展分區只能有一個,然後可以再細分為多個邏輯分區。
在Linux系統中,硬盤分區命名為sda1-sda4或者hda1-hda4(其中a表示硬盤編號可能是a、b、c等等)。在MBR硬盤中,分區號1-4是主分區(或者擴展分區),邏輯分區號只能從5開始。
在MBR分區表中,一個分區最大的容量為2T,且每個分區的起始柱面必須在這個disk的前2T內。你有一個3T的硬盤,根據要求你至少要把它劃分為2個分區,且最後一個分區的起始扇區要位於硬盤的前2T空間內。如果硬盤太大則必須改用GPT



GPT
全局唯一標識分區表(GUID Partition Table,縮寫:GPT)是一個實體硬盤的分區結構。它是EFI(可擴展固件接口標準)的一部分,用來替代BIOS中的主引導記錄分區表。但因為MBR分區表不支持容量大於2.2TB(2.2 × 1012字節)的分區,所以也有一些BIOS系統為了支持大容量硬盤而用GPT分區表取代MBR分區表

在MBR硬盤中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲著系統的引導程序)。但在GPT硬盤中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬盤的第一個扇區仍然用作MBR,之後才是GPT頭。

與 支持最大卷為2 TB(Terabytes)並且每個磁盤最多有4個主分區(或3個主分區,1個擴展分區和無限制的邏輯驅動器)的MBR磁盤分區的樣式相比,GPT磁盤分 區樣式支持最大卷為18 EB(Exabytes)並且每磁盤的分區數沒有上限,只受到操作系統限制(由於分區表本身需要占用一定空間,最初規劃硬盤分區時,留給分區表的空間決定 了最多可以有多少個分區,IA-64版Windows限制最多有128個分區,這也是EFI標準規定的分區表的最小尺寸)。與MBR分區的磁盤不同,至關 重要的平臺操作數據位於分區,而不是位於非分區或隱藏扇區。另外,GPT分區磁盤有備份分區表來提高分區數據結構的完整性。


EFI
可 擴展固件接口(英文名Extensible Firmware Interface 或EFI)是一種個人電腦系統規格,用來定義操作系統與系統韌體之間的軟件界面,為替代BIOS的升級方案。可擴展固件接口負責加電自檢(POST)、連 系操作系統以及提供連接操作系統與硬件的接口。
EFI最初由英特爾開發,現時由UEFI論壇來推廣與發展。


UEFI
是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬於open source,目前版本為2.1。

二 創建一個大於2TB的分區

MBR 與 GPT,都是分區格式,其中MBR最大分區小於等於2TB,而GPT分區沒有2TB的限制,理論最大分區18 EB!

現在我們知道了要創建一個大於2TB的分區,就不能使用MBR 格式的分區表了,而要使用GPT格式的分區表,我們最常用的fdisk 分區工具就愛莫能助了,需要使用linux 下的Parted分區工具!

測試環境為:

Dell R710 2u 服務器

cpu 2* XEON 5606

mem 16G

disk 6*1TB sas 7200rpm

raid raid level 5 perc 6i卡

rhel 6 64bit ,創建一個4TB大小分區

下面正式開始分區:

1 在使用parted 分區之前,我們先用fdisk -l 來查看下硬盤信息!

2 上邊的信息我們知道 /dev/sdb 4.6TB,現在使用parted 命令,如下圖。

3 進入parted 後,執行2,3,4,5,6,7,8,9,10,10,11步驟,指令下邊有解釋!

4 分區完成後使用print 可以看到剛才分區的信息!大小 4684GB

5 quit 用於退出parted環境,信息提示更新/etx/fstab!

6 再用fdisk -l 來查看下 sdb硬盤,現在已經有sdb1 分區了,註意system gpt!

7 parted 到這裏就完成了!

下面格式化/dev/sdb1 文件系統為EXT4:

1 執行 mkfs.ext4 /dev/sdb1 一路回車即可!

更新/etc/fstab

1.使用blkid 查看分區的uuid 如下圖,復制新分區/dev/sdb1的 UUID

2 將 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 掛載在 /data 目錄下!

3 至此全部完成, 下面檢查一下!

mount -a 重新掛載 /etc/fstab 文件中的記錄!

mount 可以發現 /dev/sdb1 已經掛載到 /data 目錄下了!

df -h 發現 /data 4.2TB

三 詳細介紹下Parted命令

[[email protected] ~]# parted --help
用法:parted [選項]... [設備 [命令 [參數]...]...]
將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。

選項:
-h, --help 顯示此求助信息
-i, --interactive 在必要時,提示用戶
-s, --script 從不提示用戶
-v, --version 顯示版本

命令:
檢查 MINOR 對文件系統進行一個簡單的檢查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR 將文件系統復制到另一個分區
help [COMMAND] 打印通用求助信息,或關於 COMMAND 的信息
mklabel 標簽類型 創建新的磁盤標簽 (分區表)
mkfs MINOR 文件系統類型 在 MINOR 創建類型為“文件系統類型”的文件系統
mkpart 分區類型 [文件系統類型] 起始點 終止點 創建一個分區
mkpartfs 分區類型 文件系統類型 起始點 終止點 創建一個帶有文件系統的分區
move MINOR 起始點 終止點 移動編號為 MINOR 的分區
name MINOR 名稱 將編號為 MINOR 的分區命名為“名稱”
print [MINOR] 打印分區表,或者分區
quit 退出程序
rescue 起始點 終止點 挽救臨近“起始點”、“終止點”的遺失的分區
resize MINOR 起始點 終止點 改變位於編號為 MINOR 的分區中文件系統的大小
rm MINOR 刪除編號為 MINOR 的分區
select 設備 選擇要編輯的設備
set MINOR 標誌 狀態 改變編號為 MINOR 的分區的標誌

註意

mklabel label-type 必須是一下這些類型:

* bsd

* loop (raw disk access)

* gpt

* mac

* msdos

* pc98

* sun

例:(parted) mklabel gtp 或者 (parted) mklabel msdos

mkpart(建立新分區)

格式:mkpart part-type fs-type start end

建立一個新的分區

part-type是以下類型之一 primary(主分區), extended(擴展分區), logical(邏輯分區)。

fs-type來指定文件系統,比如ext4 。

start和end是新分區開始和結束的具體位置。0表示起止,-1表示結尾;或者以mb表示或者GB表示!

添加磁盤操作