openstack在cinder部分設計的磁盤細節

一、LVM簡介
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。

與傳統的磁盤與分區相比,LVM爲計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的爲應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也允許按用戶組對存儲捲進行管理,允許管理員用更直觀的名稱(如"sales'、 'development')代替物理磁盤名(如'sda'、'sdb')來標識存儲卷。

如圖所示LVM模型:


由四個磁盤分區可以組成一個很大的空間,然後在這些空間上劃分一些邏輯分區,當一個邏輯分區的空間不夠用的時候,可以從剩餘空間上劃分一些空間給空間不夠用的分區使用。


二、 LVM基本術語
前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。首先我們討論以下幾個LVM術語:

物理存儲介質(The physical media):這裏指系統的存儲設備:硬盤,如:/dev/hda1、/dev/sda等等,是存儲系統最低層的存儲單元。
物理卷(physical volume):物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
卷組(Volume Group):LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
邏輯卷(logical volume):LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
PE(physical extent):每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。
LE(logical extent):邏輯卷也被劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,並且一一對應。

簡單來說就是:

PV:是物理的磁盤分區
VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解爲一個倉庫或者是幾個大的硬盤。
LV:也就是從VG中劃分的邏輯分區

如下圖所示PV、VG、LV三者關係:



三、 安裝LVM
首先確定系統中是否安裝了lvm工具:
    [root@www root]# rpm –qa|grep lvm
    lvm-1.0.3-4
如果命令結果輸入類似於上例,那麼說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網絡下載或者從光盤裝LVM rpm工具包。

四、 創建和管理LVM
要創建一個LVM系統,一般需要經過以下步驟:
1、 創建分區
使用分區工具(如:fdisk等)創建LVM分區,方法和創建其他一般分區的方式是一樣的,區別僅僅是LVM的分區類型爲8e。如下列圖所示:


查看磁盤分區表


使用fdisk創建分區,根據設備文件的絕對路徑(/dev/hda)進入分區管理


一定要指定分區的格式爲8e,這是LVM的分區格式


2、 創建PV



3、 創建VG


創建完成VG之後,才能從VG中劃分一個LV。


4、 創建LV

創建了一個名字爲lvData,容量大小是100M的分區,其中:-L:指定LV的大小 -n:指定LV的名。Vo1Group00:表示從這個VG中劃分LV;



5、LV格式化及掛載
下一步需要對LV進行格式化(使用mksf進行格式化操作),然後LV才能存儲資料

將格式化後的LV分區掛載到指定的目錄下,就可以像普通目錄一樣存儲數據了


掛載之後,可以看到此LV的容量。
如果要在系統啓動的時候啓動LV,最好是將lvData寫入fstable 文件中,如下所示:


使用Vim編輯器,打開/etc/fstab,在最後一行添加如圖中所示,其中/dev/VolGroup00/lvData指定需要掛載的分區LV,/root/test指定要掛載的目錄(掛載點),ext3分區文件系統格式,其它使用默認即可


擴容當前分區
一、首先創建一塊新的分區:
fdisk  /dev/hda
n
l        #選擇邏輯分區,如果沒有,則首先創建擴展分區,然後再添加邏輯分區(硬盤:最多四個分區P-P-P-P或P-P-P-E)
6        #分區號(從5開始),/dev/hda6
t      8e   #分區類型8e表示LVM分區
w        #寫入分區表
partprobe   #重讀分區表
mkfs –t ext3 /dev/hda6 #格式化
partx /dev/hda #查看當前硬盤的分區表及使用情況

二、創建PV,擴容VG,LV
pvcreate /dev/hda6
vgdisplay #查看當前已經存在的VG信息,以存在VG:VolGroup00爲例
vgextend VolGroup00 /dev/hda6    #擴展VolGroup00
lvdisplay #查看已經存在的LV信息,以存在LV:LogVol01爲例
lvextend –L 1G /dev/VolGroup00/LogVol01 #擴展LV
resize2fs /dev/VolGroup00/LogVol01 #執行該重設大小,對於當前正在使用的LogVol01有效
df –h #查看掛載情況,已經擴容。



第二部分
本帖最後由 pig2 於 2015-2-16 22:55 編輯
問題導讀

1.設備掛載需要滿足哪3個條件?
2. df -h命令的作用是什麼?
3. df -h命令下顯示參數的含義是什麼?
4.fdisk -l的作用是什麼?參數的含義是什麼?






相關篇章:openstack存儲基礎2:Linux LVM硬盤管理及LVM擴容



一、 磁盤管理的基本概念
  linux系統中所有的硬件設備都是通過文件的方式來表現和使用的,我們將這些文件稱爲設備文件,在Linux下的/dev目錄中有大量的設備文件,根據設備文件的不同,又分爲字符設備文件和塊設備文件。
  字符設備文件的存取是以字符流的方式來進行的,一次傳送一個字符。常見的有打印機,終端(TTY)、繪圖儀和磁帶設備等等,字符設備文件有時也被稱爲“raw” 設備文件。
  塊設備文件是以數據塊的方式來存取的,最常見的設備就是磁盤。系統通過塊設備文件存取數據的時候,先從內存中的buffer中讀或寫數據。而不是直接傳送數據到物理磁盤。這種方式有效的提高了磁盤的I/O性能。
  
1.1 磁盤設備在linux下的表示方法
  現在常見的磁盤類型有IDE並口硬盤、STAT串口硬盤以及SCSI硬盤,不同類型的硬盤在linux下對應的設備文件名稱不盡相同,linux下磁盤設備常用的表示方案有兩種:
方案一:
  主設備號+次設備號+磁盤分區編號
  對於IDE硬盤:hd[a-z]x
  對於SCSI硬盤:sd[a-z]x
方案二:
  (主設備號+[0-n],y)
  對於IDE硬盤:(hd[0-n],y)
  對於SCSI硬盤:(sd[0-n],y)

  主設備號代表設備的類型,可以唯一地確定設備的驅動程序和界面,主設備號相同的設備是同類型設備,即,使用同一個驅動程序,比如hd表示IDE硬盤,sd表示SCSI硬盤,tty表示終端設備等。

  次設備號代表同類設備中的序號,“a-z”就表示設備的序號。如/dev/hda表示第一塊IDE硬盤,/dev/hdb表示第二塊IDE硬盤。同理,/dev/sda以及/dev/sdb分別表示第一、第二塊SCSI硬盤。在有些情況下,系統只有一塊硬盤,但是設備文件卻顯示爲hdb,這與硬盤的跳線有關,只用知道設備表示的意思就行了。

  磁盤分區編號,用“x”表示在每塊磁盤上劃分的磁盤分區編號。在每塊硬盤上可能會劃分一定的分區,分區的意思類似與windows中C盤、D盤的概念,針對每個分區,linux用/dev/hdax或者/dev/sdbx表示,這裏的“x”代表第一塊IDE硬盤的第“x”個分區和第二塊SCSI硬盤的第“x”個分區。

  除了用“a-z”表示同類硬盤的序號,也可以用“0-n”表示硬盤的序號,第二種方案中的“y”是一個數字,從“1”開始,表示磁盤分區編號。比如,(hd0,8)與hda7是等同的,表示第一塊IDE硬盤的第七個分區,而(sd4,3)等同與sde2,表示第5塊SCSI硬盤的第二個分區。

1.2 設備的掛載與使用
  在windows下,用戶如果使用某些設備,如光盤或者軟盤時,只需將設備放入相應的驅動器,然後系統自動加載,就可以通過對應的設備盤符,如G(光驅所在的盤符)盤、A盤(軟驅盤符)來讀取數據,但是在linux系統下,沒有盤符的概念,對應的是磁盤分區,對任何設備的使用都需要通過掛載(mount)的方式實現,要完成掛載,需要滿足3個條件:

  掛載磁盤分區的文件系統類型
  要掛載分區對應的設備文件
  已經建立好的一個目錄作爲掛載點

  對於磁盤分區的文件系統,linux下最常用的是ext2/ext3,關於如何在磁盤建立文件系統,在下個章節會有詳細講述。
掛載分區對應的設備文件在上面已經講述,linux下所有設備文件存放在/dev目錄下,因此對應的設備文件一般是/dev/hda1、/dev/sdc6等等。

  掛載點就是在linux上建立的一個目錄,通過這個目錄建立了操作系統和磁盤存取的入口,也就是說將設備掛載到這個目錄後,對這個目錄的任何操作就相當於對設備的操作。linux系統默認的掛載點目錄爲/mnt或者/media,我們也可以建立自己的掛載點。

  在進行掛載設備前必須注意:用pwd命令查看當前所在的目錄是否是掛載點目錄下,如果是,請用cd命令切換到其它目錄下,不然mount時會提示“device busy”的錯誤。

  如果想退出某個設備,必須進行卸載操作,卸載命令爲umount,語法爲umount 掛載點,例如要想彈出光驅,按光驅彈出按鈕是沒用的,只有先進行卸載(umount  /mnt/cdrom)操作,然後才能彈出光驅。

  請看下面的一個例子,通過df命令查看當前系統的分區情況:
[root@data1 ~]# df -h
Filesystem            Size   Used   Avail   Use%    Mounted on
/dev/sda5             15G   429M    14G      4%         /
/dev/sda9             328G  195M    311G     1%        /oracle
/dev/sda8             7.6G   146M   7.1G     2%       /tmp
/dev/sda6             9.5G   151M   8.9G     2%       /home
/dev/sda3             15G    3.8G    9.7G    29%      /usr
/dev/sda2             15G    309M   14G      3%       /var
/dev/sda1             289M   16M     259M    6%       /boot
tmpfs                 3.9G    0     3.9G     0%      /dev/shm
/dev/sdb1             86G    9.8G    76G     2%      /mnt/stor
  根據命令的輸出我們可以知道:
  左邊第一列“Filesystem”項顯示了每個分區對應的設備文件名,由設備文件名可知,此係統有兩塊硬盤,並且是SCSI硬盤,分別是/dev/sda和/dev/sdb。在/dev/sda設備上又劃分了7個磁盤分區,而/dev/sdb設備上僅僅劃分了一個分區。
  第二列“Size”項顯示了每個磁盤分區空間的大小。
  第三列“Used”項顯示了已經使用的磁盤空間大小。
  第四列“Avail”項顯示了可用的磁盤空間大小。
  第五列“Use%”項顯示了可用磁盤空間佔用磁盤分區總空間的百分比。
  最後一列“Mounted on”項顯示了磁盤分區對應的掛載點目錄名。
  如果我們要卸載/dev/sdb1設備,只需執行umount /mnt/stor即可,當然卸載前要保證此分區的所有程序沒有在使用中。

1.3 磁盤分區的劃分標準
   在第二章安裝操作系統時,我們就詳細講述瞭如何給磁盤進行分區,因爲分區對於linux系統的穩定和安全非常重要,合理正確的劃分磁盤分區有助於系統的穩定運行和數據的安全保障,下面我們介紹如何合理的劃分磁盤分區以及這種劃分帶來的好處。

磁盤的分區由主分區、擴展分區和邏輯分區組成,在一塊硬盤上,主分區的最大個數是4個,其中擴展分區也算一個主分區,在擴展分區下可以建立很多邏輯分區,所以主分區(包括擴展分區)範圍是從1-4,邏輯分區從5開始,對於邏輯分區,Linux 規定它們必須建立在擴展分區上,而不是建立在主分區上。

  主分區的作用是用來啓動操作系統的,主要存放操作系統的啓動或引導程序,因此建議操作系統的引導程序都放在主分區,比如linux的/boot分區,最好放在主分區上。擴展分區只不過是邏輯分區的“容器”。實際上只有主分區和邏輯分區是用來進行數據存儲的,因而可以將數據集中存放在磁盤的邏輯分區中,由於磁盤分區作用的不同,linux對主分區大小也有限制,因此,對於大量的數據,一定要存儲在邏輯分區中。

  經過上面的闡述,一個合理的分區方式爲:主分區在前,擴展分區在後,然後在擴展分區中劃分邏輯分區;主分區的個數加上擴展分區個數要控制在四個之內。

  通過fdisk –l命令可以顯示當前系統分區的所有信息:
[root@data1 ~]# fdisk -l
Disk /dev/sda: 437.9 GB, 437998583808 bytes
255 heads, 63 sectors/track, 53250 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        1950    15358140   83  Linux
/dev/sda3            1951        3862    15358140   83  Linux
/dev/sda4            3863       53250   396709110    5  Extended
/dev/sda5            3863        5774    15358108+  83  Linux
/dev/sda6            5775        7049    10241406   83  Linux
/dev/sda7            7050        8069     8193118+  82  Linux swap / Solaris
/dev/sda8            8070        9089     8193118+  83  Linux
/dev/sda9            9090       53250   354723201   83  Linux
Note: sector size is 4096 (not 512)
Disk /dev/sdb: 943.7 GB, 943718400000 bytes
255 heads, 63 sectors/track, 14341 cylinders
Units = cylinders of 16065 * 4096 = 65802240 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       14341   921552408   83  Linux

  對於輸出每項的含義解釋如下:
   Heads代表磁盤面數;sectors代表扇區數;每個扇區大小爲0.5k,cylinders代表柱面數,因此,硬盤空間總大小=磁面個數*(扇區個數*每個扇區的大小512)*柱面個數。

  左邊第一列“Device”項顯示了磁盤分區對應的設備文件名。
  第二列“Boot”項顯示是否爲引導分區,上面的/dev/sda1就是引導分區。
  第三列“Start”項表示每個磁盤分區的起始位置,以柱面爲計數單位。
  第四列“End”項顯示了每個磁盤分區的終止位置,以柱面爲計數單位。
  第五列“Blocks”項顯示了磁盤分區的容量,以K爲單位。
  第六列“Id”項顯示了磁盤分區對應的ID,根據分區的不同,分區對應的ID號也不同,linux下用83代表主分區和邏輯分區,用5代表擴展分區,而用82代表交換分區。用7代表NTFS分區等等。
  第七列“System”項的含義與第六列基本相同,都是表示不同的分區類型。
  由此可知,此係統從/dev/sda1到/dev/sda4爲主分區,而/dev/sda4爲擴展分區,在/dev/sda4下又建立了/dev/sda5到/dev/sda9共5個邏輯分區,其中/dev/sda7爲交換分區。

二、 利用fdisk工具劃分磁盤分區
  fdisk是linux下一款功能強大的磁盤分區管理工具,可以觀察硬盤的使用情況,也可以對磁盤進行分割,linux下類似與fdisk的工具還有cfdisk、parted等,它們都有各自的優點,本文推薦fdisk,因爲它簡單容易上手,是各個linux發行版最經常使用的磁盤分區工具,下面具體介紹這個工具的使用。

2.1  fdisk參數含義介紹
  使用格式:
fdisk [-l] [-b SSZ] [-u] device
  選項含義:
  -l:查詢指定設備的分區狀況,如:fdisk –l  /dev/sda,如果“-l”選項後面不加任何設備名稱,則查看系統所有設備的分區情況。
  -b SSZ:將指定的分區大小輸出到標準輸出上,單位爲區塊。
  -u:一般與“-l”選項配合使用,顯示結果將用扇區數目取代柱面數目,用來表示每個分區的起始地址。
  device:要顯示或操作的設備名稱。
  fdisk的使用分爲兩個部分,查詢部分和交互操作部分。通過fdisk device即可進入命令交互操作界面:然後輸入m顯示交互操作下所有可使用的命令。
[root@localhost /]# fdisk /dev/sdb
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
  對於交互界面下的命令含義解釋如下:
  a:設定硬盤啓動區
  b:編輯一個BSD類型分區
  c:編輯一個DOS兼容分區
  d:刪除一個分區
  l:查看指定分區的分區表信息
  m:顯示fdisk每個交互命令的詳細含義
  n:增加一個新的分區
  o:創建一個DOS分區
  p:顯示分區信息
  q:退出交互操作,不保存操作的內容
  s:創建一個空的Sun分區表
  t:改變分區類型
  v:校驗硬盤分區表
  w:寫分區表信息到硬盤,保存操作退出
  x:執行高級操作模式。
  交互命令很多,但是經常用到的只有d、l、m、n、p、q、w這幾個選項,只要熟練掌握這幾個參數的含義和用法,簡單的磁盤劃分操作不成問題。

2.2  fdisk實例講解
  爲了更清楚的介紹fdisk的使用方法,接下來我們通過實例講解的方式,從磁盤分區的創建顯示、修改、刪除3個方面介紹fdisk的使用方法和技巧。

1.創建磁盤分區
  在現有的linux系統上增加了一塊硬盤,系統對應的設備名爲/deb/sdb,下面通過fdisk命令對這個磁盤進行分區劃分,請看下面的實例講解:

[root@localhost /]# fdisk /dev/sdb
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n  #輸入“n”創建一個新的磁盤分區
Command action
   e   extended 
#這裏的“e”代表創建一個擴展分區
   p   primary partition (1-4)
#這裏的“p”代表創建一個主分區
p  #首先創建一個主分區
Partition number (1-4): 
Value out of range.
Partition number (1-4): 1      #主分區的編號從1到4,這裏輸入1
First cylinder (1-1044, default 1):   #這裏指定分區的起始值,以柱面爲單位計數,默認從1開始,直接回車即可。
Using default value 1  
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): +1024M
#這裏是指定分區大小,直接輸入需要的分區大小即可,例如“+1024M”表示此分區大小爲1024M,“+8G”表示此分區大小爲8G。
Command (m for help): p     #這裏輸入“p”顯示分區情況,從下面可以看到,此分區已經建立起來。
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
Command (m for help): n   #繼續創建一個分區
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (126-1044, default 126): 
Using default value 126
Last cylinder or +size or +sizeM or +sizeK (126-1044, default 1044): +1024M
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e  #這裏輸入“e”創建一個擴展分區

Partition number (1-4): 3   #由於擴展分區也屬於主分區,而分區號1和2已經被使用,因此這裏輸入3。當然輸入4也可以,要遵循的一個原則是:輸入的分區號碼必須在1-4之間,而且號碼未被使用。

First cylinder (251-1044, default 251):  #這裏仍然用缺省的輸入值,直接回車即可。
Using default value 251
Last cylinder or +size or +sizeM or +sizeK (251-1044, default 1044):  #根據磁盤分區的劃分標準,如果要建立擴展分區,最好將磁盤所有剩餘空間都分給了擴展分區,這裏直接輸入回車,磁盤剩餘空間全部分給擴展分區。

Using default value 1044
Command (m for help): p #從下面可以看出,我們已經劃分了兩個主分區和一個擴展分區。

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
Command (m for help): n
Command action
   l   logical (5 or over)   #這裏的“l”表示創建一個邏輯分區
   p   primary partition (1-4)   #這裏的“p”表示創建一個主分區,此時我們已經不能創建主分區了,因爲所有剩餘的磁盤空間都已經分給擴展分區。


l  #這裏輸入“l”創建一個邏輯分區

First cylinder (251-1044, default 251):   #這裏回車即可
Using default value 251
Last cylinder or +size or +sizeM or +sizeK (251-1044, default 1044): +1024M    #這裏輸入要創建的邏輯分區大小,含義與上面創建主分區相同。
Command (m for help): p   #顯示已經創建的磁盤分區情況,從下面可以看出,已經創建了兩個主分區和一個擴展分區,在擴展分區下創建了一個邏輯分區。

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
/dev/sdb5             251         375     1004031   83  Linux
Command (m for help): n #接下來繼續創建一個邏輯分區
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (376-1044, default 376):  #輸入回車即可
Using default value 376
Last cylinder or +size or +sizeM or +sizeK (376-1044, default 1044):  #這裏仍輸入回車,將剩餘的所有磁盤空間給此邏輯分區。
Using default value 1044
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805   5  Extended
/dev/sdb5             251         375     1004031   83  Linux
/dev/sdb6             376        1044     5373711   83  Linux

