linux 使用fdisk分割槽擴容

pursuer.chen發表於2016-01-03

標籤:fdisk分割槽

概述  

我們管理的伺服器可能會隨著業務量的不斷增長造成磁碟空間不足的情況,在這個時候我們就需要增加磁碟空間,本章主要介紹如何使用fdisk分割槽工具建立磁碟分割槽和掛載分割槽,介紹兩種情況一種是對原有的磁碟的剩餘空間增加分割槽,第二種是對新新增的磁碟進行分割槽操作。

 

擴充套件空間

fdisk: invalid option -- '-'

Usage:
 fdisk [options] <disk>    change partition table
 fdisk [options] -l <disk> list partition table(s)
 fdisk -s <partition>      give partition size(s) in blocks

Options:
 -b <size>                 sector size (512, 1024, 2048 or 4096)
 -c                        switch off DOS-compatible mode
 -h                        print help
 -u <size>                 give sizes in sectors instead of cylinders
 -v                        print version
 -C <number>               specify the number of cylinders
 -H <number>               specify the number of heads
 -S <number>               specify the number of sectors per track

 

檢視當前分割槽資訊

fdisk -l

 上圖的紅色標記顯示當前sda總共有3916個柱面,而目前只使用了2611個柱面,現在就將剩下的柱面建立分割槽。

建立分割槽

使用:fdisk 磁碟檔案

fdisk /dev/sda

 1.輸入m檢視幫助。

 

a :設定可引導標記
b :修改bsd的磁碟標籤
c :設定DOS作業系統相容標記
d :刪除一個分割槽
l :顯示已知的分割槽型別,其中82為Linux swap分割槽,83為Linux分割槽
m :顯示幫助資訊
n :增加一個新的分割槽
o :建立一個新的空白的DOS分割槽表
p :顯示磁碟當前的分割槽表
q :退出fdisk程式,不儲存任何修改
s :建立一個新的空白的Sun磁碟標籤
t :改變一個分割槽的系統號碼(比如把Linux Swap分割槽改為Linux分割槽)
u :改變顯示記錄單位
v :對磁碟分割槽表進行驗證
w :儲存修改結果並退出fdisk程式
x :特殊功能

2.輸入n建立分割槽

詢問我們是要建立主分割槽還是擴充套件分割槽,主分割槽最多隻能建立4個,如果建立了擴充套件分割槽那麼擴充套件分割槽需要佔用一個主分割槽。

這裡我們建立擴充套件分割槽,輸入e

需要我們輸入起始柱面,預設是2611開始,這裡可以輸入2611也可以直接enter。

最後輸入3916,這樣就建立好了擴充套件分割槽。

3.建立邏輯分割槽

輸入p,檢視分割槽建立情況

 可以發現sda4的檔案系統型別是擴充套件分割槽,擴充套件分割槽是無法使用的,必須在擴充套件分割槽的基礎上建立邏輯分割槽

輸入n建立邏輯分割槽,因為這裡只剩下剛才建立的邏輯分割槽需要建立,所以不需要選擇輸入開始和結束柱面即可。

 再輸入p顯示所有分割槽,可以看到建立了sda5這個邏輯分割槽

4.輸入w儲存

當然剛才也可以直接建立主分割槽,不建立邏輯分割槽。

5.格式化邏輯分割槽

如果是使用虛擬機器,需要重啟才可以對分割槽進行格式化,否則會提示找不到分割槽檔案。

mkfs -t ext3 /dev/sda5

6.掛載分割槽

先建立分割槽掛載的資料夾

mkdir /newpar

將sda5掛載到/newpar檔案下

mount /dev/sda5 /newpar

7.檢視掛載情況

df -h

 這個掛載只是臨時的,重啟伺服器之後又需要重新掛載,通過修改/etc/fstab檔案使掛載永久有效

8.永久掛載

在編寫的時候可以使用tab鍵寫下一項。

概念

通過前面的預熱,現在來講概念理解起來會容易一點。

磁碟

在linux系統中所有的裝置都會以檔案的形式儲存。裝置一般儲存在/dev目錄下面,以sda、sda1、sda2 ...,sdb、sdb1...,hda,hdb。現在的裝置一般都是sd命名,以前的很老的硬碟是以ha命名。

sda:第一塊硬碟,如果對磁碟進行了分割槽會有sda1(第一個分割槽),sda2等。

sdb:第二個硬碟,同樣對硬碟分割槽後有sdb1,sdb2等。

分割槽

分割槽的目的就是便於管理,比如在windows系統我們一般會分C盤,D盤,E盤等。

在講主分割槽和擴充套件分割槽前先看張圖片。

 這是我的當前windows系統的分割槽情況,從這裡可以很好的理解主分割槽和擴充套件分割槽的概念,同時也有柱面的概念,當前主分割槽是C盤,擴充套件分割槽包括D盤、E盤、F盤。同時D盤、E盤、F盤也叫邏輯分割槽。

