У меня есть удаленный выделенный сервер без панели управления 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 %. Так что, пока я не изменю размер разделов, это будет работать.