Гид по технологиям

Увеличение раздела ext3

• 7 min read • Linux • Обновлено 19 Nov 2025
Увеличение раздела ext3
Увеличение раздела ext3

Кому полезно это руководство

Администраторы Linux и опытные пользователи, у которых есть отдельный ext3-раздел и свободное пространство непосредственно после него на диске. Не подходит, если свободное пространство находится в другом месте диска — в этом случае смотрите раздел «Альтернативные подходы».

Краткое содержание шагов

  • Собираем исходную информацию о разделе и файловой системе.
  • Загружаемся с Live-CD / rescue-системы (если раздел содержит корневую систему).
  • Удаляем журнал (переключаем в ext2) — tune2fs -O ^has_journal.
  • Удаляем и заново создаём первичный раздел с увеличенным размером через fdisk (важно сохранить начальный цилиндр).
  • Перезагружаем для учета новой таблицы разделов.
  • Проверяем и увеличиваем файловую систему с resize2fs.
  • Воссоздаем журнал tune2fs -j и перезагружаемся в рабочую систему.

Предварительные проверки и сбор данных

Важно зафиксировать текущее состояние, чтобы можно было сравнить после операции и иметь точки отката.

Выполните эти команды и сохраните выводы:

df
Filesystem           1K-blocks      Used Available Use% Mounted on  
/dev/sda1              6047868   4224140   1639408  73% /  
varrun                   95480       132     95348   1% /var/run  
varlock                  95480         0     95480   0% /var/lock  
udev                     10240        52     10188   1% /dev  
devshm                   95480         0     95480   0% /dev/shm  
lrm                      95480     17580     77900  19% /lib/modules/2.6.17-10-generic/volatile
df -B 4k
Filesystem           4K-blocks      Used Available Use% Mounted on  
/dev/sda1              1511967   1056035    409852  73% /  
varrun                   23870        33     23837   1% /var/run  
varlock                  23870         0     23870   0% /var/lock  
udev                      2560        13      2547   1% /dev  
devshm                   23870         0     23870   0% /dev/shm  
lrm                      23870      4395     19475  19% /lib/modules/2.6.17-10-generic/volatile
df -h
Filesystem            Size  Used Avail Use% Mounted on  
/dev/sda1             5.8G  4.1G  1.6G  73% /  
varrun                 94M  132K   94M   1% /var/run  
varlock                94M     0   94M   0% /var/lock  
udev                   10M   52K   10M   1% /dev  
devshm                 94M     0   94M   0% /dev/shm  
lrm                    94M   18M   77M  19% /lib/modules/2.6.17-10-generic/volatile

Посмотрите таблицу разделов:

fdisk -l
  
Disk /dev/sda: 10.7 GB, 10737418240 bytes  
255 heads, 63 sectors/track, 1305 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  
  
Device Boot      Start         End      Blocks   Id  System  
/dev/sda1   *           1         789     6337611   83  Linux  
/dev/sda2            1248        1305      465885    5  Extended  
/dev/sda5            1248        1305      465853+  82  Linux swap / Solaris

И размер в секторах/блоках (опционально):

fdisk -s /dev/sda1
6337611

Важно: убедитесь, что свободные 4 GB идут сразу после /dev/sda1, как в этом примере. Если свободное пространство находится между другими разделами или в начале диска — этот метод не подойдёт без перемещения разделов.

Подготовка: загрузка в Live-CD / Rescue-систему

Если раздел содержит системные файлы (например, корень /), нужно загрузиться с Live-CD (Knoppix) или любого rescue-образа. Если раздел не содержит системных файлов, можно сделать всё на работающей системе (но размонтируйте раздел).

Выполните перезагрузку:

shutdown -r now

После загрузки Live-CD откройте терминал и станьте root:

su

Убедитесь, что раздел размонтирован (в Live-системе он обычно не смонтирован):

umount /dev/sda1

Проверьте файловую систему без исправлений (только для осмотра):

fsck -n /dev/sda1
fsck 1.38 (30-Jun-2005)  
e2fsck 1.38 (30-Jun-2005)  
/dev/sda1: clean, 159036/765536 files, 1080014/1536000 blocks

Шаг 1. Удаляем журнал (переключаемс¤ в ext2)

tune2fs позволяет убрать флаг журнала. Это нужно, потому что мы будем удалять и пересоздавать раздел, а при этом избегаем конфликтов с внутренним журналом ext3.

tune2fs -O ^has_journal /dev/sda1

Ожидаемый вывод:

tune2fs 1.38 (30-Jun-2005)

Важно: эта операция не удаляет данные, а только метаданные журнала. Если что-то пойдет не так, у вас будут исходные inode/блоки в файловой системе — но всё равно держите резервную копию.

Шаг 2. Удаляем и заново создаём раздел с новым размером (fdisk)

Запускаем fdisk для диска (не для раздела):

fdisk /dev/sda

Примечание: используйте /dev/sda, а не /dev/sda1.

В fdisk введите m, чтобы увидеть список команд. Выведите текущую таблицу p и запомните начальный цилиндр /dev/sda1 — в примере это 1.

