linux磁盤分區主要分為基本分區(primary partion)和擴充分區(extension partion)兩種,基本分區和擴充分區的數目之和不能大於四個。且基本分區可以馬上被使用但不能再分區。擴充分區必須再進行分區后才能使用,也就是說它必須還要進行二次分區。在 Linux 中,每一個硬件設備都映射到一個系統的文件,對於硬盤、光驅等 IDE 或 SCSI 設備也不例外。Linux把各種 IDE 設備分配了一個由 hd 前綴組成的文件;而對於各種 SCSI 設備,則分配了一個由 sd 前綴組成的文件。
分區簡介
磁盤分區表
磁盤分區
嵌入式分區
Linux分區簡介
Linux的分區沒有像Windows一樣有什么C、D、E、F盤了。Linux中是文件目錄掛載點的概念,簡單點說就是按文件夾分區,比如我設置/home文件夾就是一個掛載點,占了10個G的空間,那就可以理解有一個10G大小的/home分區。而且Linux可以有未分配空間保留,那我們這些新手當然要留出一些空間留給以后的練習了。
下面簡單給大家介紹一下常見掛載點:
一般來說,在linux系統中都有最少兩個掛載點,分別是/(根目錄)及 swap(交換分區),其中,/ 是必須的;
建議掛載的幾大目錄:
/-------根目錄,唯一必須掛載的目錄。不要有任何的猶豫,選一個分區,掛載它!(在絕大多數情況下 有2G的容量應該是夠用了。當然了,很多東西都是多多益善的)
swap----交換分區,可能不是必須的,不過按照傳統,並且照顧到您的安全感,還是掛載它吧。它的容量 只要約等於您的物理內存就可以了,如果超過了您物理內存兩倍的容量,那絕對是一種浪費。
/home---這是您的家目錄,通常您自己創建的文件,都保存在這里,您最好給它分配一個分區
/usr----應用程序目錄。大部分的軟件都安裝在這里,如果您計划安裝許多軟件,建議也給它分配一個分區
/var----如果您要作一些服務器方面的應用,可以考慮給它分配一個較大的分區
/boot---如果您的硬盤不支持LBA模式(不太可能),您最好掛載它,如果掛載,將它掛載在硬盤的第一個 分區,應該比較穩妥。一般來說,掛載的分區只要100M大小就足夠了。
關於掛載點情況(加粗為常用幾種)
目錄 內容
/ 根目錄,存放系統命令和用戶數據等(如果下面掛載點沒有單獨的分區,它們都將在根目錄的分區中)
/boot boot loader 的靜態鏈接文件,存放與Linux啟動相關的程序
/home 用戶目錄,存放普通用戶的數據
/tmp 臨時文件
/usr 是Red Hat Linux系統存放軟件的地方,如有可能應將最大空間分給它
/usr/local 自已安裝程序安裝在此
/var 不斷變化的數據,服務器的一些服務放在下面。
/opt 附加的應用程序軟件包
/bin 基本命令執行文件
/dev 設備文件
/etc 主機特定的系統配置
/lib 基本共享庫以及內核模塊
/media 用於移動介質的掛載點
/mnt 用於臨時掛載文件系統或者別的硬件設備(如光驅、軟驅)
/proc 系統信息的虛擬目錄(2.4 和 2.6 內核),這些信息是在內存中,由系統自己產生的。
/root root 用戶的目錄
/sbin 基本系統命令執行文件
/sys 系統信息的虛擬目錄(2.6 內核)
/srv 系統提供的用於 service 的數據
/usr/X1186 X-Windows目錄,存放一些X-Windows的配置文件
/usr/include 系統頭文件,存儲一些C語言的頭文件
/usr/src Linux內核源代碼,Linux系統所安裝的內核源代碼都保存在此
/usr/bin 對/bin目錄的一些補充
/usr/sbin 對/sbin目錄的一些補充
/lost+found 這個目錄在大多數情況下都是空的。但是如果你正在工作突然停電,或是沒有用正常方式關機,在你重新啟動機器的時候,有些文件就會找不到應該存放的地方,對於這些文件,系統將他們放在這個目錄下,就象為無家可歸的人提供一個臨時住所。
/boot: 必須總是物理地包含 /etc、/bin、/sbin、/lib 和 /dev,否則您將不能啟動系統。典型的根分區需要 150–250MB 大小空間。
/home: 每個用戶將放置他的私有數據到這個目錄的子目錄下。其大小取決於將有多少用戶使用系統,以及有什么樣文件放在他們的目錄下。根據規划的用途,應該為每個用戶准備 100MB 空間,不過應該按您的需求調整。假如您在 home 目錄下計划保存大量的多媒體文件(圖片、MP3、電影),該預備更多的空間。
/tmp: 程序創建的臨時數據大都存到這個目錄。通常 40–100 MB 應該足夠。一些應用程序 — 包括歸檔處理程序、D/DVD 制作工具和多媒體軟件 — 可能會使用 /tmp 臨時保存映像文件。如果要使用這些程序,應該相應地調整 /tmp 目錄的大小。這對於多用戶系統或者網絡服務器來說是有必要的。這樣即使程序運行時生成大量的臨時文件,或者用戶對系統進行了錯誤的操作,文件系統的其它部分仍然是安全的。因為文件系統的這一部分仍然還承受着讀寫操作,所以它通常會比其它的部分更快地發生問題。
/usr: 包含所有的用戶程序(/usr/bin),庫文件(/usr/lib),文檔(/usr/share/doc),等等。這是文件系統中耗費空間最多的部分。您需要提供至少 500MB 磁盤空間。總容量會依據您要安裝的軟件包數量和類型增長。寬松的工作站或服務器安裝應該需要 4–6GB。
/var: 所有的可變數據,如新聞組文章、電子郵件、網站、數據庫、軟件包系統的緩存等等,將被放入這個目錄。這個目錄的大小取決於您計算機的用途,但是對大多數人來說,將主要用於軟件包系統的管理工具。如果做服務器的話空間應盡量大。我的服務器的實際分法及實際使用的大小,還沒有實際投入使用。所以/var目錄沒有用那么多。一般WEB存放網頁的目錄是/var/www,postfix郵件的存放郵件的目錄是:/var/mail,var/log,是系統日志記錄分區, /var/spool:存放一些郵件、新聞、打印隊列等。
/opt: 存放可選的安裝的軟件。
上面介紹了幾個掛載點,一般來說我們最少需要兩個分區(當然只要一個分區也可以),需要一個SWAP分區,和一個“/”分區,但把一些常用、重要的掛載點分到其它分區,這樣便於管理。一般一個/分區,一個/usr分區,一個/home 分區,一個/var/log分區。當然這沒有什么規定,完全是依照需要來定的。我們可以使用Red Hat Linux提供的硬盤管理工具Disk Druid來完成分區和掛載點設置。
服務器分區的方案:
分區類型 分區的實際大小
/ 1G-2G (最少要150–250MB)
/boot 32M-100M (啟動分區,最多只要100M左右)
/opt 100M-1G (附加應用程序)
/tmp 40M-1000M (最大可以設為1G左右,如果加載ISO鏡像文件就設為4G左右吧,一般不用那么多)
/home 2G-10G (每個用戶100M左右,具體自定。用戶目錄。)
/usr 3G-10G (最耗用空間的部份。最少要500M左右,一般寬松的服務器要分到4-6G)
/usr/local 3G-15G (自已安裝程序安裝在此)
/var >2G--硬盤余下全部空間 ( 最少300M-500M,一般2-3G,做服務器的話把上面余下的空間都分給它)
SWAP分區 2G(內存為1G)
分區的管理
上面我們已經知道了分區最重要的就是掛載點的選擇與管理。因為我們經常會遇到文件的增大,導致存儲空間不足,這就需要增加磁盤來擴大存儲空間。
由於傳統的磁盤管理不能對磁盤進行磁盤管理,因此誕生了LVM技術,LVM技術最大的特點就是對磁盤進行動態管理。
由於LVM的邏輯卷的大小更改可以進行動態調整,且不會出現丟失數據的情況。
LVM基本介紹
- 物理存儲介質(The physical media)
- 這里指系統的存儲設備:硬盤,如:/dev/hda、/dev/sda等等,是存儲系統最低層的存儲單元。
- 物理卷(physicalvolume)
- 物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
- 卷組(Volume Group)
- LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
- 邏輯卷(logicalvolume)
- LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
- PV(physical volume,PV)
- 物理卷,它的文件格式不是ext4這些,而是具有LVM管理功能的LVM格式
- VG(Volume Group,VG)
- 卷組,卷組是在PV物理卷的基礎上創建的,卷組是由一個或多個物理卷組成的,卷組可以在物理卷PV的基礎上擴展和縮小。
- LV(logical volume,LV)
- 邏輯卷,在VG的基礎上創建,可以進行格式化、可以創建文件系統、可以被掛載。對於用戶相當於一個磁盤分區,不過實際上是在VG上邏輯出來的,可以在VG的基礎上實現擴展和縮小,擴展的邊界是不能超過VG的。
- PE(Physical Extents)
- 物理塊、PE相當於block塊,默認是4M,一個物理卷PV被划分為稱為PE(Physical Extents)的基本單元,VG是由這些PE塊組成,也是VG可以自由擴展和縮小的關鍵原因。
- LE(Logical Extent)
- 邏輯卷LV也被划分為可被尋址的基本單位,稱為LE。在同一個卷組中,LE的大小和PE是相同的,並且一一對應
分類 | 命令 | 說明 | 示例 |
---|---|---|---|
PV | pvcreate | 創建物理卷 | pvcreate /dev/sdb1 |
PV | pvdisplay | 顯示已創建的物理卷的詳細信息 | |
PV | pvs | 顯示已創建的物理卷的匯總信息 | |
PV | pvremove | 刪除物理卷 | pvremove /dev/sdb1 |
VG | vgcreate | 創建卷組 | pvcreate vg1 /dev/sdb1 /dev/sdb2 … |
VG | vgdisplay | 顯示已創建的卷組的詳細信息 | |
VG | vgs | 顯示已創建的卷組的匯總信息 | |
VG | vgextend | 擴展卷組 | vgextend vg1 /dev/sdb3 … |
VG | vgreduce | 收縮卷組 | vgreduce vg1 /dev/sdb5 |
VG | vgremove | 刪除卷組 | vgremove vg1 |
LV | lvcreate | 創建邏輯卷 | lvcreate -L 1000M -n lv1 vg1 |
LV | lvdisplay | 顯示已創建的邏輯卷的詳細信息 | |
LV | lvs | 顯示已創建的邏輯卷的匯總信息 | |
LV | lvresize | 重設邏輯卷大小 | lvresize -L 1000M /dev/vg1/lv1 |
LV | resize2fs | 更新邏輯卷信息(ext4) | resize2fs /dev/vg1/lv1 |
LV | lvremove | 刪除邏輯卷 | lvremove /dev/vg1/lv1 |
LV | xfs_growfs | 更新邏輯卷信息(xfs) | xfs_growfs /dev/vg1/lv1 |
LV |
e2fsck | 檢查邏輯卷錯誤(ext4) | e2fsck -f /dev/vg1/lv1 |
lvm邏輯卷組的管理
建立邏輯卷組的命令參數
pvcreate指令:創建物理卷
【語 法】pvcreate [選項] [參數]
【功能介紹】pvcreate指令用於將物理硬盤分區初始化為物理卷,以便被LVM使用。
主要參數

