1. 程式人生 > >linux 使用fdisk分區擴容

linux 使用fdisk分區擴容

交換分區 list linu 選擇 fat trac 生效 兩個 修改

轉 http://www.cnblogs.com/chenmh/p/5096592.htm

l

概述

我們管理的服務器可能會隨著業務量的不斷增長造成磁盤空間不足的情況,在這個時候我們就需要增加磁盤空間,本章主要介紹如何使用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,生產環境還行使用邏輯卷比較好。

linux 使用fdisk分區擴容