天天看點

存儲管理之磁盤分區

在使用一塊磁盤的之前,我們要對其進行分區處理,為的是優化這塊磁盤的I/O性能;為不同的目的配置設定不同的空間,來實作空間的配額限制,就好像Windows中的C、D盤那樣,給其一定的空間;進行高速修複和隔離系統檔案與其他檔案,還是像Windows中C槽和D盤那樣,當我們對D盤無論進行什麼樣的操作都不會影響到C槽,根據這種特性,我們就可以在一台電腦上安裝多個作業系統。

目前的分區大緻分為兩種,第一種是MBR分區,适合硬碟空間小于2TB的硬碟,全名為Master(Main) Boot Record——主引導記錄,這種方式起源于1982年。它的工作原理是在0磁道0扇區使用512Byte來記錄分區資訊,其中446Byte為boot loader——引導加載程式,64Byte為partition table——分區表,在這64Byte中又按照每16Byte分開,分别對應四個分區,這也是為什麼最多隻能有四個主分區的原因。四個分區可以都為主分區,也可以有擴充分區,在擴充分區中可以有更多的邏輯分區。但是擴充分區和主分區的數量加在一起不能超過四個。在為分區進行配置設定編号的時候主分區和擴充分區可以為1、2、3、4中的任意一個,但是邏輯分區必須從5開始,就算1、2、3、4并沒有全部被使用,邏輯分區也不能占用。最後還剩下2Byte的容量為結束标記——55AA。第二種是GPT分區,這種分區方式适用于空間大于2TB的硬碟。全名為:GUID Partition Table——GUID分區表。能夠支援128個分區。

當我們為Centos作業系統插上了一塊新的硬碟,系統是無法自動讀取的,必須由我們來告訴系統去讀取這塊磁盤,方法有兩種,第一種是重新開機系統,第二種是使用指令:

<code>~]</code><code># echo '- - -' &gt; /sys/class/scsi_host/host2/scan</code>

系統會将讀到的硬碟進行命名,如果是IDE類型的硬碟命名方式為hd[a-d],SCSI或SATA或SAS或USB類型的硬碟命名方式為sd[a-z],并将命名後的裝置儲存在“/dev/”目錄下。在這個目錄中儲存的都是裝置檔案,裝置類型分為塊裝置(用于随機通路的裝置,資料存儲和交換的機關是塊)和字元裝置(用于線性通路的裝置,資料的交換機關一般是字元)。我們可以使用“mknod”指令來建立這種裝置檔案。

在系統能夠讀取到這塊硬碟之後就可以對其進行分區了,分區的指令有fdisk和gdisk兩個,fdisk用于建立和管理MBR分區,gdisk用于建立和管理GPT分區,但是值得注意的是使用這兩種指令對磁盤進行分區的時候如果磁盤中已經存在分區,則再次分區的時候分區的資訊即便是儲存了,也不會被核心重新讀取。如果要讓核心識别此類分區,要麼重新開機計算機,要麼使用partprobe指令或者partx指令,強制核心重讀分區表,不過不同版本的系統上使用的指令有所不同,比如說在CentOS5或CentOS7上使用“partprobe -a [device]”指令,在CentOS6或CentOS7上使用“partx -a [device]”或“kpartx -af [device]”指令。

接下來具體的說一說fdisk這個指令

fdisk - Partition table manipulator for Linux

fdisk -l [device...]

fdisk device——對于指定裝置進行分區管理

在使用這個指令後會進入fdisk的界面,如下圖:

************************************

<a href="https://s4.51cto.com/wyfs02/M01/97/34/wKioL1kqsUrT8YIJAAEm05KjS4w530.jpg-wh_500x0-wm_3-wmp_4-s_1757452695.jpg" target="_blank"></a>

圖1:先使用“fdisk -l”指令檢視目前系統中能夠讀取到的磁盤

