Изменение размера диска ОС с разделом GPT

Применимо к: ✔️ виртуальные машины Linux ✔️ гибкие масштабируемые наборы

Примечание

Этот сценарий применим только к дискам ОС с таблицей разделов GPT.

В этой статье описывается, как увеличить размер диска ОС с разделом GPT в Linux.

Необходимо определить, содержит ли диск ОС раздел MBR или GPT

Используйте команду parted, чтобы узнать, создан ли раздел диска с помощью раздела основной загрузочной записи (MBR) или раздела GPT.

Раздел MBR

В следующих выходных данных таблица разделов отображает значение msdos. Это значение указывает на раздел MBR.

[user@myvm ~]# parted -l /dev/sda
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number  Start   End     Size    Type     File system  Flags
1       1049kB  525MB   524MB   primary  ext4         boot
2       525MB   34.4GB  33.8GB  primary  ext4
[user@myvm ~]#

Раздел GPT

В следующих выходных данных таблица разделов отображает значение gpt. Это значение указывает на наличие раздела GPT.

[user@myvm ~]# parted -l /dev/sda
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
1       1049kB  525MB   524MB   fat16        EFI System Partition  boot
2       525MB   1050MB  524MB   xfs
3       1050MB  1052MB  2097kB                                     bios_grub
4       1052MB  68.7GB  67.7GB                                     lvm

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

Увеличение размера диска ОС

Приведенные ниже инструкции относятся к дистрибутивам, рекомендованным Linux.

Примечание

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

Ubuntu

Чтобы увеличить размер диска ОС в Ubuntu 16.x и 18.x

  1. Остановите виртуальную машину.
  2. Увеличьте размер диска операционной системы на портале.
  3. Перезапустите виртуальную машину, а затем войдите на виртуальную машину с учетными данными привилегированного пользователя.
  4. Убедитесь в том, что размер файловой системы на диске ОС увеличился.

Как показано в следующем примере, размер диска ОС на портале теперь равен 100 ГБ. Файловая система /dev/sda1, смонтированная на / , теперь имеет размер 97 ГБ.

user@myvm:~# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  314M     0  314M   0% /dev
tmpfs          tmpfs      65M  2.3M   63M   4% /run
/dev/sda1      ext4       97G  1.8G   95G   2% /
tmpfs          tmpfs     324M     0  324M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     324M     0  324M   0% /sys/fs/cgroup
/dev/sda15     vfat      105M  3.6M  101M   4% /boot/efi
/dev/sdb1      ext4       20G   44M   19G   1% /mnt
tmpfs          tmpfs      65M     0   65M   0% /run/user/1000
user@myvm:~#

SUSE

Увеличение размера диска ОС в SUSE 12 SP4, SUSE SLES 12 для SAP, SUSE SLES 15 и SUSE SLES 15 для SAP.

  1. Остановите виртуальную машину.
  2. Увеличьте размер диска операционной системы на портале.
  3. Перезапустите виртуальную машину.