Удалите раздел №1:

Command (m for help): d  
Partition number (1-5): 1

Создайте заново первичный раздел №1 и укажите тот же первый цилиндр (важно!), а в качестве последнего цилиндра — максимально доступный до следующего раздела (в примере 1247):

Command (m for help): n  
Command action  
l   logical (5 or over)  
p   primary partition (1-4)  
p  
Partition number (1-4): 1

First cylinder (1-1305, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-1247, default 1247): 1247

Проверьте новую таблицу p. Восстановите флаг загрузки (bootable), если он был до этого:

Command (m for help): a  
Partition number (1-5): 1

Запишите изменения и выйдите:

Command (m for help): w

fdisk сообщит о том, что нужно перезагрузить систему, если ядро всё ещё использует старую таблицу разделов. Пример вывода:

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.  
The kernel still uses the old table.  
The new table will be used at the next reboot.  
Syncing disks.

Шаг 3. Перезагрузка и проверка

Перезагрузитесь ещё раз в Live-CD/Rescue или оставьте текущую rescue-сессию и заново загрузитесь, чтобы ядро перечитало таблицу разделов:

shutdown -r now

Станьте root и запустите полную проверку e2fsck:

e2fsck -f /dev/sda1

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

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

resize2fs /dev/sda1

Пример вывода:

resize2fs 1.38 (30-Jun-2005)  
Resizing the filesystem on /dev/sda1 to 2504124 (4k) blocks.  
The filesystem on /dev/sda1 is now 2504124 blocks long.

После увеличения снова можно (и нужно) проверить файловую систему в режиме только для чтения:

fsck -n /dev/sda1
fsck 1.38 (30-Jun-2005)  
e2fsck 1.38 (30-Jun-2005)  
/dev/sda1: clean, 159036/1254176 files, 1062544/2504124 blocks

Шаг 5. Воссоздание журнала (возвращение в ext3)

tune2fs -j /dev/sda1

Пример вывода:

tune2fs 1.38 (30-Jun-2005)  
Creating journal inode: done  
This filesystem will be automatically checked every 30 mounts or 0 days, whichever comes first. Use tune2fs -c or -i to override.

Перезагрузите систему в обычный режим:

shutdown -r now

Если всё прошло успешно, система загрузится, а df уже покажет увеличенный раздел:

df
Filesystem           1K-blocks      Used Available Use% Mounted on  
/dev/sda1              9859036   4224032   5234348  45% /  
varrun                   95480       132     95348   1% /var/run  
varlock                  95480         0     95480   0% /var/lock  
udev                     10240        52     10188   1% /dev  
devshm                   95480         0     95480   0% /dev/shm  
lrm                      95480     17580     77900  19% /lib/modules/2.6.17-10-generic/volatile
df -B 4k
Filesystem           4K-blocks      Used Available Use% Mounted on  
/dev/sda1              2464759   1056008   1308587  45% /  
varrun                   23870        33     23837   1% /var/run  
varlock                  23870         0     23870   0% /var/lock  
udev                      2560        13      2547   1% /dev  
devshm                   23870         0     23870   0% /dev/shm  
lrm                      23870      4395     19475  19% /lib/modules/2.6.17-10-generic/volatile
df -h
Filesystem            Size  Used Avail Use% Mounted on  
/dev/sda1             9.5G  4.1G  5.0G  45% /  
varrun                 94M  132K   94M   1% /var/run  
varlock                94M     0   94M   0% /var/lock  
udev                   10M   52K   10M   1% /dev  
devshm                 94M     0   94M   0% /dev/shm  
lrm                    94M   18M   77M  19% /lib/modules/2.6.17-10-generic/volatile

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

fdisk -l
  
Disk /dev/sda: 10.7 GB, 10737418240 bytes  
255 heads, 63 sectors/track, 1305 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  
  
Device Boot      Start         End      Blocks   Id  System  
/dev/sda1   *           1        1247    10016496   83  Linux  
/dev/sda2            1248        1305      465885    5  Extended  
/dev/sda5            1248        1305      465853+  82  Linux swap / Solaris
fdisk -s /dev/sda1
10016496

Критерии приёмки

  • df показывает ожидаемый увеличенный размер для /dev/sda1.
  • e2fsck не возвращает ошибок.
  • Система успешно загружается из основного диска (если раздел содержал систему).
  • Данные целы, критичные сервисы работают.

Риски и меры предосторожности

  • Неправильный выбор первого цилиндра при создании нового раздела приведёт к потере доступа к данным. Всегда используйте тот же первый сектор/цилиндр, что и раньше.
  • Всегда имейте актуальную резервную копию перед манипуляциями с разделами.
  • Если служба использует раздел (монтирован), все операции делайте с разделом размонтированным.
  • При ошибке записи таблицы разделов ядро может продолжать использовать старую таблицу — перезагрузка обязательна.

Important: Если вы не уверены в шагах, сделайте образ (dd) раздела или всего диска перед началом.

