В этой статье основное внимание уделяется виртуальным частным серверам как практическому варианту использования, но это также руководство о том, как уменьшить размер раздела на любом (Debian) Linux-компьютере с помощью командной строки.
После того, как вы получите VPS у хостинг-провайдера, вы можете настроить макет раздела. Однако часто у вас нет выбора: вы выбираете желаемую ОС, а затем она устанавливается на один раздел, занимая все доступное дисковое пространство.
Тем не менее, VPS не только для однораздельных веб-серверов! В зависимости от ваших потребностей вы можете добавить раздел подкачки, другой для ваших данных …
К счастью, большинство хостинг-провайдеров предлагают режим восстановления, альтернативную операционную систему на другом жестком диске, с которой вы можете настроить обычную ОС и «нормальный» жесткий диск.
В остальной части этого руководства предполагается, что единственный существующий раздел относится к типу Ext4 (или Ext2/3); это тот случай, если вы установили Debian или Ubuntu.
Допустим, вам нужно уменьшить размер раздела с 40 ГиБ до 2 ГиБ (начиная с начала диска), чтобы создать после него другие разделы.
Шаг 1. Переключитесь в режим восстановления и определите диск.
Первое, что нужно сделать, – это перезагрузиться в режиме восстановления, которым обычно является система Debian GNU/Linux. Вам будет предоставлен временный пароль root для этой временной системы, просто SSH.
Затем определите диск, используемый вашей обычной системой; вы можете использовать
fdisk -l
Диск /dev/sdb, на котором мы хотим изменить схему разделов, и пока единственный раздел /dev/sdb1. /dev/sda – это диск, на котором находится временная система спасения. Конечно, в оставшейся части этого руководства замените sdb1, если это неправильное имя устройства.
Шаг 2: уменьшите файловую систему
Проверьте файловую систему с помощью:
e2fsck -f /dev/sdb1
(иначе следующая команда resize2fs может не сработать).
apt install e2fsprogs
Также убедитесь, что размер файловой системы не превышает 2 ГиБ. Предоставление /mnt пусто, смонтируйте файловую систему с помощью:
mount /dev/sdb1 /mnt
и проверьте ее размер с помощью df.
Отключите файловую систему:
umount /dev/sdb1
Запустите:
resize2fs /dev/sdb1 2G
Шаг 3: Уменьшите раздел
Пока вы уменьшили файловую систему, а это означает, что вы не можете добавлять в нее данные, которые не соответствуют ее логическому размеру 2 ГиБ. Но раздел, на котором расположена файловая система, по-прежнему занимает все дисковое пространство.
Рекомендуем parted для управления разделами в Linux. В Debian получите это с помощью apt install parted. Этот инструмент можно использовать в интерактивном режиме. Запустите его с аргументом:
parted /dev/sdb
Используйте unit s, чтобы все размеры отображались как количество секторов (вместо MiB, GiB и т. д.), Что полезно для точного управления. В противном случае вы можете столкнуться с такими проблемами, как «Результирующий раздел неправильно выровнен для лучшей производительности» . Команда print free позволяет увидеть состояние диска.
Вы хотите, чтобы раздел 1 имел длину 2 ГиБ, что равно 2 * 1024 * 1024 * 1024/512 = 4194304 сектора.
Выполните команду:
resizepart 1
Затем вам будет предложено указать местоположение на диске, выраженное в секторах от начала диска, где раздел должен заканчиваться. Поскольку перед разделом, заканчивающимся сектором 2047, есть зарезервированная область , необходимо ввести 4194304 + 2047 = 4196351s.
Ответьте «Yes» после предупреждающего сообщения, затем еще print freeраз, чтобы подтвердить изменение размера раздела.
По нашему опыту, остановка здесь и перезагрузка могут «восстановить» структуру разделов в предыдущем состоянии, то есть, как будто вы никогда не уменьшали раздел!
Чтобы «проверить» изменения, лучше сейчас добавить хотя бы один раздел на свободное место.
Шаг 4: Добавьте другие разделы
Допустим, вы хотите добавить раздел Ext4 размером 12 ГиБ после раздела, занятого ОС.
Во-первых, вы должны «объявить» раздел, поэтому запись будет добавлена в таблицу разделов (где-то в зарезервированной зоне). Используйте следующую команду:
mkpart primary ext4
Затем выйдите из parted (C^d) и фактически создайте файловую систему Ext4 на sdb2. Чтобы применить настройки Ext4 по умолчанию, выполните следующую команду:
kfs.ext4 /dev/sdb2
Итоги
Эта статья была просто введением в то, как управлять разделами и файловыми системами в командной строке, сосредоточившись на практическом случае серверов, имеющих один большой раздел по умолчанию (и где вы можете захотеть его разделить). Надеемся, это было полезно.