我正在运行 CentOS 7 虚拟机,其中有第二个磁盘 (sdb),我需要经常扩展它。扩展磁盘并打开“parted”以便创建新分区后,返回以下错误消息:
错误:备份 GPT 表不在磁盘的末尾,而它应该在磁盘的末尾。这可能意味着另一个操作系统认为该磁盘较小。通过将备份移动到末尾(并删除旧备份)来修复?警告: /dev/sdb 的可用空间并未全部被使用,您可以修复 GPT 以使用所有空间(额外的 10485760 块)还是继续当前设置?
如果我输入“Fix”,该消息就会消失,并且我可以创建新分区。
有人可以建议使用此方法是否有可能发生数据损坏或破坏/删除磁盘上的数据吗?
答案1
如果您的(虚拟)磁盘神奇地变大,那么该消息是正常的。
GPT 分区表位于磁盘的开头和结尾。它应该使它对失败更有弹性。
当您“修复”此问题时,它只会在磁盘的新端重新写入 GPT 备份标头。如果设备开头的主 GPT 标头完好无损,这根本不会以任何方式影响现有分区。
如果您要更改逻辑扇区大小,情况将有所不同。不幸的是,GPT 仍然依赖于那个……在这种情况下,您必须知道分区偏移量(以字节为单位)并从头开始重新创建分区表,或者希望其中一种gdisk
扩展模式能够修复它。
答案2
2019 更新:::
有与上面类似的情况(运行parted -l),但有一个额外的错误,如下所示。针对这两个问题输入“修复”不会对服务器造成任何损害。
消息1:
Error: The backup GPT table is not at the end of the disk, as it should be.
This might mean that another operating system believes the disk is smaller.
Fix, by moving the backup to the end (and removing the old backup)?
Fix/Ignore/Cancel? Fix
消息2:
Warning: Not all of the space available to /dev/sda appears to be used,
you can fix he GPT to use all of the space (an extra 7812939776
blocks) or continue with the current setting?
Fix/Ignore? Fix
答案3
看这个答案关于超级用户。将辅助 GPT 标头移动到磁盘的新末端后,parted 警告应该消失。
# Move secondary GPT header to end of disk
sgdisk -e /dev/sda
答案4
我有同样的问题,我使用growpart
而不是parted
.
它不会显示任何错误,并且支持扩展主磁盘而无需重新启动虚拟机。
我在下面的文章中写了说明: