Linux увеличение системного раздела

Debian 11 увеличение раздела

Предположим, что у нас есть виртуальная машина с установленной операционной системой Debian и требуется увеличить размер раздела, например системного. В этой статье мы рассмотрим на примере Debian 11 увеличение раздела диска без LVM.

Вводные данные

Наш Debian 11 установлена на Hyper-V. Для начала проверим версию:

$ cat /etc/debian_version 11.1

В дальнейшем нам потребуется выполнять действия от пользователя root, подключимся под этим пользователем:

Теперь посмотрим размер файловой системы, выполнив df -h

# df -h Filesystem Size Used Avail Use% Mounted on udev 944M 0 944M 0% /dev tmpfs 192M 500K 192M 1% /run /dev/sda1 19G 990M 17G 6% / tmpfs 960M 0 960M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 192M 0 192M 0% /run/user/1000

Наш системный раздел /dev/sda1 смонтированный в / имеет размер 19 Гб.

Посмотрим вывод fdisk -l:

# fdisk -l Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 39944190 41940991 1996802 975M 5 Extended /dev/sda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris

В данном примере у нас 1 диск /dev/sda размером 20 гигабайт, который разбит на 3: /dev/sda1, /dev/sda2 и /dev/sda5. Как помните, нас интересует диск /dev/sda1 с типом Linux.

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

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

# echo 1 > /sys/block/sda/device/rescan

Если нет возможности увеличить диск без выключения виртуальной машины, то выключаем и меняем размер. Я увеличил диск до 25 гигабайт, запускаем машину и проверяем:

# fdisk -l Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 39944190 41940991 1996802 975M 5 Extended /dev/sda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris

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

После увеличения размера диска необходимо увеличить сам раздел. Я специально установил Debian с разбивкой на разделы как предлагал установщик, имея ввиду, что многие так и поступят. И что мы видим? Что мы не сможем просто так расширить раздел /dev/sda1, т.к. сразу за ним следует sda5. Поэтому сначала потребуется передвинуть его в конец диска (где как раз и находятся добавленные сектора), а уже потом расширить сам sda1. Но если у вас в выводе fdisk только один раздел или он находится в конце диска (смотрите по конечным секторам) – можете сразу перейти к пункту Debian 11 увеличение раздела диска.

Читайте также:  Функция main в linux

Перенос раздела с подкачкой в конец диска

Тут сразу необходим оговориться, что мы будем переносить раздел с swap (подкачкой), поэтому его можно будет просто удалить и создать новый. Если же требуется двигать разделы с данными, то это другая задача, её проще решать с помощью GParted на Live CD и в данной статье мы её рассматривать не будем.

Для начала отключаем подкачку:

Запускам fdisk с указанием нашего диска (/dev/sda):

# fdisk /dev/sda Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.

Сделаем ремарку, что все изменения в fdisk нужно делать осторожно, с пониманием. Но знайет, что пока вы не сохраните изменения (w) всегда можно выйти без каких либо последствий.

Вводим p, чтобы посмотреть на список разделов:

Command (m for help): p Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 39944190 41940991 1996802 975M 5 Extended /dev/sda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris Partition 2 does not start on physical sector boundary.

Тут нас интересует общее число секторов на диске (52428800) и число секторов под раздел подкачки (1996800). Ещё отметим, что логический диск /dev/sda2 (который был создан автоматически) никуда не смонтирован и пересекается с /dev/sda5. Возможно это баг автоматической разбивки, мы просто удалим его.

Удаляем раздел с подкачкой 5 и логический раздел 2 (команда d):

Command (m for help): d Partition number (1,2,5, default 5): 5 Partition 5 has been deleted. Command (m for help): d Partition number (1,2, default 2): 2 Partition 2 has been deleted.

И посмотрим, что у нас получилось:

Command (m for help): p Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux

Теперь заново создадим раздел с подкачкой, но уже в конце диска. Создаем новый раздел с помощью n:

Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p):

Нас попросят выбрать тип раздела, для создаваемого /dev/sda2 выбираем логический e:

Читайте также:  Astra linux сброс пароля связки ключей

Указываем порядковый номер раздела 2:

Partition number (2-4, default 2): 2

Далее потребуется указать начало раздела. Если мы хотим оставит размер подкачки таким же как он и был, то из последнего сектора диска /dev/sda (52428800) вычитаем число секторов, на которых располагался раздел /dev/sda2 (1996800) и получаем 50432000:

First sector (39942144-52428799, default 39942144): 50432000

Последним сектором указываем последний сектор диска:

