В этой статье я описывал как изменить MBR на GPT. Но если у вас весь диск занят существующим разделом, то вы получите предупреждение:

Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.

Если вкратце, то для создания GPT в конце диcка необходимо около 1 MiB свободного дискового пространства, именно неразмеченного. Почему так можете почитать тут.

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

Размер раздела и данные

  1. Конечно же я рекомендую вам скопировать всё данные с диска или сделать резервную копию. Всегда что-то может пойти не так, будьте к этому готовы.
  2. Не выставляйте размер раздела меньше чем весят данные на разделе. Т.е. если на /dev/sda1 у вас лежит 10 Гб данных не уменьшайте размер раздела меньше чем на 11 Гб.

Тип файловой системы XFS

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

Для проверки типа файловой системы можно выполнить:

sudo parted /dev/sda p
Disk Flags:

Number  Start   End     Size    File system  Name              Flags
 1      1049kB  9000MB  8999MB  xfs         Linux filesystem

Тип файловой системы EXT

Если же тип файловой системы EXT4 или EXT3, то тут уже можно поработать.

  1. Проверяем что у нас действительно MBR (msdos) и тип файловой системы EXT4
    sudo parted /dev/sda p
    
    Disk /dev/sda: 10.7GB
    Partition Table: msdos
    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  10.7GB  10.7GB  primary  ext4 
    
  2. Дальше необходимо размонтировать устройство (обязательно)
    sudo umount /dev/sda1
    
  3. Проверяем целостность структуры файлов ext4. Не должно быть никаких ошибок
    sudo e2fsck -f /dev/sda1
    
  4. Уменьшаем файловую систему ext4. Обратите внимание что я уменьшаю на целых 2 Гб. Дело в том, что сам размер раздела я собираюсь уменьшить на 1Гб, хотя можно и меньше. А вот размер файловой системы лучше указать меньше чем размер раздела. Размеры в resize2fs (файловая система) и resizepart (сам раздел) измеряются по-разному и округляются в разных единицах. Поэтому, если указать одно и то же число (например, 9G в обоих случаях), на самом деле:
    • файловая система получится чуть больше (так как resize2fs считает в GiB — 1024³ байта),
    • а раздел — чуть меньше (потому что parted считает в GB — 1000³ байт).
      sudo resize2fs /dev/sda1 8G
      
  5. Уменьшаем раздел до 9 GB
    sudo parted /dev/sda
    print
    resizepart 1 9G
    quit
    
  6. Конвертируем MBR → GPT, подробнее тут
    sudo gdisk /dev/sda
    w
    
  7. Проверяем таблицу и ФС
    sudo parted /dev/sda print
    sudo e2fsck -f /dev/sda1
    
  8. Монтируем и проверяем доступ
    sudo mount -a
    sudo mount /dev/sda1 decrease/
    ls decrease/