-f 強制創建物理卷,不需要用戶確認 -u 指定設備的UUID -y 所有的問題都回答“yes” -Z 是否利用前4個扇區
vgcreate指令:創建卷組
【語 法】vgcreate [選項] [參數]
【功能介紹】vgcreate指令用於創建LVM卷組。
主要參數

-l 卷組上允許創建的最大邏輯卷數 -p 卷組中允許添加的最大物理卷數 -s 卷組上的物理卷的PE大小
lvcreate指令:創建邏輯卷
【語 法】lvcreate [選項] [參數]
【功能介紹】lvcreate指令用於創建LVM的邏輯卷。
主要參數

-L 指定邏輯卷的大小,單位為“kKmMgGtT”字節 -l 指定邏輯卷的大小(LE數) -n 后面跟邏輯卷名 -s 創建快照
磁盤信息
[root@www ~]# fdisk -l Disk /dev/hda: 41.1 GB, 41174138880 bytes 255 heads, 63 sectors/track, 5005 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 1288 10241437+ 83 Linux /dev/hda3 1289 1925 5116702+ 83 Linux /dev/hda4 1926 5005 24740100 5 Extended /dev/hda5 1926 2052 1020096 82 Linux swap / Solaris /dev/hda6 2053 2235 1469916 8e Linux LVM /dev/hda7 2236 2418 1469916 8e Linux LVM /dev/hda8 2419 2601 1469916 8e Linux LVM /dev/hda9 2602 2784 1469916 8e Linux LVM
創建pv物理卷的一些操作命令
[root@www ~]# pvscan # 1. 檢查有無 PV 在系統上,然后將 /dev/hda6~/dev/hda9 建立成為PV格式 No matching physical volumes found #找不到任何的 PV 存在! [root@www ~]# pvcreate /dev/hda{6,7,8,9} # 將6-9分區轉成pv,注意大括號的用途 Physical volume "/dev/hda6" successfully created Physical volume "/dev/hda7" successfully created Physical volume "/dev/hda8" successfully created Physical volume "/dev/hda9" successfully created [root@www ~]# pvscan #這就分別表示每個 PV 的資訊與系統所有 PV 的資訊。 PV /dev/hda6 lvm2 [1.40 GB] PV /dev/hda7 lvm2 [1.40 GB] PV /dev/hda8 lvm2 [1.40 GB] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB] [root@www ~]# pvdisplay #更詳細的列示出系統上面每個 PV 資訊 "/dev/hda6" is a new physical volume of "1.40 GB" --- NEW Physical volume --- PV Name /dev/hda6 #實際的 partition 分區名稱 VG Name #因為尚未分配出去,所以空白! PV Size 1.40 GB #就是容量說明 Allocatable NO #是否已被分配,結果是 NO PE Size (KByte) 0 #在此 PV 內的 PE 大小 Total PE 0 #共分割出幾個 PE Free PE 0 #沒被 LV 用掉的 PE Allocated PE 0 #尚可分配出去的 PE 數量 PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN ....(底下省略)....
[root@www ~]# pvremove /dev/sdb2 #刪除物理卷 Labels on physical volume "/dev/sdb2" successfully wiped
修改物理卷屬性
[root@www ~]# pvchange -x n /dev/sdb1 #禁止分配指定物理卷上的PE Physical volume "/dev/sdb1" changed 1 physical volume changed / 0 physical volumes not changed
將一個或多個物理卷PV轉變為一個卷組VG
[root@www ~]# pvscan #這就分別表示每個 PV 的資訊與系統所有 PV 的資訊。 PV /dev/hda6 lvm2 [1.40 GB] PV /dev/hda7 lvm2 [1.40 GB] PV /dev/hda8 lvm2 [1.40 GB] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB] [root@www ~]# vgcreate -s 16M vbirdvg /dev/hda{6,7,8} #將/dev/hda6-8 建立成為一個 VG,且指定 PE 為 16MB Volume group "vbirdvg" successfully created [root@www ~]# vgscan #確定存在這個 vbirdvg 的 VG Reading all physical volumes. This may take a while... Found volume group "vbirdvg" using metadata type lvm2 [root@www ~]# pvscan #有三個 PV 被用去,剩下一個 /dev/hda9 的 PV 沒被用掉! PV /dev/hda6 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda7 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda8 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.57 GB] / in use: 3 [4.17 GB] / in no VG: 1 [1.40 GB] [root@www ~]# vgdisplay # 最后那三行指的就是 PE 能夠使用的情況!由於尚未切出 LV,因此所有的 PE均可自由使用。 --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 4.17 GB #整個 VG 容量就這么大 PE Size 16.00 MB #內部每個 PE 的大小 Total PE 267 #總共的 PE 數量! Alloc PE / Size 0 / 0 Free PE / Size 267 / 4.17 GB VG UUID 4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO [root@www ~]# vgextend vbirdvg /dev/hda9 #將剩余的 PV (/dev/hda9) 分配給 vbirdvg Volume group "vbirdvg" successfully extended [root@www ~]# vgdisplay ....(前面省略).... VG Size 5.56 GB PE Size 16.00 MB Total PE 356 Alloc PE / Size 0 / 0 Free PE / Size 356 / 5.56 GB VG UUID 4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO 設置屬性的卷組 [root@www ~]# vgchange -ay vg1000 #將卷組"vg1000"設置為活動狀態 logical volume(s) in volume group "vg1000" now active 刪除邏輯卷組 [root@www ~]# vgremove vg1000 #刪除卷組"vg1000" Volume group "vg1000" successfully removed [root@www ~]# vgreduce vg2000 /dev/sdb2 #將物理卷"/dev/sdb2"從卷組"vg2000"中刪除 removed "/dev/sdb2" from volume group "vg2000"
從VG中創建邏輯卷
[root@www ~]# pvscan #有三個 PV 被用去,剩下一個 /dev/hda9 的 PV 沒被用掉! PV /dev/hda6 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda7 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda8 VG vbirdvg lvm2 [1.39 GB / 1.39 GB free] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.57 GB] / in use: 3 [4.17 GB] / in no VG: 1 [1.40 GB] [root@www ~]# vgdisplay # 最后那三行指的就是 PE 能夠使用的情況!由於尚未切出 LV,因此所有的 PE均可自由使用。 --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 4.17 GB #整個 VG 容量就這么大 PE Size 16.00 MB #內部每個 PE 的大小 Total PE 267 #總共的 PE 數量! Alloc PE / Size 0 / 0 Free PE / Size 267 / 4.17 GB VG UUID 4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO [root@www ~]# lvcreate -l 356 -n vbirdlv vbirdvg #將整個 vbirdvg 通通分配給 vbirdlv 啊,要注意, PE 共有 356 個 Logical volume "vbirdlv" created [root@www ~]# ll /dev/vbirdvg/vbirdlv lrwxrwxrwx 1 root root 27 Mar 11 16:49 /dev/vbirdvg/vbirdlv -> /dev/mapper/vbirdvg-vbirdlv # 看見了沒有啊!這就是我們最重要的一步 [root@www ~]# lvdisplay --- Logical volume --- LV Name /dev/vbirdvg/vbirdlv #LV邏輯卷的名字 VG Name vbirdvg LV UUID 8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0 LV Write Access read/write LV Status available # open 0 LV Size 5.56 GB #LV的大小 Current LE 356 Segments 4 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
格式化邏輯卷,並且掛載
[root@www ~]# mkfs -t ext3 /dev/vbirdvg/vbirdlv #格式化 格式有ext2.ext3,ext4,xfs等文件系統,按需格式化 [root@www ~]# mkdir /mnt/lvm [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm #掛載目錄 [root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 9920624 3858984 5549572 42% / /dev/hda3 4956316 1056996 3643488 23% /home /dev/hda1 101086 21408 74459 23% /boot tmpfs 371332 0 371332 0% /dev/shm /dev/mapper/vbirdvg-vbirdlv 5741020 142592 5306796 3% /mnt/lvm
[root@www ~]#vi /etc/fstab# 查看邏輯卷的UUID:最后一行就是邏輯卷的信息,把該行的UUID復制出來,不含引號。 命令:blkid 例:/dev/mapper/vbirdvg-vbirdlv: UUID="11262806-d796-4f49-8f08-897181e8ec33" # 編輯fstab: 在最后添加一行,輸入如下內容: # 然后保存退出(:wq),重啟后查看結果,如果能正常掛載就沒有問題了。 UUID=11262806-d796-4f49-8f08-897181e8ec33 /mnt/lvm ext3 defaults 0 0
增加 LV 容量
[root@www ~]# fdisk -l Device Boot Start End Blocks Id System ....(中間省略).... /dev/hda10 2785 3150 2939863+ 8e Linux LVM #增加一下lvm /dev/hda10 [root@www ~]# pvcreate /dev/hda10 建立新的 PV Physical volume "/dev/hda10" successfully created [root@www ~]# pvscan #查看PG物理卷 PV /dev/hda6 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda7 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda8 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda9 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda10 lvm2 [2.80 GB] # 可以看到 /dev/hda10 是新加入,尚未使用 Total: 5 [8.37 GB] / in use: 4 [5.56 GB] / in no VG: 1 [2.80 GB] [root@www ~]# vgextend vbirdvg /dev/hda10 #加大 VG ,利用 vgextend 功能 Volume group "vbirdvg" successfully extended [root@www ~]# vgdisplay #查看VG邏輯卷組 --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 8.36 GB PE Size 16.00 MB Total PE 535 Alloc PE / Size 356 / 5.56 GB Free PE / Size 179 / 2.80 GB VG UUID 4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO [root@www ~]# lvresize -l +179 /dev/vbirdvg/vbirdlv #利用 lvresize 的功能來增加LV Extending logical volume vbirdlv to 8.36 GB Logical volume vbirdlv successfully resized [root@www ~]# lvdisplay #顯示LV邏輯卷 --- Logical volume --- LV Name /dev/vbirdvg/vbirdlv VG Name vbirdvg LV UUID 8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0 LV Write Access read/write LV Status available # open 1 LV Size 8.36 GB Current LE 535 Segments 5 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 [root@www ~]# df /mnt/lvm #查看大小 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vbirdvg-vbirdlv 5741020 261212 5188176 5% /mnt/lvm [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv #LV分區重設大小 resize2fs 1.39 (29-May-2006) Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing Performing an on-line resize of /dev/vbirdvg/vbirdlv to 2191360 (4k) blocks. The filesystem on /dev/vbirdvg/vbirdlv is now 2191360 blocks long.
減小 LV 容量
[root@www ~]# umount /mnt/lvm #取消掛載 [root@www ~]# e2fsck -f /dev/vbirdvg/vbirdlv #磁盤檢測 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/vbirdvg/vbirdlv: 2438/1087008 files (0.1% non-contiguous), [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M #重設大小 resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/vbirdvg/vbirdlv to 1766400 (4k) blocks. The filesystem on /dev/vbirdvg/vbirdlv is now 1766400 blocks long. [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm #掛載LVM [root@www ~]# df /mnt/lvm Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vbirdvg-vbirdlv 6955584 262632 6410328 4% /mnt/lvm [root@www ~]# lvresize -l -89 /dev/vbirdvg/vbirdlv #降低 LV 的容量 WARNING: Reducing active and open logical volume to 6.97 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vbirdlv? [y/n]: y Reducing logical volume vbirdlv to 6.97 GB Logical volume vbirdlv successfully resized [root@www ~]# lvdisplay #查看lv邏輯卷信息 --- Logical volume --- LV Name /dev/vbirdvg/vbirdlv VG Name vbirdvg LV UUID 8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0 LV Write Access read/write LV Status available # open 1 LV Size 6.97 GB Current LE 446 Segments 5 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 [root@www ~]# pvdisplay #先確認 /dev/hda6 是否將 PE 都移除了 --- Physical volume --- PV Name /dev/hda6 VG Name vbirdvg PV Size 1.40 GB / not usable 11.46 MB Allocatable yes (but full) PE Size (KByte) 16384 Total PE 89 Free PE 0 Allocated PE 89 PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN ....(中間省略).... --- Physical volume --- PV Name /dev/hda10 VG Name vbirdvg PV Size 2.80 GB / not usable 6.96 MB Allocatable yes PE Size (KByte) 16384 Total PE 179 Free PE 89 Allocated PE 90 PV UUID 7MfcG7-y9or-0Jmb-H7RO-5Pa5-D3qB-G426Vq [root@www ~]# pvmove /dev/hda6 /dev/hda10 #將 /dev/hda6 內的 PE 移動到 /dev/hda10 [root@www ~]# vgreduce vbirdvg /dev/hda6 #將 /dev/hda6從vbirdvg 移出 Removed "/dev/hda6" from volume group "vbirdvg" [root@www ~]# pvscan PV /dev/hda7 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda8 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda9 VG vbirdvg lvm2 [1.39 GB / 0 free] PV /dev/hda10 VG vbirdvg lvm2 [2.80 GB / 0 free] PV /dev/hda6 lvm2 [1.40 GB] Total: 5 [8.37 GB] / in use: 4 [6.97 GB] / in no VG: 1 [1.40 GB] [root@www ~]# pvremove /dev/hda6 #移出物理卷hda6 Labels on physical volume "/dev/hda6" successfully wiped
快照區的建立
[root@www ~]# vgdisplay #查看VG容量 --- Volume group --- VG Name vbirdvg ....(其他省略).... VG Size 6.97 GB PE Size 16.00 MB Total PE 446 Alloc PE / Size 446 / 6.97 GB Free PE / Size 0 / 0 [root@www ~]# pvcreate /dev/hda6 #創建PV物理卷 Physical volume "/dev/hda6" successfully created [root@www ~]# vgextend vbirdvg /dev/hda6 #將剛剛移除的 /dev/hda6 加入這個 VG Volume group "vbirdvg" successfully extended [root@www ~]# vgdisplay #查看VG --- Volume group --- VG Name vbirdvg ....(其他省略).... VG Size 8.36 GB PE Size 16.00 MB Total PE 535 Alloc PE / Size 446 / 6.97 GB Free PE / Size 89 / 1.39 GB #多出了 89 個 可用PE [root@www ~]# lvcreate -l 60 -s -n vbirdss /dev/vbirdvg/vbirdlv #利用 lvcreate 建立系統快照區,命名為vbirdss,且經於 60 個 PE Logical volume "vbirdss" created [root@www ~]# lvdisplay --- Logical volume --- LV Name /dev/vbirdvg/vbirdss VG Name vbirdvg LV UUID K2tJ5E-e9mI-89Gw-hKFd-4tRU-tRKF-oeB03a LV Write Access read/write LV snapshot status active destination for /dev/vbirdvg/vbirdlv LV Status available # open 0 LV Size 6.97 GB #原LV的大小 Current LE 446 COW-table size 960.00 MB #新建快照區的實際大小 COW-table LE 60 #快照區占有的PE Allocated to snapshot 0.00% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 [root@www ~]# mkdir /mnt/snapshot [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot [root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 9920624 3859032 5549524 42% / /dev/hda3 4956316 1056996 3643488 23% /home /dev/hda1 101086 21408 74459 23% /boot tmpfs 371332 0 371332 0% /dev/shm /dev/mapper/vbirdvg-vbirdlv 6955584 262632 6410328 4% /mnt/lvm #二個一樣 /dev/mapper/vbirdvg-vbirdss 6955584 262632 6410328 4% /mnt/snapshot #二個一樣
如果想要刪除物理卷,只需把操作倒過來操作一遍就好。
刪除掛在記錄->刪除邏輯卷->刪除卷組->刪除物理卷
Linux 磁盤管理進階
磁盤的管理自然少不了磁盤工具的使用,window下的分區軟件大家應該都知道,那linux系統下分區工具都有哪些呢?
我這里就介紹幾種在生產操作過程中用的工具,分別是fdisk、parted、gdisk。注:fidsk只能對2T以內的硬盤進行分區管理,2T以上的我們選擇parted ,gdisk這兩個工具,gdisk系統默認是沒有安裝的,我們需要可以直接安裝它yum install gdisk -y。
fdisk 命令使用

