Link Search Menu Expand Document
28 Декабря 2020 г.

Расширение раздела диска в Linux

Содержание
  1. Способ 1
  2. Способ 2

Способ 1

Имеем раздел /dev/sda1 с файловой системой ext4 на котором точка монтирования файловой системы:

df -h -T /dev/sda1
Файловая система Тип  Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda1        ext4   2,9G         977M  1,8G           36% /

Необходимо расширить этот раздел до 6G, при этом не останавливая сервер, сервер должен работать.

В настройках виртуальной машины добавляем + 3G места. Проверяем командой fdisk -l:

sudo fdisk -l
Disk /dev/sda: 6 GiB, 6442450944 bytes, 12582912 sectors
Disk model: VMware Virtual S
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: 0xbfb02ac1

Device     Boot Start     End Sectors Size Id Type
/dev/sda1  *     2048 6289407 6287360   3G 83 Linux

или командой lsblk:

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0    6G  0 disk 
└─sda1   8:1    0    3G  0 part /
sr0     11:0    1  335M  0 rom  

Как видим размер диска увеличился и составляет 6G, но размер раздела остался по-прежнему 3G.

Задачу решает утилита growpart, которая заполняет таблицу разделов всем доступным пространством.

Устанавливаем утилиту:

apt-get install cloud-utils # Debian
yum install cloud-utils-growpart # CentOs

Внимание перед дальнейшими действиями сделайте бекап сервера, действия по расширению раздела выполняете на свой страх и риск!!!

Теперь нужно указать диск и номер раздела, например:

growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=6287360 end=6289408 new: size=12580831,end=12582879

Программа напишет новый размер диска.

Теперь уже расширяем файловую систему на все пространство увеличенного раздела для этого используем утилиту resize2fs :

sudo resize2fs /dev/sda1
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/sda1 is now 1572603 (4k) blocks long.

Проверяем размер раздела:

df -h -T /dev/sda1
Файловая система Тип  Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda1        ext4   5,9G         980M  4,7G           18% /

Задача решена.

Способ 2

Итак, имеем диск размером 7G:

df -h -T /dev/sda1
Файловая система Тип  Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda1        ext4   6,9G         983M  5,6G           15% /

Расширим диск до 10G. Смотрим характеристики диска командой fdisk

sudo fdisk /dev/sda
...
Command (m for help): p
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
...
Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048 14680030 14677983   7G 83 Linux

Внимание перед дальнейшими действиями сделайте бекап сервера, действия по расширению раздела выполняете на свой страх и риск!!!

“Удаляем” раздел

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Создаем новый primary раздел, следуя подсказкам. Здесь мы:

  1. Создаем новый primary раздел.
  2. Указываем его номер.
  3. Указываем первый сектор диска.
  4. Указываем последний сектор диска.
  5. Записываем изменения.
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 2048
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): 20971519

Created a new partition 1 of type 'Linux' and of size 10 GiB.
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: No

Command (m for help): w

The partition table has been altered.
Syncing disks.

Проверяем теперь:

df -h -T /dev/sda1
Файловая система Тип  Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda1        ext4   6,9G         983M  5,6G           15% /

Как видим ничего не поменялось.

Перечитаем разделы командой sudo partprobe /dev/sda и расширим том все той же командой resize2fs :

sudo resize2fs /dev/sda1
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/sda1 is now 2621184 (4k) blocks long.

Проверяем:

df -h -T /dev/sda1
Файловая система Тип  Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda1        ext4   9,8G         983M  8,4G           11% /

В итоге мы на лету расширили корневой раздел.

Я не призываю делать так, и это всего лишь варианты решения данной задачи.


Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 28 Декабря 2020 г.