1. 程式人生 > >linux硬碟的分割槽、格式化、掛載以及LVM

linux硬碟的分割槽、格式化、掛載以及LVM

原文地址:http://www.cnblogs.com/thinksasa/archive/2013/02/23/2923375.html

多塊硬碟的組合:

  硬碟分兩種:ide和scsi。

ide硬碟:

/dev/hda  第一塊IDE硬碟

/dev/hdb  第二塊IDE硬碟

...

/dev/hdn  第N塊IDE硬碟

scsi硬碟:

/dev/sda  第一塊SCSI硬碟

/dev/sdb  第二塊SCSI硬碟

...

/dev/sdn  第N塊SCSI硬碟

  硬碟分割槽:

/dev/hda1  第一個分割槽

/dev/hda2  第二個分割槽

...

/dev/hdan  第N個分割槽

  分割槽的三種情況:

  一、主分割槽:一塊硬碟只能分四個主分割槽;

  二、擴充套件分割槽:將一個主分割槽拿出來做擴充套件分割槽;

  三、邏輯分割槽:在一個擴充套件分割槽裡再分的分割槽。

  分割槽表:用來記錄有幾個分割槽。在MBR(主引導記錄,位於一個磁碟的0柱面,0扇區,0磁軌)就是一個磁碟最開始的地方64byte個地方,記錄一個分割槽需要使用16個位元組。

  光碟外設:

  /dev/cdrom

  IDE:

  /dev/hd1

  /dev/hd2

  SCSI:

  /dev/scd1

  /dev/scd2

  軟盤:

  /dev/fd1

  /dev/fd2

  硬碟:

  /dev/hda  /dev/hda1

  /dev/sda  /dev/sda1

  U盤:(預設為scsi硬碟)

  /dev/sdx   (abcdef)     

  /dev/sda

  /dev/sdb...

  分割槽方法:

  fdisk /dev/sdb:進入後按命令提示操作進行分割槽(p:列印分割槽表,n:新建分割槽->p/e->+10G分配分割槽大小)。

  格式化:

  分割槽後,只有格式化了才能使用。

  windows系統下,檔案系統是FAT32或者NTFS。但是在linux下是ext(後續升級到ext2,ext3)。

  相關命令:使用fdisk -l可以檢視到系統中連線的外部裝置,比如有硬碟,U盤。

       使用df -l可以檢視已經掛載上的分割槽。

  注:fdisk -T(T要大寫)比fdisk多一個顯示引數:掛載點。

  Disk /dev/sdb doesn't contain a valid partition table:表示第二塊SCSI硬碟沒有包含一個有效的分割槽表。

  格式化方法:mkfs -t ext4 /dev/sdb1

  掛載:

  掛載方法:mount /dev/sdb1 /mnt/one(將/dev/sdb1掛載到/mnt/one目錄上,相當於訪問/mnt/one實際上在訪問/dev/sdb1)。

  注:在windows下接入外設(如插入U盤)就能自動識別,退出的時候,只要點選右下角的刪除硬體即可。但是linux系統下,接入外設必須手動掛載。

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工具:

[[email protected] /]# rpm -qa|grep lvm
lvm2-2.02.87-6.el6.x86_64
lvm2-libs-2.02.87-6.el6.x86_64

如果命令結果輸入類似於上例,那麼說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網路下載或者從光碟裝LVM rpm工具包。
四、建立和管理LVM
       要建立一個LVM系統,一般需要經過以下步驟: 
1、 建立分割槽

使用分割槽工具(如:fdisk等)建立LVM分割槽,方法和建立其他一般分割槽的方式是一樣的,區別僅僅是LVM的分割槽型別為8e。如下列圖所示:

clip_image006[8]

檢視磁碟分割槽表

clip_image008[6]

使用fdisk建立分割槽,根據裝置檔案的絕對路徑(/dev/hda)進入分割槽管理

clip_image010[6]

clip_image012[6]

一定要指定分割槽的格式為8e,這是LVM的分割槽格式

2、 建立PV

clip_image014[6]

3、 建立VG

clip_image016[6]