<a href="https://s3.51cto.com/wyfs02/M02/97/33/wKiom1kqsVni7M2NAABpjoKODfI460.jpg-wh_500x0-wm_3-wmp_4-s_2517207455.jpg" target="_blank"></a>

圖2:使用“fdisk 磁盤名(絕對路徑)”指令進入一個磁盤的分區界面

在進入fdisk指令界面後就可以使用以下子指令:

d   delete a partition(删除一個分區)

l   list known partition types(顯示分區類型)

m   print this menu(列印幫助菜單)

n   add a new partition(添加新的分區)

e   extended(添加擴充分區)

p   primary partition (1-4)(添加主分區)

l  logical (添加邏輯分區)

p   print the partition table(列印分區表)

q   quit without saving changes(隻退出,不儲存)

t   change a partition's system id(改變磁盤ID,進而改變磁盤類型)

w   write table to disk and exit(儲存并退出)

在使用這個指令的時候,有些參數是預設的,直接回車就可以,預設的參數會在提示的那句話的最後給出(就是括号中的),這樣就避免了我們自己計算出錯的事情。下面舉一個例子,對我系統中的“/dev/sdb”進行分區:

<a href="https://s4.51cto.com/wyfs02/M02/97/33/wKiom1kqsWzBPT1xAACEyygNBus567.jpg-wh_500x0-wm_3-wmp_4-s_721518292.jpg" target="_blank"></a>

圖3:在這裡使用n指令進入添加分區的子界面

<a href="https://s3.51cto.com/wyfs02/M02/97/34/wKioL1kqsXiDKhboAABe5Hfq1vk037.jpg-wh_500x0-wm_3-wmp_4-s_414745296.jpg" target="_blank"></a>

圖4:接着上面,在這幾步中直接回車即可,使用的預設值分别為p(建立主分區)、1(配置設定磁盤号為1)、2048(此分區從2048單元開始)

<a href="https://s4.51cto.com/wyfs02/M02/97/34/wKioL1kqsYXBucvyAABSM1yTDcw316.jpg-wh_500x0-wm_3-wmp_4-s_502743226.jpg" target="_blank"></a>

圖5:接下來會出現這個界面,在這裡就需要注意了,預設值是将所有的空間配置設定給這個分區,但是我們要配置設定多個分區,是以不能使用預設值。我們可以輸入的方法有多種,第一種是直接輸入扇區值,也就是上一步的開始空間加上你想要配置設定的空間大小。相比于第一種,第二種要相對簡單,隻要我們清楚的知道我們想配置設定的大小,然後使用“+空間”即可,機關分别為K,M,G。在這裡,我想給分區配置設定3個G的大小,就直接寫上“+3G”即可

<a href="https://s1.51cto.com/wyfs02/M00/97/33/wKiom1kqsZPQaxxmAAA5W1f3PLg507.jpg-wh_500x0-wm_3-wmp_4-s_1018486692.jpg" target="_blank"></a>

圖6:之後又會跳回之前的指令界面,如果想配置設定的分區已經配置設定完成,那麼直接輸入“w”指令儲存退出即可,出現如圖的回顯,表示分區成功。如果分區不對,不想儲存,那麼輸入“q”指令即可不儲存直接退出。

由于“fdisk”指令的先操作後執行的模式,是以這個指令更為安全,給與我們更大的容錯率,與此相對的“parted”則是實時生效,也就是說每做一步操作都會實時的作用于目前的磁盤,這樣我們如果操作有誤,那麼後悔的代價就十分大了。這個指令暫時不做介紹,大緻的使用方法如下:

parted - a partition manipulation program

parted [options] [device [command [options...]...]]

parted /dev/sdb mklabel gpt|msdos

parted /dev/sdb print

parted /dev/sdb mkpart primary 1 200

parted /dev/sdb rm 1

本文轉自正經的青年51CTO部落格,原文連結:http://blog.51cto.com/11142243/1930480 ,如需轉載請自行聯系原作者

繼續閱讀