调整 VirtualBox VM 磁盘大小,但分区时无法使用所有新的可用空间

调整 VirtualBox VM 磁盘大小,但分区时无法使用所有新的可用空间

昨天我将 VM 虚拟磁盘的大小从大约 15 GB 调整到了大约 26 GB。

如果我运行 fdisk,我可以检查磁盘是否已调整大小:

Disk /dev/sda: 26.2 GB, 26214400000 bytes
255 testine, 63 settori/tracce, 3187 cilindri, totale 51200000 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x0005c952

它不再是 15 GB,而是 26.6 GB。

所以我跑了

fdisk /dev/sda

对其进行分区。

Comando (m per richiamare la guida): n
Partition type:
p   primary (1 primary, 1 extended, 2 free)
l   logical (numbered from 5)
    Select (default p): p
    Numero della partizione (1-4, predefinito 3): 3
    Primo settore (499712-51199999, predefinito 499712): 
    Utilizzo del valore predefinito 499712
    Last settore, +settori or +size{K,M,G} (499712-501757, predefinito 501757): 
    w

我已经看到扇区间隔太短了。

我保留 ID 为 83 的分区(Linux 分区),然后运行:

partprobe -s
/dev/sda: msdos partitions 1 3 2 <5>
/dev/mapper/ubuntu--vg-swap_1: loop partitions 1
/dev/mapper/ubuntu--vg-root: loop partitions 1

但为了确保万无一失,我跑了

partprobe

也。

好的,我的分区是 /dev/sda3。

然后我跑了:

mkfs.ext4 /dev/sda3

输出:

mke2fs 1.42.9 (4-Feb-2014)

Filesystem troppo piccolo per un journal
Etichetta del filesystem=
OS type: Linux
Dimensione blocco=1024 (log=0)
Dimensione frammento=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128 inodes, 1020 blocks
51 blocks (5.00%) reserved for the super user
Primo blocco dati=1
Maximum filesystem blocks=1048576
1 block group
8192 blocchi per gruppo, 8192 frammenti per gruppo
128 inode per gruppo

Allocating group tables: fatto                           
Scrittura delle tavole degli inode: fatto                           
Scrittura delle informazioni dei superblocchi e dell'accounting del      filesystem: fatto

然后我安装它:

mount -t ext4 /dev/sda3 /priiiii

我发现我的分区非常小!!

df -h

File system                  Dim. Usati Dispon. Uso% Montato su
/dev/mapper/ubuntu--vg-root   15G  3,5G     11G  26% /
none                         4,0K     0    4,0K   0% /sys/fs/cgroup
udev                         492M  4,0K    492M   1% /dev
tmpfs                        101M  904K    100M   1% /run
none                         5,0M     0    5,0M   0% /run/lock
none                         501M   80K    501M   1% /run/shm
none                         100M   32K    100M   1% /run/user
/dev/sda1                    236M   36M    189M  16% /boot
**/dev/sda3                    999K   17K    911K   2% /priiiii**

为什么分区不能使用调整大小后的磁盘的所有未分配空间?

fdisk uot输出:

Dispositivo Boot      Start         End      Blocks    Id      System
/dev/sda1   *        2048      499711      248832   83     Linux
/dev/sda2          501758    33552383    16525313    5  Esteso
/dev/sda3          499712      501757        1023   83      Linux
/dev/sda5          501760    33552383    16525312   8e  Linux LVM

谢谢

答案1

如果您在虚拟机中执行所有这些操作,那么您就是在给自己增加不必要的工作。让我分 3 个部分来回答这个问题。
首先,按照您采取的方法,您的分区表发生了一些非常奇怪的事情。根据我的经验,当您“扩大”物理磁盘时(通常通过从一个小的真实磁盘向一个更大的磁盘进行块复制),分区表需要重新创建,因为即使使用相同的磁盘参数,您也会遇到对齐问题。话虽如此,如果磁盘确实扩大了(就像在真实磁盘中会发生的那样),我不明白为什么 fdisk 不能重新创建新的分区表。
其次,LVM 的创建是为了在物理驱动器和分区以及它们所包含的卷之间进行抽象。因此,当使用虚拟机时,没有物理空间的问题(通常在升级真实磁盘时,您会摆脱旧磁盘),您只需创建一个新的 11Gb 虚拟磁盘,并将其加入到您的卷中,而不必经历弄乱旧 vmfs 文件的痛苦。

如果您坚持采用这种方法,那么显然出了问题。正如@daniel 所建议的,尝试重新启动,但就我个人而言,我会考虑创建一个新的映像,其中包含一组新的分区和卷,然后复制所有内容。您花在复制上的时间,将节省您试图弄清楚如何让分区表乱序的时间。

相关内容