PVE虚拟机增加硬盘空间后,输入fdisk -l
后出现以下错误解决方法
GPT PMBR size mismatch (67108863 != 83886079) will be corrected by write.
The backup GPT table is not on the end of the device.
备份数据:在进行任何磁盘操作之前,确保已备份虚拟机中的重要数据
使用parted
修复
安装parted
工具(如果尚未安装):
apt install parted
最简单快捷的办法就是直接输入
sudo parted -l
然后输入
fix
就好了
或者使用以下方式
运行以下命令,替换 /dev/sdX 为你的虚拟磁盘(例如 /dev/sda):
sudo parted /dev/sdX
在 parted 提示符下,输入以下命令:
print
输入以下命令来检查分区表:
mklabel gpt
parted
将会提示你确认。如果你确认要修复GPT
表,请输入yes
,这一步会重新创建分区表,但不会删除数据
如果mklabel
步骤后需要重新添加分区,请记录下每个分区的起始位置和大小,并使用以下命令重新添加分区:
mkpart primary ext4 <start> <end>
用你记录的起始和结束位置替换<start>
和<end>
,确保类型(如ext4
)与原分区相同
完成所有操作后,输入quit
退出parted
这将显示当前的分区表,确保你可以看到所有分区的起始和结束位置
使用gdisk
修复
安装 gdisk 工具(如果尚未安装):
apt install gdisk
运行gdisk
,替换/dev/sdX
为你的虚拟磁盘(例如/dev/sda
):
sudo gdisk /dev/sdX
在提示符下,输入v
进行验证。gdisk
将会检查并报告任何错误
如果发现错误,输入w
来写入更正后的分区表,确认时,输入Y
完成上述步骤后,使用fdisk -l
再次检查分区表,确保没有错误
或者使用下面方法重新建立分区表
运行 gdisk:
sudo gdisk /dev/sdX
在gdisk
提示符下,输入p
来打印当前的分区表
输入d
,然后输入要删除的分区号,然后确认
输入n
创建新分区
按提示输入分区号、起始扇区和结束扇区。通常,起始扇区可以使用默认值,结束扇区可以设置为分区的最大值(通常使用 +size 语法)
在完成所有更改后,输入w
将更改写入磁盘,输入 Y 确认
输入q
退出gdisk
使用fdisk
修复
打开终端并运行以下命令,替换 /dev/sdX 为你的虚拟磁盘(例如 /dev/sda):
fdisk /dev/sdX
打印当前分区表:
- 输入
p
命令打印当前分区表
删除并重新创建分区: - 先记录下当前分区的起始扇区和大小
- 输入
d
命令删除当前分区,选择要删除的分区号 - 输入
n
命令创建一个新分区,使用之前记录的起始扇区 - 使用
p
命令确认分区设置无误
写入分区表: - 输入
w
命令写入更改
重新检查分区表: - 重新运行
fdisk -l
来确认没有错误信息
如果上面步骤修复完分区表后没有自动出现在自己的分区里请看下面
更新分区表并把容量加到想要加的磁盘分区里
如果使用parted -l
发现硬盘空间容量显示正常但是分区里没有增加的容量请使用以下命令
使用parted
更新分区表
运行 parted:
sudo parted /dev/sdX
输入 resizepart 命令:
resizepart <partition_number> <end>
<partition_number>
是要扩展的分区号,<end>
是要设置的新结束位置,通常使用100%
来扩展到最大
输入quit
退出parted
重新扫描物理卷
sudo pvresize /dev/sdX
把容量增加到 LVM 逻辑卷
sudo lvextend -l +100%FREE /dev/vg_data/lv_data
扩展文件系统
扩展逻辑卷后,你需要扩展文件系统以利用新空间,根据你使用的文件系统类型,使用不同的命令
对于ext4
文件系统:
sudo resize2fs /dev/vg_data/lv_data