1. 程式人生 > 實用技巧 >linux磁碟分割槽與管理詳解

linux磁碟分割槽與管理詳解

linux磁碟分割槽主要分為基本分割槽(primary partion)和擴充分割槽(extension partion)兩種,基本分割槽和擴充分割槽的數目之和不能大於四個。且基本分割槽可以馬上被使用但不能再分割槽。擴充分割槽必須再進行分割槽後才能使用,也就是說它必須還要進行二次分割槽。在 Linux 中,每一個硬體裝置都對映到一個系統的檔案,對於硬碟、光碟機等 IDE 或 SCSI 裝置也不例外。Linux把各種 IDE 裝置分配了一個由 hd 字首組成的檔案;而對於各種 SCSI 裝置,則分配了一個由 sd 字首組成的檔案。

分割槽簡介

磁碟的組成 磁碟由碟片,機械手臂,磁頭,主軸馬達組成,而資料的寫入主要是在碟片上面,碟片上又細分為扇區與柱面兩種單位,扇區每個為512bytes那麼大
其中,磁碟的第一個扇區特別重要,因為磁碟的第一個扇區記錄了兩個重要的資訊: 1、主引導分割槽(BMR):可以安裝引導載入程式的地方,有446bytes。 2、分割槽表:記錄整塊硬碟分割槽的狀態,有66bytes。 磁軌:上圖中硬碟被一圈圈分成18等分的同心圓,這些同心圓就是磁軌,但開啟硬碟,使用者不能看到這些,它實際上是被磁頭磁化的同心圓.這些磁軌是有間隔的,因為磁化單元太近會產生干擾。 扇區:每個磁軌中被分成若干等份的區域.扇區是硬碟資料儲存的最小單位。 柱面:假如一個硬碟只有上圖中的3個磁碟片,每一片中的磁軌數是相等的.從外圈開始,這些磁軌被分成了0磁軌、1磁軌、2磁軌...具有相同磁軌編號的
同心圓
組成面就稱作柱面.為了便於理解,柱面可以看作沒有底的鐵 桶.從上圖可以看出,柱面數就是磁碟上的磁軌數.柱面是硬碟分割槽的最小單位.因此,一個硬碟的容量=柱面*磁頭*扇區*512。 簇:扇區是硬碟資料儲存的最小單位,但作業系統無法對數目眾多的扇區進行定址,所以作業系統就將相鄰的扇區組合在一起,形成一個簇,然後再對簇進行管理.每個簇可以包括2、4、8、16、32、64個扇區。

磁碟分割槽表

在分割槽表所在的64bytes容量中,總共分為四組記錄區,每組記錄區記錄了該區段的起始與結束的柱面號碼。 假設上面的硬碟裝置檔名為/dev/hda時, 那麼這四個分割槽在Linux系統中的裝置檔名如下所示,重點在於檔名後面會再接一個數字,這個數字與該分割槽所在位置有關: 1)、P1:/dev/hda1 2)、P2:/dev/hda2 3)、P3:/dev/hda3 4)、P4:/dev/hda4 由於分割槽表只有64bytes而已,最多隻能容納四個分割槽,這四個分割槽被稱為主或擴充套件分割槽 [3]
。根據上面的圖示與說明,我們可以得到幾個重要資訊: 1、其實所謂分割槽,只是針對那個64bytes的分割槽表進行設定而已。 2、硬碟預設的分割槽表僅能寫入四組分割槽資訊。 3、這四組分割槽資訊我們稱為主或擴充套件分割槽 4、分割槽的最小單位為柱面 5、當系統要寫入磁碟時,一定會參考磁碟分割槽表,才能針對某個分割槽進行資料的處理。

磁碟分割槽

在Windows作業系統中,是先將實體地址分開,再在分割槽上建立目錄.在Windows作業系統中,所有路徑都是從碟符開始,如C://program file。 Linux正好相反,是先有目錄,再將實體地址對映到目錄中。在Linux作業系統中,所有路徑都是從根目錄開始。Linux預設可分為3個分割槽,分別是boot分割槽swap分割槽和根分割槽。 無論是Windows作業系統,還是Linux作業系統,每個分割槽均可以有不同的檔案系統,如FAT32NTFSYaffs2等。 (1)boot分割槽 該分割槽對應於/boot目錄,約100MB.該分割槽存放LinuxGrub(bootloader)和核心原始碼。使用者可通過訪問/boot目錄來訪問該分割槽.換句話說,使用者對/boot目錄的操作就是操作該分割槽。 (2)swap分割槽 該分割槽沒有對應的目錄,故使用者無法訪問。 Linux下的swap分割槽即為虛擬記憶體.虛擬記憶體用於當系統記憶體空間不足時,先將臨時資料存放在swap分割槽,等待一段時間後,然後再將資料調入到記憶體中執行.所以說,虛擬記憶體只是暫時存放資料,在該空間內並沒有執行。 Ps:虛擬記憶體 虛擬記憶體是指將硬碟上某個區域模擬為記憶體.因此虛擬記憶體的實際實體地址仍然在硬碟上.虛擬記憶體,或者說swap分割槽只能由系統訪問,其大小為實體記憶體的2倍。 (3)根分割槽 在Linux作業系統中,除/boot目錄外的其它所有目錄都對應於該分割槽.因此,使用者可通過訪問除/boot目錄外的其它所有目錄來訪問該分割槽。 注意: (1)在Linux作業系統中,使用者可根據需要進行修改分割槽.修改後的分割槽中,同一目錄下的檔案可能在不同分割槽中.比如/home目錄下有a、b、c三個目錄,可將不同的分割槽掛載到這三個目錄下,這種操作是允許的。 (2) 邏輯分割的數量依作業系統而不同,在Linux系統中,IDE硬碟最多有59個) 邏輯分割(5號到63號), SATA硬碟則有11個) 邏輯分割(5號到15號)。 (鳥哥版的) 不過根據最新的 linux核心技術規範 中指示,邏輯分割槽可以無限。 <1>硬碟上至少有1個主分割槽。 <2>邏輯分割槽不能再進行分割槽。 (3)Linux分割槽目錄和"碟符"的關係: 假如硬碟安裝在IDE1的主盤,並用戶想分割槽成6個可以使用的硬碟分割槽,則可以採用下面兩種方式。 方式一:採用3個主分割槽和3個邏輯分割槽 方式二:採用1個主分割槽和5個邏輯分割槽 當然還有其他的分割槽方式,只要滿足上述說的規則就行 安裝Linux時,預設分為三個區,分別是/boot分割槽、根分割槽和swap分割槽.這三個分割槽分別對應的碟符是hda1、hda2、hda3。 (4)Linux允許使用fdisk -l命令和df -h命令來查詢其硬碟分割槽.其中,df無法顯示出swap分割槽的大小。 [root@localhost /]#df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/hda2 8.8GB 3.1GB 5.3GB 38% / (根分割槽) /dev/hda1 99MB 9.2MB 85MB 10% /boot (boot分割槽) (5)在PC機下,A、B盤並不存在,這兩個盤在Linux下類似於hda1/hda3,而C盤類似於hda2,D、E、F盤類似於hda5、hda6、hda7。 (6)swap分割槽不對應"碟符"。 (7)若硬碟的MBR已壞,則該磁碟就不能再作為引導盤,只能作為資料盤.因為MBR位於硬碟的起始處,使用者不能通過軟體進行修復,也不能跳過起始處.而硬碟中間的某個磁軌壞了,使用者可以軟體修復,也可以跳過該磁軌。

嵌入式分割槽

嵌入式系統可以分為4個區,分別是bootloaderparakernel、根分割槽等,與Windows、Linux分割槽不同 [4] 。 (1)在嵌入式系統中,沒有swap分割槽,只有實際的物理空間。 (2)bootloader、para、kernel這三個分割槽的功能類似於Linux系統中的/boot分割槽,這三個分割槽分別存放嵌入式系統的啟動程式碼和核心。 注:Linux系統中/boot分割槽記憶體放著linux啟動程式碼和核心原始碼。 (3)根分割槽(/)可以構造,其功能類似於Linux系統中的根分割槽.在這個分割槽中可以建立許多目錄,比如/root、/home、/usr等,但不能建立/boot目錄。 (4)分割槽bootloader、para、kernel只能由地址來區分,而根分割槽只能由目錄來區分。 (5)嵌入式系統的驅動程式、上層軟體都放在根分割槽.在嵌入式系統啟動後,系統無法檢視到bootloader、para、kernel這三個分割槽。

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 &gt;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個扇區
pvcreate
vgcreate指令:建立卷組

【語 法】vgcreate [選項] [引數]

【功能介紹】vgcreate指令用於建立LVM卷組。

主要引數
-l 卷組上允許建立的最大邏輯卷數
-p 卷組中允許新增的最大物理卷數
-s 卷組上的物理卷的PE大小
vgcreate
lvcreate指令:建立邏輯卷

【語 法】lvcreate [選項] [引數]

【功能介紹】lvcreate指令用於建立LVM的邏輯卷。

主要引數
-L 指定邏輯卷的大小,單位為“kKmMgGtT”位元組
-l 指定邏輯卷的大小(LE數)
-n 後面跟邏輯卷名 
-s 建立快照
lvcreate

磁碟資訊

[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 分割槽 將分割槽的 大小 (單位為塊)資訊輸出到標準輸出
    
fdisk引數

檢視所有分割槽

[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                 顯示版本
parted引數
命令:


檢查 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引數

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

好了,分割槽管理整理就到這裡哦!以後可能會補充,也歡迎其他作者補充!