В этой статье основное внимание уделяется виртуальным частным серверам как практическому варианту использования, но это также руководство о том, как уменьшить размер раздела на любом (Debian) Linux-компьютере с помощью командной строки.
После того, как вы получите VPS у хостинг-провайдера, вы можете настроить макет раздела. Однако часто у вас нет выбора: вы выбираете желаемую ОС, а затем она устанавливается на один раздел, занимая все доступное дисковое пространство.
Тем не менее, VPS не только для однораздельных веб-серверов! В зависимости от ваших потребностей вы можете добавить раздел подкачки, другой для ваших данных …
К счастью, большинство хостинг-провайдеров предлагают режим восстановления, альтернативную операционную систему на другом жестком диске, с которой вы можете настроить обычную ОС и «нормальный» жесткий диск.
В остальной части этого руководства предполагается, что единственный существующий раздел относится к типу Ext4 (или Ext2/3); это тот случай, если вы установили Debian или Ubuntu.
Допустим, вам нужно уменьшить размер раздела с 40 ГиБ до 2 ГиБ (начиная с начала диска), чтобы создать после него другие разделы.
Первое, что нужно сделать, — это перезагрузиться в режиме восстановления, которым обычно является система Debian GNU/Linux. Вам будет предоставлен временный пароль root для этой временной системы, просто SSH.
Затем определите диск, используемый вашей обычной системой; вы можете использовать
fdisk -l
Диск /dev/sdb, на котором мы хотим изменить схему разделов, и пока единственный раздел /dev/sdb1. /dev/sda — это диск, на котором находится временная система спасения. Конечно, в оставшейся части этого руководства замените sdb1, если это неправильное имя устройства.
Проверьте файловую систему с помощью:
e2fsck -f /dev/sdb1
(иначе следующая команда resize2fs может не сработать).
apt install e2fsprogs
Также убедитесь, что размер файловой системы не превышает 2 ГиБ. Предоставление /mnt пусто, смонтируйте файловую систему с помощью:
mount /dev/sdb1 /mnt
и проверьте ее размер с помощью df.
Отключите файловую систему:
umount /dev/sdb1
Запустите:
resize2fs /dev/sdb1 2G
Пока вы уменьшили файловую систему, а это означает, что вы не можете добавлять в нее данные, которые не соответствуют ее логическому размеру 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раз, чтобы подтвердить изменение размера раздела.
По нашему опыту, остановка здесь и перезагрузка могут «восстановить» структуру разделов в предыдущем состоянии, то есть, как будто вы никогда не уменьшали раздел!
Чтобы «проверить» изменения, лучше сейчас добавить хотя бы один раздел на свободное место.
Допустим, вы хотите добавить раздел Ext4 размером 12 ГиБ после раздела, занятого ОС.
Во-первых, вы должны «объявить» раздел, поэтому запись будет добавлена в таблицу разделов (где-то в зарезервированной зоне). Используйте следующую команду:
mkpart primary ext4
Затем выйдите из parted (C^d) и фактически создайте файловую систему Ext4 на sdb2. Чтобы применить настройки Ext4 по умолчанию, выполните следующую команду:
kfs.ext4 /dev/sdb2
Эта статья была просто введением в то, как управлять разделами и файловыми системами в командной строке, сосредоточившись на практическом случае серверов, имеющих один большой раздел по умолчанию (и где вы можете захотеть его разделить). Надеемся, это было полезно.