Как я могу увеличить размер раздела ext4 в Debian?


26

У меня есть диск с этой конфигурацией:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Имеется 478 ГБ нераспределенного пространства. Как мне добавить это пространство в / dev / sda1, не теряя данные, которые в данный момент находятся в / dev / sda1? (файловая система ext4).

ПРИМЕЧАНИЕ: это сервер только с SSH, без графического интерфейса для запуска таких вещей, как gparted.


Я могу загрузить сервер по сети и использовать его, пока диск отключен.
Себ

Этот конкретный пункт много раз освещался на сайтах SE. Было бы лучше сделать еще немного исследований, прежде чем отправлять вопрос.
mdpc

Также см. Askubuntu.com/a/937351/621883, особенно ответ, содержащий growpart и resize2fs, который был мне полезен.
Клор

Ответы:


38

Увеличить раздел: fdisk -u /dev/sda.

p чтобы распечатать таблицу разделов, запишите число, начало, конец, тип sda1.

Удалить это d::

Воссоздайте его с тем же номером (1), начните и наберите, но с большим концом (стараясь не перекрывать другие разделы). Попробуйте выровнять объекты на границе мегабайта, которая является конечной , сделайте ее кратной 2048 минус 1. Измените тип, если необходимо, с t(для разделов, содержащих extXили btrfsфайловую систему, по умолчанию 83отлично).

Затем wнаписать и qвыйти.

Таблица разделов будет изменена, но ядро ​​не сможет принять это во внимание, так как некоторые разделы смонтированы.

Однако, если используемые разделы были только увеличены, вы должны быть в состоянии заставить ядро ​​принять новый макет с:

partx /dev/sda

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

Затем измените размер файловой системы так, чтобы она распространялась в пределах увеличенного раздела:

resize2fs /dev/sda1

Который для ext4будет работать нормально даже на живой FS.


Я знаю, что это старый, но сохранит ли это данные, если вы удалите раздел?
Канадский Люк ВОССТАНОВИТЕ МОНИКУ

3
@CanadianLuke, да, удаление раздела в fdisk только изменяет таблицу разделов. Если вы воссоздадите его того же размера, никаких изменений не будет. Данные никогда не изменятся, если вы не сожмете раздел и не создадите другой логический или расширенный раздел в середине того, чем был ваш раздел, и в этом случае запись раздела для этого расширенного / логического раздела будет записана поверх некоторых данных.
Стефан Шазелас

Это также прекрасно работает для разделов ntfs (с существующим томом, с данными).
Кенни Эвитт

Это звучит разумно, но что если у меня есть разделы Extended, Linux LVM и Linux swap / Solaris, которые начинаются в конце раздела Linux? Должен ли я удалить эти разделы>? Я обеспокоен тем, что в этом случае файловая система не запустится, потому что, возможно, использует Linux LVM, например, в том же самом начале и конце. И я не хочу потерять данные тоже.
циан

@cyan изменение размера логического тома LVM с использованием ext4 FS или изменение размера раздела, используемого в качестве физического тома для LVM, - это разные вопросы с разными процедурами.
Стефан Шазелас

7

Вы не можете сделать это безопасно, пока раздел смонтирован, то есть вам нужно загрузить другой раздел и сделать это оттуда.

gpartedхороший, легкий графический интерфейс для этой цели. В нашем обмене удаленными комментариями вы упомянули, что он не запустится из-за «невозможности доступа к дисплею» - это означает, что вы не в X; так как это графический интерфейс, без этого не получится.

Конечно, если у вас нет другого раздела для использования, вам понадобится live CD или что-то еще - я думаю, что они обычно поставляются с gparted. Ваша лучшая ставка - это, вероятно, настоящий gparted live CD , который, по-видимому, имеет относительно последнюю последнюю стабильную версию (и поместится на CD , что приятно, поскольку "live CD" быстро становится "live DVD").

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


Я не могу использовать gparted, так как у меня есть только SSH-доступ (это сервер без монитора). Я могу размонтировать жесткий диск, так как система не работает на / dev / sda.
Себ

