Изменение размера раздела диска в Debian 10 Buster - АлтунинВВ.Блог - всё об IT-технологиях!
Вторник, 24 ноября 2020 19:00

Изменение размера раздела диска в Debian 10 Buster

Россия
Оцените материал
(0 голосов)

Долгое время мониторинг сети на Zabbix работал у меня на виртуальном сервере Hyper-V. Было решено перенести мониторинг на новый сервер под управлением – XCP-ng (XEN). Попытки миграции самой виртуальной машины были неудачными, каждый раз возникали всё новые ошибки и проблемы, так что было решено просто установить Debian 10 в виртуальную машину под управлением гипервизора XEN и перенести базу данных со старого сервера.

Для установки нового сервера я использовал уже готовый шаблон XEN, который был создан для экспериментов. К сожалению, я забыл, что объем виртуального диска у него всего 10 GB, а так как размер дампа базы данных у меня 2.9 Гб, то восстановление из дампа исчерпало всё доступное место на диске. Единственным выходом стало изменить размер виртуального диска до 100 Гб.

exclam200.png    Внимание! Перед проведением данного типа работ на сервере ОБЯЗАТЕЛЬНО сделайте его резервную копию или, если это виртуальный сервер, снапшот состояния! Данные действия потенциально опасны и могут привести к утере всей хранящейся на сервере информации! Автор данной статьи не несет ответственности за возможную потерю информации и прочие сбои! В зависимости от того, как разбит на разделы жесткий диск вашего сервера, может поменяться и порядок действий! На данном сервере диск размечался автоматически установщиком Debian 10!     

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

ERROR 1114 (HY000) at line 3624: The table 'history_uint' is full

Проверив место на диске я увидел неутешительную картину:

df -H
Filesystem      Size  Used Avail Use% Mounted on
…
/dev/xvda1      9.5G  9.0G   11M 100% /

Места на диске не было. Сам дамп с базой у меня занимает 2.9 Гб, так что, при восстановлении базы из дампа, просто не хватило свободного места.

На старом сервере ситуация была такой:

df -H
Filesystem      Size  Used Avail Use% Mounted on
…
/dev/sda1        62G   16G   43G  27% /

В принципе можно было создать новую виртуальную машину с диском около 100 Гб и заново поставить всё что нужно, но я решил расширить существующий диск. Сразу после установки Zabbix я сделал снапшот состояния виртуальной машины, так что попросту откатил состояние машины до этого момента.

Изменение размера диска

Для начала отключим виртуальную машину и средствами гипервизора изменим объем диск виртуальной машины до 100 Гб.

Запустим виртуальную машину.

Проверим свободное место:

df -H
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/xvda1      9.5G  1.7G  7.4G  19% /

Хотя мы физически и изменили свободное место, размер раздела / остался прежним, а что же диск?

root@debian:/home/meria# sudo fdisk -l
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 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: 0x2974fada

Device     Boot    Start      End  Sectors  Size Id Type
/dev/xvda1          2048 18892799 18890752    9G 83 Linux
/dev/xvda2      18894846 20969471  2074626 1013M  5 Extended
/dev/xvda5      18894848 20969471  2074624 1013M 82 Linux swap / Solaris

Как вы можете видеть, размер диска увеличился до 100 Gb, но разделы остались прежними.

Не забудем отключить раздел подкачки:

sudo swapoff –a

Удаление старых разделов

Для начала нужно удалить все старые разделы

Запустим fdisk

sudo fdisk /dev/xvda

Нажмем p

Command (m for help): p
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 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: 0x2974fada

Device     Boot    Start      End  Sectors  Size Id Type
/dev/xvda1          2048 18892799 18890752    9G 83 Linux
/dev/xvda2      18894846 20969471  2074626 1013M  5 Extended
/dev/xvda5      18894848 20969471  2074624 1013M 82 Linux swap / Solaris

В моем случае /dev/xvda2 нужно удалить, чтобы увеличить размер диска.

Нажмем d и затем 2

Command (m for help): d
Partition number (1,2,5, default 5): 2

Partition 2 has been deleted.

Нажмем p

Command (m for help): p
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 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: 0x2974fada

Device     Boot Start      End  Sectors Size Id Type
/dev/xvda1       2048 18894845 18892798   9G 83 Linux

У нас остался только один раздел нажмем d и удалим и его

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

Мы удалили старые разделы. Обратите внимание, что такой метод подходит потому, что у изначально раздел с данными занимал место от начала диска, так что мы можем спокойно создать новый раздел большего размера.

