我在 VirtualBox 中创建了一个 ubuntu VM 实例。一开始我只分配了 7GB 的存储空间,现在 VM 已经没有空间了。
首先,我通过 VirtualBox 前端向虚拟机添加了另外 8GB (/dev/sdb)。然后我设置了以下分区:
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 8589 MB, 8589934592 bytes
40 heads, 1 sectors/track, 419430 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x076b5690
Device Boot Start End Blocks Id System
/dev/sdb1 2048 16777215 8387584 5 Extended
/dev/sdb5 4096 16777215 8386560 8e Linux LVM
然后我运行以下命令来扩展 VG。
sudo pvcreate /dev/sdb5
sudo vgextend ubuntudevbox2 /dev/sdb5
sudo lvextend 100% /dev/ubuntudevbox2/root
lvextend --help
sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root
sudo lvextend -r -l 100%FREE /dev/ubuntudevbox2/root
sudo resize2fs /dev/mapper/ubuntudevbox2-root
我原本预计 / 的大小会扩大到 16Gb。然而 df 报告说
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntudevbox2-root 8.0G 6.9G 680M 92% /
root mount 只增加到 8G
以下是 VG 信息
$ sudo vgdisplay ubuntudevbox2
[sudo] password for antkong:
--- Volume group ---
VG Name ubuntudevbox2
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 15.75 GiB
PE Size 4.00 MiB
Total PE 4033
Alloc PE / Size 2182 / 8.52 GiB
Free PE / Size 1851 / 7.23 GiB
VG UUID ZV6VAi-qkxC-KnKz-1LHg-nfLB-afSI-mVpIPv
为什么我没有获得完整的8Gb额外空间?
mkfs -t ext5 /dev/sdb5
补充信息1:我使用fdisk添加新分区后立即运行。这会导致失败吗?
附加信息2:
$ uname -a
Linux ubuntudevbox2 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
lvdisplay输出:
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntudevbox2/root
LV Name root
VG Name ubuntudevbox2
LV UUID V1Qq0f-qKJR-UTf5-4tjM-ycoY-1J5L-mJQ2Fy
LV Write Access read/write
LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:26 +1100
LV Status available
# open 1
LV Size 8.03 GiB
Current LE 2055
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/ubuntudevbox2/swap_1
LV Name swap_1
VG Name ubuntudevbox2
LV UUID LbvPFE-j3GO-oaF1-HQV3-a2r5-HTfy-YrhQve
LV Write Access read/write
LV Creation host, time ubuntudevbox2, 2013-03-29 12:18:29 +1100
LV Status available
# open 2
LV Size 508.00 MiB
Current LE 127
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
答案1
输出是绝对的
sudo lvextend -l 100%FREE /dev/ubuntudevbox2/root
由于您在 vgextended 之后只有 8G 的可用范围,因此您只能获得一个代表 8G 绝对大小的 lv。
您必须告知 LVM 您打算进行额外的空间大小。来自的手册页lvextend
;
-l, --extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}]
Extend or set the logical volume size in units of logical
extents. With the '+' sign the value is added to the actual
size of the logical volume and without it, the value is taken as
an absolute one.
尝试
sudo lvextend -l +100%FREE /dev/ubuntudevbox2/root
答案2
从输出中可以看出,vgdisplay
仅分配了大约一半的空间:
Alloc PE / Size 2182 / 8.52 GiB
Free PE / Size 1851 / 7.23 GiB
我怀疑您需要lvextend
更明确地指定参数。