虚拟机中的磁盘大小增加,但 gdisk 不想使用新空间

gel*_*ida 5 virtualization mbr fdisk gpt gdisk

我有一个虚拟机,其虚拟磁盘(显示为/dev/sdb)大小为 10G

\n\n

管理员将虚拟磁盘的大小增加到 60G。

\n\n

我重新启动机器,现在看到磁盘更大了。

\n\n
root@DMZMHLX3:~# lsblk\nNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\n...\nsdb      8:16   0   60G  0 disk \n\xe2\x94\x94\xe2\x94\x80sdb1   8:17   0   10G  0 part /app\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我想添加另一个分区:

\n\n

gdisk 告诉我磁盘大小为 60G,但最后一个可用扇区是与旧的 10G 磁盘映像大小相对应的扇区:

\n\n
root@DMZMHLX3:~# gdisk -l /dev/sdb\nGPT fdisk (gdisk) version 1.0.1\n\nPartition table scan:\n  MBR: protective\n  BSD: not present\n  APM: not present\n  GPT: present\n\nFound valid GPT with protective MBR; using GPT.\nDisk /dev/sdb: 125829120 sectors, 60.0 GiB\nLogical sector size: 512 bytes\nDisk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D\nPartition table holds up to 128 entries\nFirst usable sector is 34, last usable sector is 20971486\nPartitions will be aligned on 2048-sector boundaries\nTotal free space is 4029 sectors (2.0 MiB)\n\nNumber  Start (sector)    End (sector)  Size       Code  Name\n   1            2048        20969471   10.0 GiB    8300  \n
Run Code Online (Sandbox Code Playgroud)\n\n

最后一个可用扇区应该类似于 125829120 而不是 20971486。

\n\n

因此,尽管磁盘映像大小已增加并且虚拟机看到了变化,但我不知道如何使用新的可用空间。

\n\n

fdisk 向我展示:

\n\n
root@DMZMHLX3:~# fdisk -l /dev/sdb\nGPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).\nDisk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 512 bytes\nI/O size (minimum/optimal): 512 bytes / 512 bytes\nDisklabel type: gpt\nDisk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D\n\nDevice     Start      End  Sectors Size Type\n/dev/sdb1   2048 20969471 20967424  10G Linux filesystem\n
Run Code Online (Sandbox Code Playgroud)\n\n

它识别出不匹配:

\n\n
\n

GPT PMBR 大小不匹配 (20971519 != 125829119) 将由\nw(rite) 纠正。\n 但是当尝试写入 fdisk 失败时:

\n
\n\n
Command (m for help): w\nGPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).\nfdisk: failed to write disklabel: Invalid argument\nroot@xxx:~# \n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何解决这个问题?

\n\n

最终目标是增加现有分区的大小,但即使我可以添加新分区,我也已经很高兴了

\n

Vom*_*yle 5

根据调整分区大小 fdisk 因无效参数而失败的帖子,看来您使用了parted(例如sudo parted -l)并让它“修复”分区表不覆盖整个磁盘或其他问题的问题。

一旦该修复应用到该工具来解决该问题,您只需继续执行该sudo fdisk /dev/sdb1命令,然后显然运行sudo resize2fs /dev/sdb1即可应用更改。

重要提示: 在进行任何磁盘分区更改之前,不要忘记进行完整的系统备份。

我设法相当简单地解决了这个问题。我安装了parted,当我运行时,它告诉我分区表没有覆盖整个磁盘(废话),所以它询问我“修复/取消”,我用“修复”进行了回应。

显然,这成功了,因为我能够使用将分区修改为完整大小sudo fdisk /dev/vda,但之后我确实需要运行sudo resize2fs /dev/vda3才能应用更改。

来源

此外,其他人还以答案和评论的形式提供了关于调整分区大小 fdisk 失败并出现无效参数的建议,您可能会发现这些建议也很有用和有益。


支持资源