Создание новых разделов

Создадим новый раздел требуемого размера

Нажмем n

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

Нажмем p

Select (default p): p
Partition number (1-4, default 1):

Нажмем 1, Enter и еще раз Enter

Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199):

Введем +98G и нажмем Enter

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): +98G 

Created a new partition 1 of type 'Linux' and of size 98 GiB.

Будет создан раздел размером в 98 Гб

Создание раздела подкачки (swap)

Теперь нам нужно восстановить раздел подкачки, для этого сначала создадим под него раздел.

Нажмем n и e

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

Нажмем 2 и затем Enter и Enter

First sector (205522944-209715199, default 205522944):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (205522944-209715199, default 209715199): 

Created a new partition 2 of type 'Extended' and of size 2 GiB.

Будет создан раздел размером в 2 Гб

Нажмем t и 2

Command (m for help): t
Partition number (1,2, default 2): 2

Введем 82

Hex code (type L to list all codes): 82

Changed type of partition 'Extended' to 'Linux swap / Solaris'.

Вот и все теперь осталось записать данные на диск.

Запись изменений на диск

Для того чтобы записать все изменения на диск достаточно ввести w и нажать

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

Программа fdisk завершит на этом свою работу и запишет изменения на диск.

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

sudo fdisk -l
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 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: 0x2974fada 

Device     Boot     Start       End   Sectors Size Id Type
/dev/xvda1           2048 205522943 205520896  98G 83 Linux
/dev/xvda2      205522944 209715199   4192256   2G 82 Linux swap / Solaris

Размер раздела увеличился.

Но если мы посмотрим утилитой df то увидим следующее

df -H
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/xvda1      9.5G  1.7G  7.4G  19% /

Размер раздела / не изменился

Изменение размера корневого раздела /

Для того, чтобы указать корневому разделу использовать всё доступное пространство диска запустим команду

sudo resize2fs /dev/xvda1

Проверим еще раз

df -H
Filesystem      Size  Used Avail Use% Mounted on
…
/dev/xvda1      104G  1.7G   98G   2% /

На этот раз все получилось.

Подключение раздела подкачки

Последнее что нам осталось – инициализировать и подключить раздел подкачки.

Если мы проверим состояние памяти, то обнаружим, что размер подкачки равен нулю!

free -m
              total        used        free      shared  buff/cache   available
Mem:            956         278         432           6         245         532
Swap:             0           0           0

Для начала инициализируем раздел под swap

sudo mkswap /dev/xvda2

После этого подключим его

sudo swapon /dev/xvda2

Проверяем

free -m
              total        used        free      shared  buff/cache   available
Mem:            956         278         429           6         248         531
Swap:          2046           0        2046

Все в порядке.

Обновление /etc/fstab

Осталось только обновить /etc/fstab так как UUID у раздела подкачки поменялся

Запустим

sudo blkid
/dev/xvda1: UUID="2ca5857b-3052-45ef-8cb5-236513198857" TYPE="ext4" PARTUUID="2974fada-01"
/dev/xvda2: UUID="b8e91264-1d1e-4238-b5f3-1e310df5dc44" TYPE="swap" PARTUUID="2974fada-02"

Откроем /etc/fstab

sudo nano /etc/fstab 

UUID=2ca5857b-3052-45ef-8cb5-236513198857 /               ext4    errors=remoun$
# swap was on /dev/xvda5 during installation
UUID=09fe383d-199e-4d4e-b907-bb69b374d63a none            swap    sw           $
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Изменим UUID у swap в нашем случае на

b8e91264-1d1e-4238-b5f3-1e310df5dc44

Нажмем ctrl+x и y и Enter, чтобы сохранить конфигурацию.

Обязательно перезагрузите сервер и проверьте, чтобы всё работало!

Заключение

Сегодня мы рассмотрели процесс изменения раздела под Linux Debian 10 Buster.

Мы увеличили размер диска виртуальной машины с 10 до 100 Гб.

Проверили размер диска после перезагрузки.

Удалили старые разделы. Создали новый размером в 98 Гб и 2Гб выделили под новый swap.

Записали изменения на диск и проверили результат.

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

Создали новый раздел подкачки и подключили его.

Обновили /etc/fstab так как у нас изменился UUID раздела подкачки.

После этого снова проверили состояние памяти.

Прочитано 186 раз Последнее изменение Среда, 25 ноября 2020 11:24