Альтернативные подходы и когда они лучше

  • LVM: если раздел находится под LVM, используйте lvextend + resize2fs (обычно можно онлайн).
  • growpart (cloud-utils) и cloud-образ: для виртуальных дисков часто удобнее использовать growpart.
  • parted: более современный инструмент, поддерживает GPT и гибкие единицы размеров.
  • Перемещение разделов: если свободное пространство не сразу после нужного раздела, можно перемещать разделы (gparted) — рискованно и долго.

Когда этот метод не работает:

  • Свободное пространство не смежно с расширяемым разделом.
  • Раздел использует LVM — тогда расширять нужно логический том, а не раздел напрямую.

Быстрая шпаргалка команд

  • Сбор данных: df, fdisk -l, fdisk -s /dev/sda1, e2fsck -n /dev/sda1
  • Убрать журнал: tune2fs -O ^has_journal /dev/sda1
  • fdisk: удалить и заново создать раздел, сохранить первый сектор
  • Проверить: e2fsck -f /dev/sda1
  • Изменить размер: resize2fs /dev/sda1
  • Воссоздать журнал: tune2fs -j /dev/sda1

Чеклист для инженера (пошагово)

  1. Сделать резервную копию / снимок диска.
  2. Сохранить выводы df и fdisk -l.
  3. Перезагрузиться в Live-CD (если нужно).
  4. Размонтировать /dev/sda1: umount /dev/sda1.
  5. Проверить файловую систему: fsck -n /dev/sda1.
  6. tune2fs -O ^has_journal /dev/sda1.
  7. fdisk /dev/sda: удалить и заново создать раздел №1 (тот же первый сектор).
  8. w → записать таблицу.
  9. Перезагрузиться в Live-CD/Rescue.
  10. e2fsck -f /dev/sda1.
  11. resize2fs /dev/sda1.
  12. fsck -n /dev/sda1.
  13. tune2fs -j /dev/sda1.
  14. Перезагрузиться в рабочую систему.
  15. Проверить df и сервисы.

План отката и аварийного восстановления

  • Если после изменения таблицы разделов ядро потеряло доступ к файловой системе:
    • Перезагрузитесь в Live-CD.
    • В fdisk восстановите прежние параметры (если у вас сохранён старый fdisk -l вывод).
    • Если этого недостаточно — восстановите разделы из резервной копии (dd образ) или восстановите данные из бэкапа.

Когда использовать online-расширение

  • ext3/4 поддерживают online-расширение при условии, что раздел увеличился на уровне LVM или блочного устройства (pvresize, lvextend).
  • Если у вас LVM, выполните lvextend, затем resize2fs (можно без размонтирования).

Мини-методология принятия решения

  1. Раздел смежный со свободным пространством? → да: этот метод. → нет: используйте gparted/перемещение разделов или LVM.
  2. Раздел является LVM? → да: используйте LVM-утилиты.
  3. Требуется минимальное время простоя? → используйте online-методы (LVM), если возможно.

Небольшая галерея крайних случаев

  • Свободное пространство находится после расширенного раздела, а не после /dev/sda1 → надо работать с расширенным и логическим разделом.
  • Раздел имеет нестандартный alignment/специдентификаторы → проверьте начало сектора/offset перед пересозданием.

1‑строчная глоссарий

  • ext3: файловая система Linux с журналом.
  • ext2: файловая система Linux без журнала (легче для некоторых операций восстановления).
  • resize2fs: утилита для изменения размера ext2/3/4 FS.
  • tune2fs: утилита для изменения опций файловой системы (включает/выключает журнал).
  • fdisk: утилита для управления таблицей разделов MBR.

Решение в виде диаграммы (выбор метода)

flowchart TD
  A[Есть свободное пространство сразу после раздела?] -->|Да| B[Можно использовать метод fdisk + resize2fs]
  A -->|Нет| C[Является ли диск LVM?]
  C -->|Да| D[Использовать lvextend + resize2fs 'часто online']
  C -->|Нет| E[Использовать gparted/перемещение разделов или новый layout]
  B --> F[Сделать backup → LiveCD → tune2fs -O ^has_journal → fdisk → resize2fs → tune2fs -j]
  D --> G[lvextend → resize2fs]
  E --> H[Рискованно: делать образ диска и тестировать]

Тесты и критерии приёмки

  • После операции df должен показывать увеличенный размер.
  • e2fsck не должен показывать ошибок.
  • Восстановление системы из резервной копии должно занимать разумное время в тестах на стенде.

Короткое резюме

Этот метод прост и безопасен при условии, что свободное пространство находится сразу после расширяемого раздела. Он предполагает кратковременную остановку системы (если раздел системный) и работу из Live-CD. Всегда делайте резервные копии и проверяйте начальный сектор/цилиндр перед пересозданием раздела.

Контрольный чек-лист перед выполнением в проде

  • Резервная копия создана (полный dd-образ или бэкап данных).
  • Сохранены выводы df и fdisk -l.
  • Есть доступ к Live-CD и консоли.
  • План на откат и время простоя согласованы.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро