Как расширить существующий диск в Linux?¶
Краткая справка по командам:¶
Команда | Назначение |
---|---|
lsblk |
вывод списка блочных устройств |
pvs |
вывод списка физических томов |
vgs |
вывод списка группы томов |
lvs |
вывод списка логических томов |
fdisk -l |
просмотр разделов диска |
dnf -y install cloud-utils-growpart |
установка утилиты growpart для Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux |
apt -y install cloud-guest-utils |
установка утилиты growpart для Ubuntu, Debian |
growpart /dev/sda 2 |
расширение раздела /dev/sda2 |
pvresize /dev/sda2 |
расширение существующего физического тома /dev/sda2 |
lvextend -r -l +100%FREE /dev/centos/root |
расширение логического тома /dev/centos/root из группы томов centos |
df -hT |
вывод списка разделов и файловых систем |
xfs_growfs /dev/mapper/centos-root |
увеличение размера файловой системы XFS на логическом томе /dev/mapper/centos-root (для Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux) |
resize2fs /dev/mapper/ubuntu-root |
увеличение размера файловой системы EXT4 на логическом томе /dev/mapper/ubuntu-root (для Ubuntu, Debian) |
Информация
Для файловой системы btrfs
следует использовать другие инструкции.
В данном примере будет описано как расширить существующий раздел на диске, используя 15Gb свободного дискового пространства из неразмеченной области этого же диска. Расширение будет выполнено на примере дистрибутива CentOS
.
Данная инструкция подходит для большинства дистрибутивов Linux, дает подробную информацию как корректно расширить дисковое пространство, учитывает особенности команд различных дистрибутивов.
Примечание
Все команды необходимо выполнять под пользователем root
либо с правами суперпользователя (sudo
).
При выполнении данной инструкции есть риск потери данных, поэтому предварительно рекомендуется сделать резервную копию (backup) виртуальной машины.
Шаг 1. Анализ конфигурации дискового пространства¶
-
Сперва следует определить название раздела, который собираетесь расширить и объем неразмеченной области на устройстве (диске) с помощью команды
lsblk
.[root@centos~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 45G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─centos-root 253:0 0 28G 0 lvm / └─centos-swap 253:1 0 1G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom
В данном примере мы видим, что в системе имеется 1 устройство (диск)
/dev/sda
размером 45Gb.
На диске созданы 2 раздела общим объемом 30Gb:- основной
/dev/sda1
- 1Gb, - расширенный
/dev/sda2
- 29Gb,
оставшиеся 15Gb остаются в неразмеченной области.
Также мы видим, что раздел
/dev/sda2
(29Gb) является расширенным разделомLVM
, где имеется группа томовcentos
и 2 логических тома root и swap. Будем расширять логический том root на расширенном разделеdev/sda2
используя свободные 15Gb из неразмеченной области дискаsda
. - основной
-
Затем следует проверить существующую конфигурацию LVM командами:
pvs
- вывести название и количество имеющихся физических томов (PV)vgs
- вывести группы томов (VG)lvs
- вывести логические тома (LV)
-
Проверьте разделы диска с помощью утилиты
fdisk -l
.Пример отображения для
CentOS
:[root@centos~]# fdisk -l Disk /dev/sda: 45GiB, 48318382080 bytes, 94371840 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: dos Disk identifier: 0xa2d4566c Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 65914559 60815360 29G 8e Linux LVM
Раздел
/dev/sda2
является расширяемым разделомLVM
.Пример отображения для
Ubuntu
:[root@centos~]# fdisk -l Disk /dev/sda: 45GiB, 48318382080 bytes, 94371840 sectors Disk model: QEMU HARDDISK 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: dos Disk identifier: 0xa2d4566c Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32 /dev/sda2 1052670 61863933 61863933 29.5G 5 Extended /dev/sda5 1052672 61863933 61863931 29.5G 8e Linux LVM
Примечание
Обратите внимание, в дистрибутиве
Ubuntu
сектора раздела/dev/sda5
входят в сектора раздела/dev/sda2
, т.е. имеют одно дисковое пространство.Раздел
/dev/sda2
является расширенным, раздел/dev/sda5
является разделомLVM
, созданным на расширенном разделе. Поэтому, для того, чтобы расширить логический томroot
предварительно необходимо расширить оба этих раздела.
Шаг 2. Расширение раздела с помощью утилиты growpart
¶
-
Сперва следует установить утилиту
growpart
в соответствии с вашим дистрибутивом.-
для дистрибутивов Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux команда:
[root@centos ~]# dnf -y install cloud-utils-growpart
Примечание
Для устаревших дистрибутивов (CentOS 7.9) вместо
dnf
используйтеyum
.-
для дистрибутивов Ubuntu, Debian команда:
[root@ubuntu ~]# apt -y install cloud-guest-utils
-
-
Затем необходимо расширить раздел (в нашем случае
/dev/sda2
- корневой раздел (root)) на всю неразмеченную область, т.е. в нашем случае на 15Gb. с помощью команды:
growpart /dev/sda 2
, где/dev/sda 2
- путь к устройству диска и номер расширяемого раздела.Важно
Для
Ubuntu
может потребоваться расширить 2 раздела (это можно узнать по командеfdisk -l
).Примечание
В нашем примере
/dev/sda2
- корневой раздел. Обратите внимание, у вас может быть другой раздел.Для Ubuntu, требуется расширить 2 раздела: расширенный раздел
/dev/sda2
и разделLVM /dev/sda5
:Примечание
У вас могут быть другие разделы для расширения, проверить это можно командами
lsblk
иfdisk -l
. -
Убедитесь в расширении раздела командой
lsblk
.
Шаг 3. Расширение пространства LVM¶
-
Сперва необходимо расширить существующий физический том (
physical volume
) с помощью команды:pvresize /dev/sda2
, где/dev/sda2
- имя расширяемого разделаПримечание
В нашем примере физический том -
/dev/sda2
. Обратите внимание у вас может быть другой другой физический том.[root@centos~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <29.00g 0 [root@centos~]# pvresize /dev/sda2 Physical volume "dev/sda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not relized [root@centos~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <44.00g 15.00g
-
Проверьте размер группы томов (volume group). Значение столбца VFree должно увеличиться на расширяемый объем.
-
Расширьте логический том (logical volume) используя команду
lvextend -r -l +100%FREE /dev/centos/root
, где
centos
- имя группы томов,
root
- имя логического тома.Примечание
У вас могут быть другие названия группы и логического тома.
Проверьте выполнение командойlvs
- значение столбца PFree должно увеличится.[root@centos~]# lvs LV VG Attr LSize root centos -wi-ao---- <28.00g swap centos -wi-ao---- 1.00g [root@centos~]# lvextend -l +100%FREE /dev/centos/root Size of logical volume centos/root changed from <28.00 GiB (7167 extents) to <43.00 GiB (1107 extents). Logical volume centos/root successfully resized. meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1834752blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1,sparce=1,rmapbt=0 = reglink=1 data= bsize=4096 blocks=7339008,imaxpct=25 = sunit=0 swidth=0 blks naming =version2 bsize=4096 ascii-ci=0,ftype=1 log =internal log bsize=4096 blocks=3583, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime=none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7339008 to 11271168 [root@centos~]# lvs LV VG Attr LSize root centos -wi-ao---- <43.00g swap centos -wi-ao---- 1.00g
Note
В команде выше, вместо
/dev/centos/root
можно указать другой путь/dev/mapper/centos-root
(можно узнать по командеdf -hT
), результат будет тот же.
Шаг 4. Расширение файловой системы¶
Важно
Данная операция несет риск потери данных. Предварительно рекомендуется сделать резервную копию виртуальной машины.
-
Для увеличения файловой системы на логическом томе, необходимо ввести команду в зависимости от дистрибутива:
- Для файловой системы
XFS
(дистрибутивы Fedora, CentOS, RHEL, Oracle Linux, Alma Linux, Rocky Linux) используется утилитаxfs_growfs
и путь указанный в выводе командыdf -hT
для расширяемого раздела (в примере ниже дляCentos
- это/dev/mapper/centos-root
).
[root@centos~]# df -hT /dev/centos/root Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 28G 2.1G 26G 8% / [root@centos~]]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1834752 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=7339008, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3583, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7339008 to 9959424
- Для файловой системы
ext4
(дистрибутивы Ubuntu, Debian) используется утилитаresize2fs
и путь указанный в выводе командыdf -hT
для расширяемого раздела (в примере ниже дляUbuntu
- это/dev/mapper/ubuntu-root
).
[root@ubuntu:~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu-root ext4 38G 7.1G 29G 20% / root@ubuntu:~# resize2fs /dev/mapper/ubuntu-root resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/mapper/ubuntu-root is mounted on/; on-line resizing required old_desc_blocks=4, new_desc_blocks=5 The filesystem on /dev/mapper/ubuntu-root is now 10101760 (4k) blocks long.
- Для файловой системы
-
Нужно определить путь монтирования файловой системы расширяемого раздела, точку монтирования и тип файловой системы.
В нашем примере путь -/dev/mapper/centos-root
(или/dev/centos/root
),
точка монтирования -/
,
тип файловой системы -xfs
.Примечание
Обратите внимание, у вас будет свой путь и тип файловой системы.
Шаг 5. Проверка¶
Для проверки нового размера диска и файловой системы следует повторить команды df -hT
и lsblk
.
[root@centos~]# df-hT
Filesystem Type Size Used Avail Use Mounted on
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 9.2M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 43G 5.0G 39G 12% /
/dev/sda1 xfs 1014M 427M 588M 43% /boot
tmpfs tmpfs 374M 32K 374M 1% /run/user/1000
[root@centos~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 45G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 43G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom