本文講述瞭如何使用數據盤的分區擴展”/”的容量。
本文要實現的硬盤結構為:
/dev/vda – 系統盤
— /dev/vda1 – /boot,存放系統啟動相關文件
— /dev/vda2 – LVM物理卷(包含/)
/dev/vdb – 數據盤
— /dev/vdb1 – LVM物理卷(擴展至/)
/dev/vdc – 系統初始化文件
注意:使用本方法擴展系統盤,重建系統前請先刪除這個分區(執行 fdisk /dev/vdb 後輸入 d)
1. 更新系統源並安裝相關軟件
Debian & Ubuntu:
apt-get update apt-get -y install kpartx lvm2
CentOS & Fedora:
yum -y install kpartx lvm2
2. 創建分區
fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x1ea1ca70.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n #輸入n,進行新建分區操作
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #輸入p,或直接按Enter,創建主分區(主分區最多四個)
Using default response p
Partition number (1-4, default 1): #輸入新分區的編號,或直接按Enter,請注意分區號不能重複
Using default value 1
First sector (2048-67108863, default 2048): #輸入起始扇區,按Enter使用默認值
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-67108863, default 67108863): #輸入終止扇區,支持+扇區數目(表示以起始扇區+扇區數目的結果作為終止扇區),或+容量,例如+5G(fdisk將會自動計算5 Gbytes需要多少個扇區,並以起始扇區+5 Gbytes所需的扇區數目的結果作為終止扇區)。直接輸入Enter使用默認值
Using default value 67108863
Command (m for help): t #輸入t,更改分區類型
Selected partition 1 #如果僅有一個分區,會自動選擇僅有的分區,否則需要手動輸入分區編號
Hex code (type L to list codes): 8e #輸入8e,表示物理卷
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w #輸入w,表示保存分區信息。警告:一旦進行了保存操作,將無法撤消,請確保您以上的操作無問題,否則,請輸入q,不保存分區表,並退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3. 創建物理卷
創建物理卷:
pvcreate -yff /dev/vdb1
4. 使用新的物理卷擴展”/”所在的捲組
查看當前已有的捲組的名稱:
VGNAME=`vgdisplay | grep "VG Name" | awk '{print $3}'`
請記下執行此命令後所輸出的內容,此內容為卷組名稱(如果您使用我們的模板安裝操作系統,卷組名稱一般為該Linux發行版本的名稱),本文中,輸出的內容為:debian
使用/dev/vdb1擴展”/”所在的捲組:
vgextend $VGNAME /dev/vdb1
5. 重新調整”/”所在的邏輯卷的大小
查看卷組中空閒的PE數目:
PESIZE=`vgdisplay $VGNAME | grep "Free PE / Size" | awk '{print $5}'`
請記下執行此命令後輸出的內容,此內容為該卷組可用的PE數目,調整邏輯卷的大小時需要使用,本文中,輸出的內容為:12799
查看”/”所在的邏輯卷:
lvms=`df / | egrep "^/dev" | awk '{print $1}'`
請記下執行此命令後輸出的內容,此內容為”/”所在的邏輯卷的設備文件路徑,調整邏輯卷的大小時需要使用,本文中,輸出的內容為:/dev/mapper /debian-root
調整”/”所在的邏輯卷的大小:
lvresize -l +$PESIZE $lvms
-l參數表示PE數目,可使用+/-在該邏輯卷原PE數目的基礎上加或減PE數目,亦可使用-L參數指定容量大小,支持以+/-在該邏輯卷原容量大小的基礎上加或減容量,/dev/debian/root表示”/”所在的邏輯卷的設備文件的路徑
調整”/”所在的分區的大小:
由於僅擴展了邏輯卷的大小,新增的扇區並未納入”/”所在的EXT4的分區的範圍中,因此需要重新調整EXT4分區的大小,擴大容量無需解除掛載,但縮小容量需要解除掛載
resize2fs $lvms
此步驟耗時可能較長,請耐心等待
6. 完成以上的操作後,”/”所在的分區的容量將會增加,可使用df查看:
df -h /
本文中,輸出的內容為:
Filesystem Size Used Avail Use% Mounted on
rootfs 54G 807M 51G 2% /
udev 10M 0 10M 0% /dev
tmpfs 101M 224K 101M 1% /run
/dev/mapper/debian-root 54G 807M 51G 2% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 201M 0 201M 0% /run/shm
/dev/vda1 472M 28M 420M 7% /boot