Last sector, +/-sectors or +/-size (50431998-52428799, default 52428799): 52428799 Created a new partition 2 of type 'Extended' and of size 975 MiB.

Теперь изменим его тип, нажав t, указав раздел 2 и код 82 для файла подкачки:

Command (m for help): t Partition number (1,2, default 2): 2 Hex code or alias (type L to list all): 82 Changed type of partition 'Extended' to 'Linux swap / Solaris'.

Посмотрим, что у нас получилось:

Command (m for help): p Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 50432000 52428799 1996800 975M 82 Linux swap / Solaris

Сохраняем внесенные изменения w:

Command (m for help): w The partition table has been altered. Syncing disks.

После этого fdisk завершит свою работу и мы можем создать swap (указывайте свой новый раздел подкачки!):

# mkswap /dev/sda2 Setting up swapspace version 1, size = 975 MiB (1022357504 bytes) no label, UUID=be9928b0-ce1b-44f1-b925-a94fffac5b2e

Копируем UUID, его надо будет указать в fstab, чтобы он работал после перезагрузки. Открываем любым текстовым редактором:

Находим запись с типом swap (после комментария #swap was on) и там заменяем UUID на новый. Сохраняем и выходим.

Осталось только включить подкачку:

Debian 11 увеличение раздела диска

Выполним fdisk /dev/sda, где /dev/sda – метка нашего диска:

# fdisk /dev/sda Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.

Вводим p, чтобы посмотреть на список разделов:

Command (m for help): p Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x73000288 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 39942143 39940096 19G 83 Linux /dev/sda2 50432000 52428799 1996800 975M 82 Linux swap / Solaris

У вас могут быть другие разделы, главное, чтобы были свободные сектора после того раздела, который мы хотим расширить. Для этого мы в предыдущем разделе двигали swap в конец диска. У нас получилось, что sda1 заканчивается на секторе 39940096, а следующий раздел sda2 начинается на 50432000, а между ними есть свободные. Если же у вас расширяемый раздел один или он последний, то нужно смотреть на последний сектор раздела(39940096) и диска (50432000).

Читайте также:  Arch linux create initrd

Чтобы расширить раздел требуется предварительно удалить информацию о нём. Для этого вводим d и указываем раздел (1 для /dev/sda1):

Command (m for help): d Partition number (1-2, default 2): 1 Partition 1 has been deleted.

При этом удаляется только запись о разделе, сами данные остаются на диске!

Вводим n – создание нового раздела:

Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions)

Указываем основной тип p:

Далее порядковый номер раздела 1 (который удалили):

Partition number (1,3,4, default 1): 1

Далее указываются начальный и конечный сектор. Обязательно проверьте, чтобы они совпадали со значениям, указанными через дефис. Таким образом мы используем все неразмеченное/свободное пространство:

First sector (2048-50431999, default 2048): 2048 Last sector, +/-sectors or +/-size (2048-50431999, default 50431999): 50431999 Created a new partition 1 of type 'Linux' and of size 24 GiB.

Как видим, был создан раздел на 24 гигабайта с типом Linux filesystem.

Также будет задан вопрос, хотим ли мы удалить текущую файловую систему. Отвечаем отказом:

Partition #1 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: N

И если, как в нашем случае, раздел был загрузочным – делаем его таковым:

Command (m for help): a Partition number (1,2, default 1): 1 The bootable flag on partition 1 is enabled.

Осталось только сохранить таблицу разделов:

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

The partition table has been altered. Failed to update system information about partition 1: Device or resource busy The kernel still uses the old partitions. The new table will be used at the next reboot. Syncing disks.

Перезагружаем виртуальную машину:

Изменение размера файловой системы ext4

Теперь воспользуемся утилитой resize2fs (для ext4) для увеличения размера файловой системы:

# resize2fs /dev/sda1 resize2fs 1.46.2 (28-Feb-2021) Filesystem at /dev/sda1 is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 4 The filesystem on /dev/sda1 is now 6303744 (4k) blocks long.
# df -h Filesystem Size Used Avail Use% Mounted on udev 944M 0 944M 0% /dev tmpfs 192M 496K 192M 1% /run /dev/sda1 24G 1.1G 22G 5% / tmpfs 960M 0 960M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 192M 0 192M 0% /run/user/1000

Заключение

Как видим, в debian 11 увеличение раздела диска – не такая уж и сложная задача.

Вы можете посмотреть похожие статьи по расширению разделов в различных дистрибутивах linux:

Источник

Оцените статью
Adblock
detector