其實我們也可以不建立擴充套件分割槽,在windows裡面如果不建立擴充套件分割槽的話對程式的管理會不方便,只有一個分割槽。但是在linux中如果剛才在建立分割槽的是有留言會發現linux只能建立4個主分割槽,如果需要建立更多的分割槽那麼久必須建立邏輯分割槽,其中邏輯分割槽需要佔用一個主分割槽。

檔案系統

linux中的檔案系統也就是分割槽型別,在windows中有NTEF,FAT32等,linux中常見的有Ext2、Ext3、Ext4、Linux swap、proc、sysfs、tmpfs等,可以通過mount命名檢視當前已掛載的檔案系統。

格式化

在前面建立完分割槽後有一步是要對分割槽進行格式化,其實在windows系統中也是一樣,在建立好一個分割槽後也需要將分割槽格式化,只有格式化成具體的檔案型別才能使用。

掛載

在windows中分割槽格式化後就可以使用,但是在linux系統中必須將分割槽掛載到具體的路徑下才可以。

 

接下來演示增加一個新磁碟的完整過程。 

新增硬碟

 在當前虛擬機器中增加一塊20G的硬碟

1.使用fdisk -l查詢當前系統分割槽情況

 可以看到新增加的sdb磁碟還沒有分割槽

2.建立主分割槽

fdisk /dev/sdb

輸入n

在輸入結束柱面的這裡如果你不知道該輸入多大的數字,你可以輸入+然後輸入你要設的大小。這裡我設定5G的主分割槽。

輸入p檢視分割槽資訊,可以看到剛建立的sdb1主分割槽,接下來建立邏輯分割槽。

3.建立擴充套件分割槽

圖片上通過紅色標註了操作步驟。可以看到當前已建立了sdb2擴充套件分割槽,柱面從655-2610,即將剩下的所有空間建立為擴充套件分割槽。

4.建立邏輯分割槽

 總共建立了兩個邏輯分割槽,邏輯分割槽預設從5開始,第一個邏輯分割槽大小2G,用來做交換分割槽用,剩下全部給sdb6.

5.修改檔案型別ID

因為預設分割槽id都是83即linux檔案型別,現在將sdb5的檔案型別ID改成82即交換分割槽。

6.儲存退出

 

7.格式化分割槽

接下來要對sdb的每一個分割槽進行格式化,

注意:擴充套件分割槽不需要進行格式

輸入mkfs.ext3 /dev/sdb1

swap分割槽格式化要使用

mkswap /dev/sdb5

載入檔案
swapon /dev/sdb5

檢視是否生效
swapon -s

可以看到sda3,和sdb5這兩個swap分割槽

 8.掛載分割槽

 這裡直接使用修改檔案的方式永久掛載

建立掛載檔案路徑
mkdir sdb1 sdb6

9.立即生效

partprobe 

在我的虛擬機器上面無法立即生效,重啟機器。

shutdown -r now

 

 重啟之後會發現,sdb1,sdb6都已經生效了,而且swap也變成了6G(sda3+sdb5)

 

補充

格式化分割槽還可以使用帶引數的mke2fs命令

mke2fs [-c|-l filename] [-b block-size] [-f fragment-size]
    [-i bytes-per-inode] [-I inode-size] [-J journal-options]
    [-G meta group size] [-N number-of-inodes]
    [-m reserved-blocks-percentage] [-o creator-os]
    [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
    [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
    [-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]
-b:指定區塊大小,單位為位元組。
-c:檢查是否有損壞的區塊。
-f:指定不連續區段的大小,單位為位元組。
-F:不管指定的裝置為何,強制執行mke2fs。
-i:指定"位元組/inode"的比例。
-N:指定要建立的inode數目。
-l:從指定的檔案中,讀取檔案西中損壞區塊的資訊。
-L:設定檔案系統的標籤名稱。
-m:指定給管理員保留區塊的比例,預設為5%-M:記錄最後一次掛入的目錄。
-q:執行時不顯示任何資訊。
-r:指定要建立的ext2檔案系統版本。
-R:設定磁碟陣列引數。
-S:僅寫入superblock與group descriptors,而不更改inode able inode bitmap以及block bitmap。
-v:執行時顯示詳細資訊。
-V:顯示版本資訊。
-T:指定檔案系統型別

 dumpe2fs命令

檢視分割槽的詳細資訊
dumpe2fs /dev/sdb1

圖中只擷取了一部分資訊,該命令可以檢視指定分割槽的詳細資訊,很詳細。

 

總結

現在的檔案系統建議使用ext4,上面只是測試使用ext3,生產環境還行使用邏輯卷比較好。

 

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結,否則保留追究責任的權利。

《歡迎交流討論》

 

---恢復內容結束---

相關文章