Введение / Зачем это нужно
Изменение размера файловой системы — операция, которая часто требуется при управлении дисковым пространством. Вы можете расширить раздел, чтобы accomodate новые данные, или сжать его, чтобы высвободить место для других целей. Этот гайд покрывает основные сценарии для популярных файловых систем (ext4, XFS, Btrfs) и типов разделов (стандартные, LVM). После выполнения вы сможете безопасно менять размеры разделов без потери данных.
Требования / Подготовка
Перед началом выполните следующие действия:
- Права администратора: все команды требуют
sudo. - Бэкап данных: сделайте полную резервную копию важных файлов на внешний носитель или в облако.
- Определите текущую структуру:
Обратите внимание на:lsblk -f sudo fdisk -l- Тип раздела (GPT/MBR)
- Файловую систему (ext4, xfs, btrfs...)
- Точку монтирования
- Освободите место (если сжимаете): удалите ненужные файлы, очистите корзину, запустите
sudo apt clean(для Debian/Ubuntu). - Проверьте целостность ФС:
sudo fsck -f /dev/sdXN # для ext4 sudo xfs_repair /dev/sdXN # для XFS (размонтировать!)
Шаг 1: Изменение размера раздела
Для разделов на SSD/HDD (GPT или MBR)
Используйте parted (рекомендуется для GPT) или fdisk (для MBR). Важно: начальный сектор раздела должен остаться неизменным, иначе данные потеряются.
Пример для ext4 (расширение)
# Запустите parted
sudo parted /dev/sda
# Узнайте номер раздела (например, 2)
print
# Удалите раздел (НО не форматируйте!)
rm 2
# Создайте новый раздел с тем же началом, но большим концом
mkpart primary ext4 512MiB 100% # замените 512MiB на исходное начало (смотрите print)
# Выйдите
quit
Для LVM (Logical Volume Manager)
Если раздел использует LVM, процесс проще:
# Уменьшить логический том (сначала ФС!)
sudo lvreduce -L -10G /dev/mapper/vg0-lv_root # уменьшить на 10GB
# Увеличить логический том
sudo lvextend -L +10G /dev/mapper/vg0-lv_root
⚠️ Внимание: При уменьшении LVM сначала уменьшите файловую систему, затем том. При увеличении — сначала том, затем ФС.
Шаг 2: Изменение размера файловой системы
Теперь, после изменения размера раздела (или LVM-тома), нужно подстроить под него файловую систему.
Для ext4
# Если раздел был расширен
sudo resize2fs /dev/sdXN
# Если раздел был сжат (только после уменьшения раздела!)
sudo resize2fs /dev/sdXN
Для XFS
XFS поддерживает только увеличение и только при смонтированной ФС:
# Монтируйте раздел, если не смонтирован
sudo mount /dev/sdXN /mnt
# Увеличьте ФС до максимального размера раздела
sudo xfs_growfs /mnt
Уменьшение XFS невозможно без пересоздания раздела и восстановления из бэкапа.
Для Btrfs
# Увеличить (онлайн)
sudo btrfs filesystem resize max /mountpoint
# Уменьшить (только на unmounted ФС)
sudo btrfs filesystem resize 50G /dev/sdXN # до 50GB
Шаг 3: Проверка результата
После всех операций убедитесь, что изменения применены корректно:
# Показать размер разделов
lsblk
# Показать размер смонтированных ФС
df -h
# Для ext4 можно проверить суперблок
sudo dumpe2fs -h /dev/sdXN | grep -i "block count"
Если df -h показывает ожидаемый размер — операция успешна. Если размер не изменился, возможно, вы забыли изменить ФС после изменения раздела.
Возможные проблемы
Ошибка: "Filesystem is mounted" при попытке сжать ext4
Решение: Размонтируйте раздел: sudo umount /mountpoint. Если это корневой раздел, загрузитесь с LiveCD.
Ошибка: "No space left on device" при уменьшении раздела
Решение: Вы не освободили достаточно места внутри ФС. Удалите ещё файлы или используйте sudo resize2fs /dev/sdXN 20G чтобы принудительно задать меньший размер (риск потери данных!).
Ошибка: "Bad primary partition" после использования parted
Решение: Возможно, вы изменили начальный сектор. Восстановите раздел с помощью testdisk или восстановите из бэкапа таблицы разделов.
XFS не растёт после xfs_growfs
Решение: Убедитесь, что раздел действительно увеличен (проверьте lsblk). Если раздел на LVM, увеличьте том сначала: lvextend.
После изменения размера система не загружается
Решение: Проверьте /etc/fstab — возможно, указан старый UUID. Обновите UUID через blkid и отредактируйте fstab с LiveCD.