clip_image018[6]

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

4、 建立LV

clip_image020[6]

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

5、LV格式化及掛載

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

clip_image022[6]

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

clip_image024[6]

掛載之後,可以看到此LV的容量。

如果要在系統啟動的時候啟動LV,最好是將lvData寫入fstable 檔案中,如下所示:

clip_image026[6]

使用Vim編輯器,開啟/etc/fstab,在最後一行新增如圖中所示,其中/dev/VolGroup00/lvData指定需要掛載的分割槽LV,/root/test指定要掛載的目錄(掛載點),ext3分割槽檔案系統格式,其它使用預設即可

 LVM備註:

擴容當前分割槽

一、首先建立一塊新的分割槽:

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 #檢視掛載情況,已經擴容

LVM操作的相關命令:    

fdisk -l :檢視系統中都認到了那些物理硬碟     
pvdisplay:檢視系統中已經建立好的物理卷     
pvcreate:建立一個新的物理卷     
pvremove:刪除一個物理卷(也就是從物理卷中刪除一個LVM標籤)     
vgdisplay:檢視系統中的卷組     
vgcreate:建立一個新的卷組     
vgreduce:從卷組中刪除一個物理卷(也就是縮小卷組)     
vgremove:刪除一個卷組     
lvdisplay:檢視系統中已經建立好的邏輯卷     
lvcreate:建立一個新的邏輯卷     
lvreduce:縮小邏輯卷(也就是從一個邏輯卷中減少一些LE)     
lvremove:從系統中刪除一個邏輯卷     
mkfs:基於邏輯卷建立一個相應型別的檔案系統     
mkdir -p $mount_piont:建立一個掛載目錄     
建立好的檔案系統位於:     /dev/$create_vg_name/$lv_name     
mount /dev/$create_vg_name/$lv_name $mount_piont:掛載檔案系統

vgscan:讀取系統中建立的所有卷組    
vgchange -a y :啟用所有卷組  (開機執行,redhat可在/etc/rc.d/rc.sysinit系統啟動初始化腳本里可以找到)    vgchange -a n :關閉所有卷組(提示:必須在umount所有的檔案系統後,才能成功執行

裸裝置使用:    
1.先lvreate    
2. raw /dev/raw/raw0 /dev/mapper/vgname-lvname    
3.修改 /etc/sysconfig/rawdevices,新增:           /dev/raw/raw0 /dev/mapper/vgname-lvname     
4.執行命令; service rawdevices restart,使得/etc/sysconfig/rawdevices檔案中的裸裝置配置生效     
5.執行/sbin/schkconfig  rawdevices on 使得系統重啟後,裸裝置能自動載入     
6.修改裸裝置的屬主,使得相應許可權的使用者對裸裝置有讀寫許可權       chown -R owner:group  /dev/raw/raw0     
7.將修改裸裝置屬主修改命令加入到系統啟動執行指令碼/etc/rc.local中,使得系統啟動後裸裝置的屬主保持不變.

linux掛載原有LVM盤

範例:

1、pvs
  [[email protected] yuanbor]# /sbin/pvs 檢查是否有重名的VG組
  2、vgrename
  [[email protected] yuanbor]#/sbin/vgrename [VG UUID] /dev/VolGroup01 #將重複的VG組 根據UUID改為 VolGroup01
  [[email protected] yuanbor]# /sbin/pvs #檢查 修改結果
  3、lvscan
  [[email protected] sdb3]# /sbin/lvscan #檢查 邏輯卷狀態
  可以看到新修改的VolGroup01是inactive狀態。
  4、vgchange
  [[email protected] sdb3]# /sbin/vgchange -ay /dev/VolGroup01 #啟用改名後的VolGroup01
  [[email protected] mnt]# /sbin/lvscan #檢查啟用結果
  5、mount
  [[email protected] mnt]# mount /dev/VolGroup01/LogVol00 /mnt/sdb3 #掛載邏輯卷 掛載點可以自定義

注意:1不一定能夠顯示錯誤,如果不報錯可以使用vgdisplay命令查詢 VG UUID
找到後繼續 2