2.修改磁盤分區類型
  Linux下根據id值區分不同的磁盤分區類型,fdisk默認創建的主分區和邏輯分區類型爲linux,對應的ID爲83,擴展分區默認爲Extended,對應的ID爲5,如果我們想要修改分區類型或者創建一個非默認的分區類型,可以用fdisk的交互參數“t”來指定,緊接上面的實例,繼續介紹如下:
[root@localhost /]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
/dev/sdb5             251         375     1004031   83  Linux
/dev/sdb6             376        1044     5373711   83  Linux
Command (m for help): t  #輸入t改變磁盤分區的類型
Partition number (1-6): 5  #要改變的磁盤分區對應的分區號,這裏輸入的5代表/dev/sdb5
Hex code (type L to list codes): L  #通過“l”可以查看分區類型對應的ID值
0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot   
1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris        
2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data    
7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access     
b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor      
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT        
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep        
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT            
1c  Hidden W95 FAT3 75  PC/IX          
Hex code (type L to list codes): 7  #從上面的輸出可知,7對應的分區類型爲HPFS/NTFS
Changed system type of partition 5 to 7 (HPFS/NTFS)
Command (m for help): p #可以看到,分區類型已經改變。
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
/dev/sdb5             251         375     1004031    7  HPFS/NTFS
/dev/sdb6             376        1044     5373711   83  Linux
3.分區的刪除
刪除分區的fdisk參數是“d”,然後指定要刪除的分區號,此分區就被刪除了。
[root@localhost /]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
/dev/sdb5             251         375     1004031    7  HPFS/NTFS
/dev/sdb6             376        1044     5373711   83  Linux
Command (m for help): d  #這裏輸入刪除分區的指令
Partition number (1-6): 6  #這裏輸入6表示要刪除的分區是/dev/sdb6
Command (m for help): p  #可以看到,/dev/sdb6已經被刪除
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         125     1004031   83  Linux
/dev/sdb2             126         250     1004062+  83  Linux
/dev/sdb3             251        1044     6377805    5  Extended
/dev/sdb5             251         375     1004031    7  HPFS/NTFS

4.保存分區設置
在所有分區操作完成後,輸入fdisk的交互指令“w”即可保存分區設置,如果不保存分區設置而退出的話,輸入“q”指令,如下所示:
[root@localhost /]# fdisk /dev/sdb
Command (m for help): w  #保存分區設置退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
  到此爲止,磁盤分區劃分完畢。但是這些分區還是不能使用的,還需要將分區格式化爲需要的文件系統類型,linux下默認支持ext2/ext3、vfat等文件系統,這裏將分區格式化爲ext3文件系統,然後通過mkfs.ext3命令格式化分區/dev/sdb1,操作如下:
[root@localhost /]# mkfs.ext3 /dev/sdb1 
  關於mkfs.ext3命令我們會在下一章進行詳細的講述,這裏不在多說。
  分區格式化完畢,最後一步是掛載(mount)此設備,操作如下:

[root@localhost /]# mkdir /data
[root@localhost /]# mount /dev/sdb1 /data
[root@localhost /]# df|grep /data
/dev/sdb1               988212     17652    920360   2% /data

  在上面操作中,我們首先建立了一個掛載目錄/data,然後通過mount命令將設備掛載到了對應的目錄下,掛載成功後,通過df命令就可以看到對應的分區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章