在 Azure 中增加操作系统磁盘大小后分区大小未调整

在 Azure 中增加操作系统磁盘大小后分区大小未调整

我有一个 Ubuntu VM,它有一个与之关联的非托管操作系统磁盘。

当我们将非托管操作系统磁盘的大小从 30 GB 增加到 50 GB 时(在释放 VM 并从平台增加其大小之后),这些更改并未反映在文件系统 /dev/sda1 中,并且它继续显示分区的大小为 30 GB。

当我使用 RDP 命令访问 VM 时,增加的 20 GB 显示为可用空间。

有人能帮我将 /dev/sda1 文件系统的大小增加到 50 GB 吗?

附件是相同的屏幕截图。 操作系统磁盘的当前分区

答案1

首先,您必须扩大现有分区以使用全部磁盘空间。我不知道您是否可以使用您显示的 GUI 来执行此操作。您可以从命令行使用 fdisk。~这似乎是旧式 MBR 分区,所以这应该不是问题~。No I was wrong about that, the simple disktool in the screenshot mistook a MBR compatible GPT partitioning for MBR partitioning.

要检查磁盘是否使用 GPT,您可以使用gdisk -l /dev/sda 如果它使用 MBR,它将发出警告:Found invalid GPT and valid MBR。如果磁盘使用与 MBR 兼容的 GPT,它将显示Found valid GPT with hybrid MBR; using GPT。否则它是与 MBR 不兼容的普通 GPT。

要对 GPT 磁盘进行分区,您必须使用 gdisk。您还必须使用其专家模式并将备份表重新定位到磁盘末尾,否则您无法扩大分区。

这应该是您的起始分区表。

Number  Start (sector)    End (sector)  Size       Code  Name
   1          227328        62916574   29.9 GiB    8300  
  14            2048           10239   4.0 MiB     EF02  
  15           10240          227327   106.0 MiB   EF00

然后您可以使用 gdisk 来编辑数字 1:

gdisk /dev/sda
b)ackup
e(x)pert mode>
e (relocate backup)
p(rint)
d(elete)
n(ew) start sector as original, set end to end of disk
w(rite) and exit

也许您必须重新读取分区。通常这会自动更新。否则echo 1 > /sys/block/sda/device/rescan. 执行lsblk应显示正确的尺寸。

其次,你必须扩展文件系统本身。你在这里展示的是 ext4,因此可以使用resize2fs /dev/sda1

答案2

为了修复第一次尝试,如果您可以从恢复 ISO 启动并将磁盘视为 /dev/sda。

如果您有 sfdisk,则可以在 Bash shell 中使用以下命令恢复原始表

sfdisk /dev/sda << ENDOFTEXT
label: gpt
label-id: 040CDE21-820F-4D45-BAAD-55179836906D
device: /dev/sda
unit: sectors
first-lba: 34
last-lba: 62916574

/dev/sda1 : start=      227328, size=    62689247, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=EAA46D6B-3DF1-47A5-ADE4-7CDFCD3E6660, name="Linux filesystem"
/dev/sda14 : start=        2048, size=        8192, type=21686148-6449-6E6F-744E-656564454649, uuid=A5D04890-AA4D-479B-A053-B25AF2DE98FD, name="BIOS boot partition"
/dev/sda15 : start=       10240, size=      217088, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=16250F9E-6B15-480E-8376-EB9377658F0A, name="EFI System"
ENDOFTEXT

如果你只有 gdisk,那么在你启动后,以下序列将为你提供原始表gdisk /dev/sda

o
n
1
227328
default
8300
n
15
10240
default
EF00
n
14
default
default
EF02
w
y

相关内容