Как изменить размер раздела GPT с помощью инструмента командной строки Parted. (Используя SSH Rescue Env.)

Как изменить размер раздела GPT с помощью инструмента командной строки Parted. (Используя SSH Rescue Env.)

У меня есть удаленный выделенный сервер без панели управления Online для изменения размера разделов после первоначальной установки ОС, поэтому я использую среду восстановления на основе Debian для управления размонтированными разделами. Проблема в том, что я немного глуп, когда дело доходит до управления разделами на удаленных дисках, я пробовал использовать инструмент командной строки GNU Parted, так как GParted не является вариантом, а fdisk бесполезен, так как диск отформатирован с помощью GPT, только чтобы узнать, что команда изменения размера была удалена с версии 2.4. Итак, ниже приведен список моих разделов из команды print parted:

Number  Start   End     Size    File system     Name     Flags
1      20.5kB  1049kB  1029kB                  primary  bios_grub
2      2097kB  21.0GB  21.0GB  ext4            primary
3      21.0GB  2000GB  1979GB  ext4            primary
4      2000GB  2000GB  536MB   linux-swap(v1)  primary

Мне нужно выяснить, как сжать #3 примерно до 1,2 ТБ, а затем расширить #2, чтобы заполнить то, что было перемещено при сжатии #3. Мой раздел #2 заполнен, а в разделе #3 есть свободное место.

решение1

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

  • Всегда помните о различии междураздел(простая структура данных, которая определяет начальную и конечную точку фрагмента дискового пространства, как правило, вместе с другими вещами, такими как код типа) ифайловая система(более сложная структура данных, которая хранится в разделе или другом контейнере, например, логическом томе LVM). Если вы еще не полностью понимаете это различие, остановитесь сейчас и изучите его.
  • Вы можете увеличить размер смонтированной файловой системы ext2/3/4, но, насколько мне известно, уменьшить размер смонтированной файловой системы ext2/3/4 нельзя. Утилита resize2fsделает эту работу из командной строки.
  • Чтобы изменить размер раздела, вам, возможно, придется удалить раздел и создать на его месте новый. Начальную и конечную точки, возможно, придется указать с точностью на уровне сектора, которая partedне предоставляется по умолчанию. Вам нужно установить , unit sчтобы получить это; или вы можете использовать gdisk, который обеспечивает точность на уровне сектора по умолчанию. (Даже gdisk, однако, автоматически выравнивает разделы по значениям 2048 секторов по умолчанию, поэтому вам может потребоваться настроить выравнивание с помощью dопции в меню экспертов.)
  • Операции по изменению размера файловой системы обычно оставляют начальную точку файловой системы неизменной. Таким образом, если вам нужно переместить начальную точку раздела, вы должны сделать это с помощью ddили какого-либо другого инструмента для перемещения всего содержимого файловой системы. В зависимости от направления перемещения это может потребоваться сделать до или после удаления исходного раздела, а новый может потребоваться создать до или после перемещения. Если операция перемещения перекрывает исходное местоположение, вы должны бытьоченьБудьте осторожны, делая это, чтобы не уничтожить некоторые данные раздела!
  • Будьте очень осторожны с конечными точками раздела и файловой системы. Если вы сжимаете файловую систему, а затем заново создаете новый раздел, который немного меньше, чем нужно, вы можете в конечном итоге испортить важные данные. Я рекомендую сжимать файловую систему меньше, чем вы намеревались, создавать новый раздел, а затем использовать resize2fsдля увеличения файловой системы до размера нового окружающего раздела. Эта процедура минимизирует вероятность несоответствия размеров.
  • Помните, что после изменения таблицы разделов вам может потребоваться перезагрузка, чтобы ядро ​​использовало новую таблицу.

Из-за этих проблем попытка сделать то, что вы хотите, без помощи GParted или другого инструмента, предназначенного для координации изменений разделов и файловой системы, может быть крайне рискованной. Этоможетбыть сделано, но одна ошибка в указании значения сектора может оставить вас с диском, который совершенно бесполезен. Тот факт, что вы просите о помощи по этому поводу, заставляет меня опасаться предлагать вам даже попытаться; риск испортить производственную систему слишком велик для того, кто никогда раньше не делал подобных вещей. Если у вас нет другого выбора, я настоятельно рекомендую вам пересоздать свой сервер локально и попрактиковаться на копии, прежде чем вы попробуете это на своем удаленном сервере.

Возможно, вам стоит рассмотреть некоторые альтернативы:

  • Используйте GParted-- Если вы можете загрузиться с внешнего носителя, вы можете использовать GParted. Вы говорите, что это удаленный сервер. Многие такие системы предоставляют BMC, который позволяет вам подключать виртуальные USB-накопители и видеть виртуальную консоль через Java-апплет. Использование этой функции будет крайне медленным, но должно позволить вам запускать GParted и вносить изменения гораздо проще и безопаснее.
  • Создать дополнительные разделы-- Вы можете сжать один раздел, а затем, вместо того, чтобы перемещать и увеличивать другой, создать новый раздел. Затем вы переместите данные из подкаталога в новый раздел и смонтируете его вместо этого подкаталога. Такой подход в основном разделяет разницу; вам все равно придется сжать один раздел, но вы избежите необходимости выполнять более опасную и сложную операцию перемещения.
  • Используйте символические ссылки-- Вы можете достичь своих целей, отделив некоторые файлы из переполненного раздела на менее заполненный, а затем используя символические ссылки, чтобы сделать их доступными по желаемым путям. Это, вероятно, будет самым безопасным подходом.
  • Переустановить-- Если у вас есть достаточная резервная копия, вы можете сделать резервную копию системы, переустановить ее с лучшими настройками и восстановить исходные данные.
  • Сделайте это на месте-- Если у вас есть физический доступ к вашим серверам или если у вас есть помощь на месте, вы (или ваша помощь) можете сделать это лично, как и с настольной системой, используя установочный USB-флеш-накопитель Ubuntu. В зависимости от того, насколько это важно и где сервер находится относительно вас, может даже стоить поездки, чтобы выполнить эту работу.
  • Добавить диск-- Вы можете рассмотреть возможность добавления диска, если это возможно, и переноса части своих данных на него.

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

решение2

Как временное решение, из статьи, которую я прочитал. Казалось, что %70 используемого пространства шло с веб-сервера, а именно /var/www. поэтому я сделал следующее:

cd /var
mv www /home
ln -s /home/www www
ll
lrwxrwxrwx  1 root root      9 Oct 18 12:33 www -> /home/www/

Как я уже сказал, это временное решение, но мой корневой каталог теперь заполнен только на 30 % вместо 100 %. Так что, пока я не изменю размер разделов, это будет работать.

Связанный контент