1
Если у вас нет физического доступа к системе и, следовательно, вы не можете с пользой размонтировать и сменить раздел, я думаю, вам не повезло, или, по крайней мере, на очень схематичную территорию - например, вы можете попытаться использовать ее fdiskво время подключения выберите (x) pert, (c) измените количество цилиндров. Но я этого не сделал и сделал бы, только если бы не было другого выбора.
Златовласка

Я только что сказал, что могу размонтировать раздел. Я могу даже загрузить по сети весь сервер и войти с другого сервера, что было бы похоже на использование Live CD (без графического интерфейса).
Себ

@Seb: мой плохой, извини.
Златовласка

2

Я знаю, что это очень старая проблема, но многие люди ищут эту решимость.

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

  1. Создайте загрузочный раздел в начале. Почему в начале? потому что у многих инструментов есть проблемы с концом большого диска выше барьера 2TB. После загрузочного раздела должен быть раздел подкачки. Это для производительности. Остальная часть диска должна использоваться для других разделов.

Но что с этой ситуацией? Я не рекомендую расширять sda1. Я предлагаю создать другие разделы после sda1 & sda2, смонтированные как /homeи /usr. В этих каталогах хранится большинство пользовательских и системных данных, и можно безопасно перемещать данные из этих каталогов в новые разделы.

  1. Но. (второе «но»), если вы все еще хотите сохранить свою текущую структуру, вы должны сначала удалить раздел подкачки. Вы должны сделать swapoff, отметьте это в /etc/fstab. если swapon сообщает вам (см. man), что swap не используется, вы можете удалить его с помощью инструмента для работы с разделами (fdisk или аналогичный)

    Если у вас нет этого раздела, вы можете увеличить свой sda1. При использовании fdiskвы должны сначала распечатать раздел. Это для запоминания, где это начинается. Во-вторых, удалите раздел, используя клавишу «d». Не паникуйте, на жесткий диск ничего не пишется :). После печати вы видите, что на диске нет разделов.

    Далее создайте новый раздел, но будьте осторожны. Посмотрите, на каком секторе начался оригинальный раздел. Напишите тот же номер. После этого посмотрите в конце. fdiskзапрашивает у вас последний доступный сектор. Используйте калькулятор и определите, сколько свопа вам нужно в килобайтах. Умножьте его на 2 и вычтите это число из последнего номера сектора, предложенного fdisk. Создать раздел. Напечатайте это (это все еще во временной памяти fdisk), и посмотрите, все в порядке.

    После этого нажмите клавишу «w», это приведет к записи нового раздела на диск. Вы увидите информацию, что все синхронизированы, или синхронизация не удалась. Если не удалось, вы можете вызвать команду partx / dev / sda для выполнения синхронизации. Если это не помогло, перезагрузите систему. После перезагрузки вы подготовили больший раздел, но файловая система на нем все еще меньше. Вы должны вырастить это. EXT4 растет на лету :), используйте resize2fs /dev/sda1для этого.

    Вам не нужно перемонтировать перезагрузку и т. Д. Наконец, вы должны восстановить раздел подкачки. Просто используйте fdisk снова, создайте новый раздел как swap. После записи 'w' устройство sda2 будет восстановлено. Подготовьте структуру подкачки на нем mkswap /dev/sda2, удалите примечания для подкачки /etc/fstabи, наконец, сделайте swapon -a. Посмотрите, используя команду swapon или top, swap активирован.

Я знаю, это очень длинное объяснение. Я надеюсь, что это будет полезно для любого. Обратите внимание, на мой взгляд, файловая система xfs намного лучше, к сожалению, эта fs не поддерживает сжатие без временного копирования в другое место, но сжатие используется редко. Это хорошо, xfs занимает очень мало места для его собственных метаданных и во многих отношениях быстрее по сравнению с ext4.

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


Большое спасибо slm за хорошие исправления языка: D
Znik
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.