После перезапуска виртуальной машины выполните следующие действия.

  1. Войдите на виртуальную машину с учетными данными привилегированного пользователя с помощью следующей команды:

    # sudo -i
    
  2. Используйте следующую команду, чтобы установить пакет growpart, который будет служить для изменения размера раздела:

    # zypper install growpart
    
  3. С помощью команды lsblk найдите раздел, подключенный к корню файловой системы ( / ). В этом случае можно видеть, что раздел 4 устройства sda подключен к / :

    # lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   48G  0 disk
    ├─sda1   8:1    0    2M  0 part
    ├─sda2   8:2    0  512M  0 part /boot/efi
    ├─sda3   8:3    0    1G  0 part /boot
    └─sda4   8:4    0 28.5G  0 part /
    sdb      8:16   0    4G  0 disk
    └─sdb1   8:17   0    4G  0 part /mnt/resource
    
  4. Измените размер требуемого раздела, задавая команду growpart и номер раздела, определенного на предыдущем шаге:

    # growpart /dev/sda 4
    CHANGED: partition=4 start=3151872 old: size=59762655 end=62914527 new: size=97511391 end=100663263
    
  5. Снова выполните команду lsblk, чтобы проверить, увеличился ли размер раздела.

    Следующие выходные данные показывают, что размер раздела /dev/sda4 теперь составляет 46,5 ГБ:

    linux:~ # lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   48G  0 disk
    ├─sda1   8:1    0    2M  0 part
    ├─sda2   8:2    0  512M  0 part /boot/efi
    ├─sda3   8:3    0    1G  0 part /boot
    └─sda4   8:4    0 46.5G  0 part /
    sdb      8:16   0    4G  0 disk
    └─sdb1   8:17   0    4G  0 part /mnt/resource
    
  6. Укажите тип файловой системы на диске ОС с помощью команды lsblk с флагом -f:

    linux:~ # lsblk -f
    NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
    sda
    ├─sda1
    ├─sda2 vfat   EFI   AC67-D22D                            /boot/efi
    ├─sda3 xfs    BOOT  5731a128-db36-4899-b3d2-eb5ae8126188 /boot
    └─sda4 xfs    ROOT  70f83359-c7f2-4409-bba5-37b07534af96 /
    sdb
    └─sdb1 ext4         8c4ca904-cd93-4939-b240-fb45401e2ec6 /mnt/resource
    
  7. Для изменения размера файловой системы используйте команды, соответствующие типу файловой системы.

    Для xfs используйте эту команду:

    #xfs_growfs /
    

    Выходные данные примера:

    linux:~ # xfs_growfs /
    meta-data=/dev/sda4              isize=512    agcount=4, agsize=1867583 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0 rmapbt=0
             =                       reflink=0
    data     =                       bsize=4096   blocks=7470331, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=3647, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 7470331 to 12188923
    

    Для ext4 используйте эту команду:

    #resize2fs /dev/sda4
    
  8. Проверьте, увеличился ли размер файловой системы для df -Th с помощью следующей команды:

    #df -Thl
    

    Выходные данные примера:

    linux:~ # df -Thl
    Filesystem     Type      Size  Used Avail Use% Mounted on
    devtmpfs       devtmpfs  445M  4.0K  445M   1% /dev
    tmpfs          tmpfs     458M     0  458M   0% /dev/shm
    tmpfs          tmpfs     458M   14M  445M   3% /run
    tmpfs          tmpfs     458M     0  458M   0% /sys/fs/cgroup
    /dev/sda4      xfs        47G  2.2G   45G   5% /
    /dev/sda3      xfs      1014M   86M  929M   9% /boot
    /dev/sda2      vfat      512M  1.1M  511M   1% /boot/efi
    /dev/sdb1      ext4      3.9G   16M  3.7G   1% /mnt/resource
    tmpfs          tmpfs      92M     0   92M   0% /run/user/1000
    tmpfs          tmpfs      92M     0   92M   0% /run/user/490
    

    В предыдущем примере можно увидеть, что размер файловой системы для диска ОС увеличился.

