我在 Azure 中使用 Oracle Linux 9 创建了一个虚拟机。我选择了一个 128G 磁盘,但当我看到分区大小时,我发现它没有完全使用。
[root@oraclelinux ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 800M 0 part /boot
├─sda2 8:2 0 28.7G 0 part
│ ├─rootvg-rootlv 252:0 0 18.7G 0 lvm /
│ └─rootvg-crashlv 252:1 0 10G 0 lvm /var/crash
├─sda14 8:14 0 4M 0 part
└─sda15 8:15 0 495M 0 part /boot/efi
sdb 8:16 0 32G 0 disk
└─sdb1 8:17 0 32G 0 part /mnt
我需要将所有可用的额外空间添加到 rootvg-rootlv 分区。我在 Azure 文档中没有找到方法。如何向带有挂载点 / 的分区添加更多空间?
[root@oraclelinux ~]$ parted /dev/sda print
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use
all of the space (an extra 205520896 blocks) or continue with the current setting?
Fix/Ignore? ignore
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 137GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
14 1049kB 5243kB 4194kB bios_grub
15 5243kB 524MB 519MB fat16 EFI System Partition boot, esp
1 525MB 1364MB 839MB xfs
2 1364MB 32.2GB 30.8GB lvm
答案1
首先:
- 如果这是一个生产系统,那么在没有首先在其他地方进行测试的情况下不要进行任何更改
- 在进行任何更改之前进行备份(或外部快照)
输出parted
按顺序显示磁盘上的分区。幸运的是,LVM 分区位于列表的末尾,因此可以轻松扩展。
以下所有命令均应以 root 身份运行。 (你备份了吗?)
允许
parted
修复实际磁盘大小和报告的磁盘大小之间的差异。您可能需要先安排重新启动,然后再继续调整 LVM 分区大小以占用磁盘的剩余空间:
parted /dev/sda resizepart 2 100%
调整已调整大小的分区内的物理卷容器的大小:
pvresize /dev/sda2
您现在应该拥有一个足够大的 VG,足以允许您的逻辑卷增长。检查
VSize
现在是否接近 126GB 而不仅仅是 30GB:vgs
调整根文件系统逻辑卷的大小,同时增加它所容纳的文件系统的大小:
lvextend --size +50GB --resizefs /dev/rootvg/rootlv
在这里,我将文件系统扩展了 50GB,而不是全部,以便有空闲空间可用于在同一 VG 中扩展或创建另一个文件系统。如果您几乎可以保证这不是必需的,您可以扩展
rootlv
以使用全部空间