-v 打印 fdisk 的版本信息並退出. -l 列出指定設備的分區表信息並退出。 如果沒有給出設備,那么使用那些在 /proc/partitions (如果存在)提到的. -u 以扇區數而不是以柱面數的形式顯示分區表中各分區的信息. -s 分區 將分區的 大小 (單位為塊)信息輸出到標准輸出
查看所有分區 [root@localhost ~]# fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 17 136552 83 Linux /dev/sda2 18 279 2104515 82 Linux swap / Solaris /dev/sda3 280 60801 486142965 5 Extended /dev/sda5 280 60801 486142964+ 83 Linux
fdisk分區
[root@localhost ~]# fdisk /dev/sda #分區時,不要加上數字 The number of cylinders for this disk is set to 5005. 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) 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 #改變分區ID u change display/entry units v verify the partition table w write table to disk and exit #保存分區操作 x extra functionality (experts only) Command (m for help): p Disk /dev/sda: 41.1 GB, 41174138880 bytes #磁盤名稱和大小 255 heads, 63 sectors/track, 5005 cylinders #磁頭、磁區與磁柱數量,多少 Units = cylinders of 16065 * 512 = 8225280 bytes #每個磁柱的大小 Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1288 10241437+ 83 Linux /dev/sda3 1289 1925 5116702+ 83 Linux /dev/sda4 1926 5005 24740100 5 Extended /dev/sda5 1926 2052 1020096 82 Linux swap / Solaris Command (m for help): q # q是不保存退出,w不要隨便輸入
Parted命令使用

