/dev/sdb
我有一个带有大小为 10G的虚拟磁盘(显示为 )的 VM
管理员将虚拟磁盘的大小增加到 60G。
我重新启动了机器,现在看到磁盘更大了。
root@DMZMHLX3:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
sdb 8:16 0 60G 0 disk
└─sdb1 8:17 0 10G 0 part /app
...
现在我想添加另一个分区:
gdisk 告诉我磁盘大小为 60G,但最后一个可用扇区是对应于旧的 10G 磁盘映像大小的扇区:
root@DMZMHLX3:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 125829120 sectors, 60.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 20969471 10.0 GiB 8300
最后一个可用扇区应该是 125829120 而不是 20971486。
因此,尽管磁盘映像大小增加并且 VM 看到了变化,但我不知道如何使用新的可用空间。
fdisk 向我展示:
root@DMZMHLX3:~# fdisk -l /dev/sdb
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
Disk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D
Device Start End Sectors Size Type
/dev/sdb1 2048 20969471 20967424 10G Linux filesystem
它识别不匹配:
GPT PMBR 大小不匹配 (20971519 != 125829119) 将由 w(rite) 纠正。但是当尝试写入 fdisk 失败时:
Command (m for help): w
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
root@xxx:~#
我该如何解决这个问题?
最终目标是增加现有分区的大小,但即使我可以添加新分区,我也已经很高兴了
根据Resizing partition fdisk failed with invalid argument post,您似乎使用了parted(例如
sudo parted -l
)并让它“修复”了分区表未覆盖整个磁盘或其他问题的问题。一旦使用该工具应用该修复以解决该问题,您只需继续执行该
sudo fdisk /dev/sdb1
命令,然后显然运行sudo resize2fs /dev/sdb1
以应用更改。重要提示: 在进行任何磁盘分区更改之前,不要忘记进行完整的系统备份。
此外,还有其他人关于调整分区 fdisk 失败的建议,以答案和评论的形式出现无效的参数帖子,您可能会发现它们也很有用和有益。
支持资源
调整分区 fdisk 大小失败,参数无效
分开
在 Linux 中扩展 VMware 磁盘上的分区后 有以下过程:
sudo parted -l
停止任何访问这些磁盘的服务并卸载磁盘,例如:
这一步可以通过从 GParted 磁盘引导来避免,如下所述。
从 fdisk 扩展分区:
sudo fdisk /dev/sdb
由于从 VM 中扩大磁盘需要停止任何可能正在使用该磁盘的服务,因此可以通过使用 GParted引导 VM 来避免这种情况。
文章 使用 GParted 增加 Linux 本机分区的磁盘大小 详细描述了整个过程。
原因是 GPT 有一个分区表的备份副本放在磁盘的末尾,所以即使磁盘有一个“新端”,备份也不会自动转到它,并将可用块限制为旧的“区域”。
您可以简单地“删除”(擦除)GPT(
x
然后z
在 中gdisk
),然后创建一个具有相同分区条目的新 GPT(通过输入相同的开头和可选的结尾)。如果您正在执行 UEFI 引导,那么也可以关闭保护性 MBR,因为应该没有需要保留的引导代码。
编辑:实际上,您似乎可以简单地
x
然后e
在gdisk
.