我有一个虚拟机,我正在尝试将其从 150GB 扩展到 500GB。
$ sudo cfdisk /dev/sda
cfdisk (util-linux 2.23.2)
Disk Drive: /dev/sda
Size: 536870912000 bytes, 536.8 GB
Heads: 255 Sectors per Track: 63 Cylinders: 65270
Name Flags Part Type FS Type [Label] Size (MB)
--------------------------------------------------------------------------
Pri/Log Free Space 1.05*
sda1 Boot Primary xfs 536.88*
sda2 Primary LVM2_member 536333.00*
我已经跑了fdisk
(https://unix.stackexchange.com/a/134813/173008)删除并创建新的 sda2 分区。
我正在遵循本指南(https://unix.stackexchange.com/a/108229/173008),但是我陷入困境,因为我无法扩展vg0
以使用这个额外的空间。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-rootvol 146G 123G 16G 90% /
/dev/sda1 509M 268M 242M 53% /boot
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 vg0 lvm2 a-- <149.50g 0
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <149.50g 0
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
rootvol vg0 -wi-ao---- <147.50g
swap1 vg0 -wi-ao---- 2.00g
问题是 上没有“额外空间” /dev/sda2
,并且仍然显示<149.5g
,因此运行以下命令不起作用:
$ sudo pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
$ sudo lvextend --size +350G /dev/mapper/vg0-rootvol
Insufficient free space: 89600 extents needed, but only 0 available
我被困住了,不知道如何解决这个问题。任何帮助,将不胜感激。
答案1
在扩展逻辑卷之前必须先扩展卷组,因为逻辑卷包含在卷组中。
要执行这些操作,您必须卸载文件系统。卸载它们并且仍然能够在系统上工作的最简单方法是运行实时 Linux 操作系统。
通常这个实时系统会在拇指驱动器上,但是因为您使用的是虚拟机,您可以在虚拟机的设置中将实时 Linux 系统的 ISO 文件挂载到虚拟机,然后设置启动优先级,以便它从 ISO 启动。
我知道 Ubuntu 和 Fedora 都提供安装映像作为实时操作系统,许多其他发行版也是如此。您可能需要安装lvm2
(apt 软件包),以便拥有所需的工具。
要扩展卷组,您需要使用卷组可以扩展到的可用空间创建一个新的物理分区。
fdisk /dev/sda/
在交互式菜单中,执行以下操作:
n to create a new partition
3 for the third partition
Enter for default first sector
Enter again for default last sector
w to write changes and exit
提示可能因系统而异,但本质上您只需要一个所需大小的新分区。我所展示的将使用磁盘上的所有可用空间。现在需要将分区做成LVM分区,或者物理卷
pvcreate /dev/sda3
然后,您可以将包含卷组的物理卷扩展到新的物理卷,将两者组合起来。
pvextend /dev/vg0 /dev/sda3
现在,如果您这样做,vgs
您应该会看到卷组更大,从而为逻辑卷提供了扩展空间。
lvextend --size +350G /dev/mapper/vg0-rootvol
逻辑卷现在应该更大。
lvs
答案2
您不会在 /dev/sda2 中找到更多空间,因为您没有扩展它或使用新空间创建另一个新分区。
您应该通过以下命令创建新的 350GB 的 /dev/sda3 :
fdisk /dev/sda
n create new
p primary partition
[enter]
//then change the partition type to lvm using this :
t to change type
8e is for lvm
完成后输入 w 写入并重新启动机器
现在,创建 /dev/sda3 后,您可以使用以下命令扩展所需的 vg:
pvcreate /dev/sda3
vgextend vg_xxx /dev/sda3
pvscan
vgdisplay
lvextend -l +350GB /dev/vg_xxx-lv_xxyy
xfs_growfs /dev/vg_xxx-lv_xxyy
lvdisplay
vgdisplay