用法:parted [選項]… [設備 [命令 [參數]…]…] T級別分區的命令。將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。 選項: -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 的分區的標志
parted交互式分區
[root@localhost ~]# parted /dev/sdb GNU Parted 2.1 使用 /dev/sdb (parted) mklabel gpt #parted命令需要更改分區表標簽類型,創建新的磁盤分區表gpt 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? 是/Yes/否/No? yes (parted) (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name 標志 (parted) mkpart primary 0 100 #創建主分區100M,不帶任何大小符號默認為M級別。 警告: The resulting partition is not properly aligned for best performance. 忽略/Ignore/放棄/Cancel? Ignore (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name 標志 1 17.4kB 100MB 100MB primary
parted非交互分區
parted --script /dev/sdb mklabel gpt
parted --script /dev/sdb mkpart primary 0 4800000
parted --script /dev/sdb mkpart primary 4800001 5800001
parted --script /dev/sdb mkpart primary 5800002 5804098
gdisk命令使用

(1).選項 -b <size> 指定扇區大小(512,1024,2048或4096 B) -c 關閉DOS兼容模式 -u <size> 以扇區編號取代柱面編號來表示每個分區的起始地址,一般與-l選項聯合使用 -C <number> 指定柱面編號 -H <number> 指定磁頭編號 -S <number> 指定磁道扇區編號
gdisk命令跟fdisk命令差不多,所以我這里只貼出菜單選項
菜單操作說明: a 設置可引導標記(活動分區/引導分區之間切換) b 編輯BSD磁盤標簽 c 設置DOS操作系統兼容標記(兼容/不兼容之間切換) d 刪除一個分區 l 顯示已知的分區類型,其中82為Linux swap分區,83為Linux分區 m 顯示幫助信息 n 增加一個新的分區 o 創建一個新的空白的DOS分區表 p 顯示磁盤當前的分區表 q 退出fdisk程序,不保存任何修改 s 創建一個新的空白的Sun磁盤標簽 t 改變一個分區的系統ID,就是改變分區類型(比如把Linux Swap分區改為Linux分區) u 改變顯示或輸入單位 v 驗證磁盤分區表 w 將分區表寫入磁盤並退出(保存並退出) x 額外功能(專家級) 擴展 sda和hda的區別 sd代表的是SCSI,SATA接口硬盤 hd代表IDE接口的硬盤 sda和hda最后面的a都代表的是第一塊硬盤 sda1和hda1則代表的是該硬盤的第一分區
其他分區命令
通知系統分區表的變化
命令:partprobe
參數:
- -d,—dry-run實際上不會通知操作系統打印內容摘要
- -h,—幫助顯示此幫助並退出
- -v,—版本輸出版本信息並退出
其他:
如果生成設備文件失敗,可以使用如下命令再次生成
partx -a /dev/XXX
注:如果還是失敗就請重啟系統。
查看設備分區的UUID與類型
命令:blkid
命令:blkid 設備名稱
Swap 分區創建命令
- Linux mkswap命令用於設置交換區(swap area)。
- mkswap可將磁盤分區或文件設為Linux的交換區。
語法:
mkswap [-cf][-v0][-v1][設備名稱或文件][交換區大小]
參數:
- -c 建立交換區前,先檢查是否有損壞的區塊。
- -f 在SPARC電腦上建立交換區時,要加上此參數。
- -v0 建立舊式交換區,此為預設值。
- -v1 建立新式交換區。
- [交換區大小] 指定交換區的大小,單位為1024字節。
開啟SWAP分區
Linux swapon命令用於激活Linux系統中交換空間,Linux系統的內存管理必須使用交換區來建立虛擬內存。
語法:
/sbin/swapon -a [-v]
/sbin/swapon [-v] [-p priority] specialfile ... /sbin/swapon [-s]
參數:
- -h 請幫幫我
- -V 顯示版本訊息
- -s 顯示簡短的裝置訊息
- -a 自動啟動所有SWAP裝置
- -p 設定優先權,你可以在0到32767中間選一個數字給他。或是在 /etc/fstab 里面加上 pri=[value] ([value]就是0~32767中間一個數字),然后你就可以很方便的直接使用 swapon -a 來啟動他們,而且有優先權設定
關閉SWAP分區
Linux swapoff命令用於關閉系統交換區(swap area)。
swapoff實際上為swapon的符號連接,可用來關閉系統的交換區。
語法:
swapoff [設備]
參數:
- -a 將/etc/fstab文件中所有設置為swap的設備關閉
- -h 幫助信息
- -V 版本信息
實例
1、顯示分區信息
# sfdisk -l
Disk /dev/sda: 1305 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 12 13- 104391 83 Linux /dev/sda2 13 1304 1292 10377990 8e Linux LVM /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an msdos signature /dev/sdb: unrecognized partition No partitions found
2、關閉交換分區。
# swapoff /dev/sda2
好了,分區管理整理就到這里哦!以后可能會補充,也歡迎其他作者補充!