Categories: Шпаргалки

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

В инструкции рассмотрены сценарии расширения дискового пространства разделов в Linux без потери информации.

Принцип увеличения диска:

  1. Расширение раздела.
  2. Изменение размера файловой системы.

В зависимости от типа раздела и файловой системы, действия различаются.

Любая работа с диском несет риск потери информации. Перед началом работ убедитесь в наличие резервных копий ценных данных.

Шаг 1. Расширение раздела

Мы рассмотрим варианты работы с обычными томами (разделами) и томами LVM . Проверить, какой тип раздела у нас используется можно командой:

lsblk

Нам интересны варианты part и lvm.

Обычные тома (part)

Допустим, есть диск /dev/sdb и раздел /dev/sdb2 , который нужно увеличить. Разберем два подхода, сделать это.

1. С помощью утилиты growpart (без отмонтирования раздела)

Данная утилита позволяет увиличить размер слайса без необходимости его отмонтировать. Это очень удобно для работы с корневыми разделами. Данная утилита не установлена в системе. В зависимости от последней наши действия будут различаться.

а) Для систем DEB:

apt update

apt install cloud-guest-utils

б) Для систем RPM:

yum install cloud-utils-growpart

Если наш диск имеет разметку GPT , то потребуется установить также утилиту gdisk.

а) Для DEB:

apt install gdisk

б) Для RPM:

yum install gdisk

Установка growpart завершена. Идем дальше.

Для расширения раздела /dev/sdb2 вводим команду:

growpart /dev/sda 2

Мы должны увидеть что-то на подобие:

CHANGED: partition=2 start=4096 old: size=20965376 end=20969472 new: size=41938910 end=41943006

Готово.

2. С помощью утилиты fdisk/parted (требуется отмонтировать раздел)

Данный способ удобнее тем, что не нужно устанавливать дополнительных утилит, но он потребует отмонтирование раздела. Это можно сделать командой:

umount /dev/sdb2

В случае работы с корневой директорией, отмонтировать ее не получиться. В таком случае необходимо загрузить компьютер с Windows LiveCD или GParted Live .

Подключаемся утилитой fdisk к /dev/sdb:

fdisk /dev/sdb

Если мы работаем с разделом более чем 2Тб, используем утилиту parted .

Смотрим номера разделов:

: p

Удаляем раздел (не переживайте — все данные сохраняются):

: d

: 2

* в моем примере, раздел для удаления на второй позиции.

Создаем новый раздел:

: n

Первичный (primary):

: p

Номер раздела — 2:

: 2

На запрос начального и конечного секторов просто нажимаем Enter.

Если раздел был загрузочный, добавляем соответствующий флаг:

: a

Еще раз проверяем, что получилось:

: p

Сохраняем изменения:

: w

LVM

LVM-тома расширяются на лету, даже для корневых разделов. В данном примере, работаем с /dev/sda .

Подробнее о работе с LVM читайте в инструкции Как работать с LVM .

Открываем диск утилитой fdisk:

fdisk /dev/sda

* напомню, что при работе с диском 2Тб и более, следует использовать утилиту parted .

Создаем еще один раздел:

: n

Первичный:

: p

Номер раздела оставляем тот, который предлагает система (просто нажимаем Enter ).

Первый и последний сектора также оставляем по умолчанию для использования всего дискового пространства (еще два раза Enter ).

Задаем тип раздела:

: t

Выбираем номер раздела (в моем примере создавался раздел 3):

: 3

Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):

: 8e

Сохраняем настройки:

: w

Проинформируем систему, что в таблице разделов произошли изменения:

partprobe

Создаем физический том из нового раздела:

pvcreate /dev/sda3

Смотрим наши Volume Group и для нужного добавляем созданный том:

vgdisplay

vgextend vg_centos /dev/sda3

* в моем примере группа томов LVM называется vg_centos

Смотрим LVM-разделы и расширяем пространства для нужного:

lvdisplay

lvextend -l +100%FREE /dev/vg_centos/lv_root

* данная команда расширяем LVM-раздел /dev/vg_centos/lv_root , используя все свободное пространство ( 100%FREE ).

Шаг 2. Изменение размера для файловой системы

После того, как на предыдущем шаге мы расширили раздел, система по-прежнему будет видеть старый по объему диск. Чтобы это исправить, необходимо выполнить команду по изменению размера файловой системы. В зависимости от последней, команды различаются.

Посмотреть файловую систему:

df -T

ext2/ext3/ext4:

resize2fs /dev/vg_centos/lv_root

XFS:

xfs_growfs /dev/sda2

Reiserfs:

resize_reiserfs /dev/sdb

* обратите внимание, что в данных примерах используются различные устройства.

Если раздел был отмонтирован, монтируем его, например:

mount /dev/sda2 /mnt

Проверяем, что настройки применились:

df -h

Увеличение разделов с Gparted

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

Запускаем утилиту — выбираем диск, с которым будем работать — кликаем правой кнопкой по разделу, который хотим увеличить и выбираем Resize/Move :

В открывшемся окне с помощью мышки или форм меняем размер раздела:

Нажимаем кнопку Resize/Move .

Проверяем изменения в окне программы и сохраняем настройки кнопкой «Apply All Operations»:

Возможные ошибки

Рассмотрим проблемы, с которыми столкнулся автор.

FAILED: sfdisk not found

Ошибка появляется при вводе команды growpart , как правило, в системах Debian.

Причина: в некоторых системах Linux бинарные файлы запуска системных утилит находятся в каталоге /sbin. Однако, данные каталог может не быть включен в переменную PATH. Таким образом, нужная утилита установлена, но система не может ее запустить, так как не может найти файл запуска, пока не будет указан полный путь до него.

Решение: нам нужно добавить путь /sbin в переменную PATH :

export PATH=»/sbin:$PATH»

Готово.

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

4 дня ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

4 дня ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

4 дня ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

4 дня ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

4 дня ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

4 дня ago