Увеличен размер диска в виртуальной машине, но gdisk не хочет использовать новое пространство

Увеличен размер диска в виртуальной машине, но gdisk не хочет использовать новое пространство

У меня есть виртуальная машина с виртуальным диском (видимым как /dev/sdb) размером 10G

Администратор увеличил размер виртуального диска до 60ГБ.

Я перезагрузил машину и теперь вижу, что диск стал больше.

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 сообщает мне, что размер диска составляет 60 ГБ, но последний используемый сектор — это сектор, соответствующий размеру старого образа диска 10 ГБ:

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.

Поэтому, хотя размер образа диска увеличился и виртуальная машина видит изменения, я не знаю, как использовать освободившееся пространство.

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:~# 

Как можно решить эту проблему?

Конечной целью является увеличение размера существующего раздела, но даже если я смогу просто добавить новые разделы, я уже буду счастлив.

решение1

СогласноИзменение размера раздела fdisk завершается ошибкой из-за недопустимого аргументапост, похоже, что вы используетерасстались(например sudo parted -l) и пусть это "исправить"проблема с таблицей разделов, не покрывающей весь диск или что-то в этом роде.

Как только исправление будет применено с помощью этого инструмента, чтобы обойти эту проблему, вы просто продолжите выполнение команды sudo fdisk /dev/sdb1и, по-видимому, запустите ее sudo resize2fs /dev/sdb1после этого, чтобы изменения вступили в силу.

Важный: Не забудьте сделать полную резервную копию системы перед внесением любых изменений в разделы диска.

Мне удалось решить эту проблему довольно просто. Я установил parted, и когда я его запустил, он сообщил мне, что таблица разделов не покрывает весь диск (ну и что), поэтому он попросил меня исправить/отменить, на что я ответил Fix.

Видимо, это сработало, так как мне удалось изменить раздел до полного размера с помощью sudo fdisk /dev/vda, но после этого мне пришлось запустить , sudo resize2fs /dev/vda3чтобы изменения вступили в силу.

Источник

Кроме того, есть советы от других поИзменение размера раздела fdisk завершается ошибкой из-за недопустимого аргументаразмещайте в форме ответов и комментариев, которые также могут оказаться вам полезными и выгодными.


Поддерживающие ресурсы

решение2

Пост Расширение раздела на диске VMware в Linux имеет следующую процедуру:

  • Исправьте таблицу GPT с помощью parted:sudo parted -l
  • Остановите все службы, которые обращаются к этим дискам, и отмонтируйте диск, например:

    sudo systemctl stop jenkins.service
    sudo systemctl stop apache2.service
    sudo umount /dev/sdb1
    

    Этот шаг можно обойти, загрузившись с диска GParted, как описано ниже.

  • Расширить раздел с помощью fdisk:sudo fdisk /dev/sdb


Поскольку для увеличения диска изнутри виртуальной машины требуется остановить все службы, которые могут использовать диск, этого можно избежать, загрузив виртуальную машину с помощью GParted.

Статья Используйте GParted для увеличения размера раздела на диске Linux подробно описывает всю процедуру.

решение3

Причина в том, что GPT имеет резервную копию таблицы разделов, размещенную в конце диска, поэтому даже если у диска есть «новый конец», резервная копия не переходит к нему автоматически и ограничивает используемые блоки старой «областью».

Вы можете просто «стереть» (очистить) GPT ( xа затем zв gdisk), а затем создать новый с теми же записями раздела (введя то же начало и, при желании, тот же конец).

Если вы используете загрузку UEFI, то вполне можно удалить и защитную MBR, поскольку в ней не должно быть загрузочного кода, который нужно сохранять.

EDIT: На самом деле кажется, что можно просто xи затем eв gdisk.

Связанный контент