RHEL с LVM

  1. Войдите на виртуальную машину с учетными данными привилегированного пользователя с помощью следующей команды:

    [root@dd-rhel7vm ~]# sudo -i
    
  2. Используйте команду lsblk, чтобы определить, какой логический том (LV) подключен к корню файловой системы ( / ). В этом случае можно видеть, что rootvg-rootlv подключен к / . Если необходима другая файловая система, замените LV и точку подключения на всех этапах этого сценария.

    [root@dd-rhel7vm ~]# lsblk -f
    NAME                  FSTYPE      LABEL   UUID                                   MOUNTPOINT
    fd0
    sda
    ├─sda1                vfat                C13D-C339                              /boot/efi
    ├─sda2                xfs                 8cc4c23c-fa7b-4a4d-bba8-4108b7ac0135   /boot
    ├─sda3
    └─sda4                LVM2_member         zx0Lio-2YsN-ukmz-BvAY-LCKb-kRU0-ReRBzh
       ├─rootvg-tmplv      xfs                 174c3c3a-9e65-409a-af59-5204a5c00550   /tmp
       ├─rootvg-usrlv      xfs                 a48dbaac-75d4-4cf6-a5e6-dcd3ffed9af1   /usr
       ├─rootvg-optlv      xfs                 85fe8660-9acb-48b8-98aa-bf16f14b9587   /opt
       ├─rootvg-homelv     xfs                 b22432b1-c905-492b-a27f-199c1a6497e7   /home
       ├─rootvg-varlv      xfs                 24ad0b4e-1b6b-45e7-9605-8aca02d20d22   /var
       └─rootvg-rootlv     xfs                 4f3e6f40-61bf-4866-a7ae-5c6a94675193   /
    
  3. Проверьте, нет ли свободного пространства в группе томов (VG) LVM, содержащей корневой раздел. Если есть свободное пространство, перейдите к шагу 12.

    [root@dd-rhel7vm ~]# vgdisplay rootvg
    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        1
    Metadata Sequence No  7
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                6
    Open LV               6
    Max PV                0
    Cur PV                1
    Act PV                1
    VG Size               <63.02 GiB
    PE Size               4.00 MiB
    Total PE              16132
    Alloc PE / Size       6400 / 25.00 GiB
    Free  PE / Size       9732 / <38.02 GiB
    VG UUID               lPUfnV-3aYT-zDJJ-JaPX-L2d7-n8sL-A9AgJb
    

    В этом примере строка Free PE / Size показывает, что в группе томов свободно 38,02 ГБ. Перед добавлением пространства в группу томов не требуется изменять размер диска.

  4. Увеличение размера диска операционной системы в RHEL 7.x с LVM:

    1. Остановите виртуальную машину.
    2. Увеличьте размер диска операционной системы на портале.
    3. Запустите виртуальную машину.
  5. После перезапуска виртуальной машины выполните следующие действия.

    • Установите пакет cloud-utils-growpart для поддержки команды growpart, которая требуется для увеличения размера диска операционной системы, и обработчика gdisk для разметки диска GPT. Эти пакеты предварительно устанавливаются в большинстве образов Marketplace.
    [root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk
    
  6. Определите, какой диск и раздел содержат физический том или тома (PV) LVM в группе томов с именем rootvg, выполнив команду pvscan. Отметьте, какой размер и свободное пространство указаны в скобках ( [ и ] ).

    [root@dd-rhel7vm ~]# pvscan
      PV /dev/sda4   VG rootvg          lvm2 [<63.02 GiB / <38.02 GiB free]
    
  7. Проверьте размер раздела с помощью lsblk.

    [root@dd-rhel7vm ~]# lsblk /dev/sda4
    NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda4              8:4    0  63G  0 part
    ├─rootvg-tmplv  253:1    0   2G  0 lvm  /tmp
    ├─rootvg-usrlv  253:2    0  10G  0 lvm  /usr
    ├─rootvg-optlv  253:3    0   2G  0 lvm  /opt
    ├─rootvg-homelv 253:4    0   1G  0 lvm  /home
    ├─rootvg-varlv  253:5    0   8G  0 lvm  /var
    └─rootvg-rootlv 253:6    0   2G  0 lvm  /
    
  8. Разверните раздел, который содержит этот PV, задавая growpart, имя устройства и номер раздела. Это позволит расширить указанный раздел, чтобы он использовал все свободное непрерывное пространство на устройстве.

    [root@dd-rhel7vm ~]# growpart /dev/sda 4
    CHANGED: partition=4 start=2054144 old: size=132161536 end=134215680 new: size=199272414 end=201326558
    
  9. Убедитесь, что размер раздела изменился до ожидаемой величины, повторно выполнив команду lsblk. Обратите внимание, что в примере sda4 произошло изменение с 63 ГБ до 95 ГБ.

    [root@dd-rhel7vm ~]# lsblk /dev/sda4
    NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda4              8:4    0  95G  0 part
    ├─rootvg-tmplv  253:1    0   2G  0 lvm  /tmp
    ├─rootvg-usrlv  253:2    0  10G  0 lvm  /usr
    ├─rootvg-optlv  253:3    0   2G  0 lvm  /opt
    ├─rootvg-homelv 253:4    0   1G  0 lvm  /home
    ├─rootvg-varlv  253:5    0   8G  0 lvm  /var
    └─rootvg-rootlv 253:6    0   2G  0 lvm  /
    
  10. Разверните PV для использования оставшейся части вновь развернутого раздела:

    [root@dd-rhel7vm ~]# pvresize /dev/sda4
    Physical volume "/dev/sda4" changed
    1 physical volume(s) resized or updated / 0 physical volume(s) not resized
    
  11. Проверьте, имеет ли PV ожидаемый новый размер, сравнив его с исходными значениями [size / free] :

    [root@dd-rhel7vm ~]# pvscan
    PV /dev/sda4   VG rootvg          lvm2 [<95.02 GiB / <70.02 GiB free]
    
  12. Разверните нужный логический том (LV) на намеченную величину. Этот объем не обязательно должен занимать все свободное место в группе томов. В следующем примере размер /dev/mapper/rootvg-rootlv изменен с 2 ГБ на 12 ГБ (увеличен на 10 ГБ). Эта команда также позволяет изменить размер файловой системы.

    [root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv
    

    Выходные данные примера:

    [root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv
    Size of logical volume rootvg/rootlv changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
    Logical volume rootvg/rootlv successfully resized.
    meta-data=/dev/mapper/rootvg-rootlv isize=512    agcount=4, agsize=131072 blks
             =                       sectsz=4096  attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=524288, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 524288 to 3145728
    
  13. Команда lvresize автоматически вызывает соответствующую команду изменения размера для файловой системы в LV. Проверьте, имеет ли /dev/mapper/rootvg-rootlv, который подключен к / , увеличенный размер файловой системы, с помощью следующей команды:

    [root@dd-rhel7vm ~]# df -Th /
    

    Выходные данные примера:

    [root@dd-rhel7vm ~]# df -Th /
    Filesystem                Type  Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-rootlv xfs    12G   71M   12G   1% /
    [root@dd-rhel7vm ~]#
    

Примечание

Чтобы использовать ту же процедуру для изменения размера другого логического тома, измените имя LV в шаге 12.

RHEL RAW

Увеличение размера диска операционной системы в разделе RHEL RAW:

  1. Остановите виртуальную машину.
  2. Увеличьте размер диска операционной системы на портале.
  3. Запустите виртуальную машину.

После перезапуска виртуальной машины выполните следующие действия.

  1. Войдите на виртуальную машину с учетными данными корневого, используя следующую команду:

    [root@dd-rhel7vm ~]# sudo -i
    
  2. После перезапуска виртуальной машины выполните следующие действия.

    • Установите пакет cloud-utils-growpart для поддержки команды growpart, которая требуется для увеличения размера диска операционной системы, и обработчика gdisk для разметки диска GPT. Эти пакеты предварительно устанавливаются в большинстве образов Marketplace.
    [root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk
    
  3. Используйте команду lsblk -f, чтобы проверить раздел и тип файловой системы, в которых находится корневой раздел ( / ):

    [root@vm-dd-cent7 ~]# lsblk -f
    NAME    FSTYPE LABEL UUID                                 MOUNTPOINT
    sda
    ├─sda1  xfs          2a7bb59d-6a71-4841-a3c6-cba23413a5d2 /boot
    ├─sda2  xfs          148be922-e3ec-43b5-8705-69786b522b05 /
    ├─sda14
    └─sda15 vfat         788D-DC65                            /boot/efi
    sdb
    └─sdb1  ext4         923f51ff-acbd-4b91-b01b-c56140920098 /mnt/resource
    
  4. Для проверки начните с вывода таблицы разделов на диске SDA с помощью gdisk. В этом примере мы видим диск размером 48 ГБ с секцией 2 в 29,0 ГиБ. Диск был увеличен с 30 ГБ до 48 ГБ в портале Azure.

    [root@vm-dd-cent7 ~]# gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.10
    
    Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 100663296 sectors, 48.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 62914526
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 6076 sectors (3.0 MiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1         1026048         2050047   500.0 MiB   0700
       2         2050048        62912511   29.0 GiB    0700
    14            2048           10239   4.0 MiB     EF02
    15           10240         1024000   495.0 MiB   EF00  EFI System Partition
    
  5. Разверните раздел для root, в данном случае sda2, с помощью команды growpart. С помощью этой команды можно развернуть раздел, чтобы использовать все смежные места на диске.

    [root@vm-dd-cent7 ~]# growpart /dev/sda 2
    CHANGED: partition=2 start=2050048 old: size=60862464 end=62912512 new: size=98613214 end=100663262
    
  6. Теперь снова распечатайте новую таблицу разделов с помощью gdisk. Обратите внимание, что секция 2 расширилась до 47,0 ГБ:

    [root@vm-dd-cent7 ~]# gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.10
    
    Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 100663296 sectors, 48.0 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 100663262
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 4062 sectors (2.0 MiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1         1026048         2050047   500.0 MiB   0700
       2         2050048       100663261   47.0 GiB    0700
    14            2048           10239   4.0 MiB     EF02
    15           10240         1024000   495.0 MiB   EF00  EFI System Partition
    
  7. Разверните файловую систему в разделе, используя команду xfs_growfs, которая подходит для стандартной системы RedHat, созданной Marketplace:

    [root@vm-dd-cent7 ~]# xfs_growfs /
    meta-data=/dev/sda2              isize=512    agcount=4, agsize=1901952 blks
             =                       sectsz=4096  attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=7607808, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=3714, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 7607808 to 12326651
    
  8. Убедитесь, что новый размер отразился, выполнив команду df:

    [root@vm-dd-cent7 ~]# df -hl
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        452M     0  452M   0% /dev
    tmpfs           464M     0  464M   0% /dev/shm
    tmpfs           464M  6.8M  457M   2% /run
    tmpfs           464M     0  464M   0% /sys/fs/cgroup
    /dev/sda2        48G  2.1G   46G   5% /
    /dev/sda1       494M   65M  430M  13% /boot
    /dev/sda15      495M   12M  484M   3% /boot/efi
    /dev/sdb1       3.9G   16M  3.7G   1% /mnt/resource
    tmpfs            93M     0   93M   0% /run/user/1000