我们在 KVM 上安装了 Ubuntu 14.04 服务器,MySQL 数据库已接近填满其磁盘空间(80 GB)。我们已将服务器升级到 160 GB 磁盘,但问题是新磁盘空间尚未分配。
有人建议我运行 GParted,所以我这样做了(请参阅所附的屏幕截图)并找到了一些关于如何调整磁盘大小的教程,但是当我单击“调整大小”时,它不允许调整 /dev/vda5 的大小,可能是因为它在 /dev/vda2 扩展分区之外。
我需要将 /dev/vda5 从 80 GB 扩展到 160 GB不会丢失数据。我想确保我不会做错(这也是为什么我没有自己做任何实验)。所以如果有人知道如何一步一步地做,这样就不会出错,我会非常感激。
我也可以运行另一个工具,但我想那会困难得多。
更新 1: 我已经尝试过 system-config-lvm,但我处于相同的情况,图片如下:
再次,它不允许调整大小,因为剩余空间为零。
更新 2:
# fdisk -l -s /dev/vda
Disk /dev/vda: 171.8 GB, 171798691840 bytes
16 heads, 63 sectors/track, 332881 cylinders, total 335544320 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: 0x0006f748
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 501758 167770111 83634177 5 Extended
/dev/vda5 501760 167770111 83634176 8e Linux LVM
更新 3:
我在 VMware 中本地设置了一台类似的机器。在我的本地设置中,/dev/sda* 而不是 /dev/vda*,磁盘大小为 20 GB 而不是 80 GB,我想要添加的新空间为 30 GB 而不是 80 GB,其他方面都一样。我在 GParted 中看到的情况与真实服务器完全相同,/dev/sda5 无法调整大小。以下是我使用 fdisk 的尝试:
# fdisk -l -s /dev/sda
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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: 0x0003ce62
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 41940991 20719617 5 Extended
/dev/sda5 501760 41940991 20719616 8e Linux LVM
在这里我可以看到 /dev/sda2(本地虚拟机)甚至与 /dev/vda2(真实服务器)在同一个扇区上启动。/dev/sda5 和 /dev/vda5 也是如此。
# fdisk /dev/sda
Command (m for help): d
Partition number (1-5): 5
Command (m for help): d
Partition number (1-5): 2
Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!)
Command (m for help): u
Changing display/entry units to sectors
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
Partition number (1-4, default 2): 2
First sector (499712-104857599, default 499712): 501758
Last sector, +sectors or +size{K,M,G} (501758-104857599, default 104857599):
Using default value 104857599
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (503806-104857599, default 503806): 501760
Value out of range.
First sector (503806-104857599, default 503806): ^C
这就是为什么我猜测真正的服务器也会在这里失败。请注意,我使用了两次“u”命令,因为它已经处于“扇区”模式。
答案1
您操作的顺序错误。请按照以下步骤操作:
- 第一的,备份你的数据(并拍摄快照)
- 使用 GParted 调整大小首先是 /dev/vda2和 /dev/vda5 之后
- 重新启动虚拟机
- 使用
pvresize /dev/vda5
和lvresize
分别调整物理卷和逻辑卷的大小。
编辑:如何使用 fdisk 调整分区大小要调整分区大小,恰恰按着这些次序:
- 第一的,备份你的数据(并拍摄快照)
- 发射
fdisk /dev/vda
- 按
d
(删除)并删除分区 5 - 按
d
(删除)并删除分区 2 - 按下
u
将单位更改为扇区(无论如何应该是默认的) - 按
n
(新建)并创建一个新的扩展分区,使用所有可用空间。这是至关重要的一步。作为第一个扇区,输入501758
;作为最后一个扇区,只需使用默认值 - 按
n
(新建)并创建一个逻辑分区。这是至关重要的一步。作为第一个扇区,使用默认值(是错的,但我们稍后会更改它);作为最后一个扇区,只需使用默认值 - 按
t
(类型),选择分区 n.5,然后输入代码8e
(LVM) - 按下
x
(专家模式) - 按
b
(更改分区的开头)并选择分区 5 - 当询问“数据的新开始”时,输入
501760
- 按
r
(return) 返回 fdisk 主菜单 - 按
p
(打印)打印分区表并再三检查是否正确 - 按下
w
(写入磁盘) - 重新启动虚拟机
- 在虚拟机中,输入
pvresize /dev/vda5
。现在,您的物理卷已调整大小 - 您现在可以调整逻辑卷的大小。假设您的卷组名为
vg
,逻辑卷名为lv
,并且其上有一个 ext4 文件系统,则可以使用以下命令调整其大小:lvresize vg/lv -l +100%FREE; resize2fs /dev/vg/lv
答案2
首先,您需要扩展 LVM。(实际上……首先您需要备份您的数据:P)
请参阅此处@cao-minh-tu 的第二个回答。
https://askubuntu.com/questions/196125/how-can-i-resize-an-lvm-partition-ie-physical-volume