Как изменить размер разделов с помощью командной строки без использования графического интерфейса на сервере?
У меня есть доступ к серверу только через терминал, и я не могу использовать графические инструменты, такие как GParted!
Я хочу создать новый раздел из части корня (около 768 МБ) для подкачки.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 20G 1.3G 18G 7% /
udev 10M 0 10M 0% /dev
tmpfs 199M 4.9M 194M 3% /run
tmpfs 100M 12K 100M 1% /run/user
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
3 ответа
Вы не можете сжать / отредактировать раздел, если какой-либо раздел на устройстве хранения смонтирован. Таким образом, чтобы размонтировать и отредактировать корневую файловую систему, ОС необходимо отключить. Затем загрузитесь в работающую систему и отредактируйте раздел, как описано в других ответах.
Альтернативное решение: файл подкачки
В качестве альтернативы созданию целого раздела файл подкачки предлагает возможность изменять его размер на лету, и его проще всего удалить. Файл подкачки может быть горячим подключением. т.е. можно добавлять и удалять без размонтирования / выключения ОС.
Создайте файл 512 МБ с именем
/swapfile
, Это будет наш файл подкачки.fallocate -l 512M /swapfile
ИЛИ ЖЕ
dd if=/dev/zero of=/swapfile bs=1M count=512
Установите правильные разрешения (потому что общедоступный файл подкачки является огромной локальной уязвимостью):
chmod 600 /swapfile
После создания файла правильного размера отформатируйте его для замены:
mkswap /swapfile
Активируйте файл подкачки:
swapon /swapfile
редактировать
/etc/fstab
и добавьте запись для файла подкачки:/swapfile none swap defaults 0 0
Более подробная информация на Arch Linux вики.
Прежде всего, важно знать, что вы не можете изменить размер, чтобы сжать корневой раздел, если вы его используете (это называется онлайн-сжатием). Вы можете только вырастить это онлайн. Это поддерживается resize2fs
команда. Я приму следующее:
- Вы не хотите потерять свою информацию в корневом разделе.
- У вас нет физического доступа к жесткому диску, чтобы использовать LiveCD. Это может относиться к виртуальной или удаленной среде. В случае виртуального вы все равно можете загрузиться с LiveCD, если вы установите виртуальную машину для загрузки с LiveCD. Это предполагает, что виртуальная машина поддерживает вывод графического интерфейса рабочего стола, из которого вы могли бы легко запустить приложение Gparted. Но так как это менее вероятно, я предполагаю, что вы не можете.
Существует 2 типа разделов, размер которых вы можете изменить, разделы LVM или разделы Logical Volume Manager, которые поддерживают изменение размера онлайн (уменьшение / увеличение) с момента создания галактики и стандартных разделов, которые большинство из нас использует. На данный момент единственной, которая имеет почти 100% поддержку полного онлайн-изменения размера (Shrink/Grow), является файловая система btrfs (которая все еще находится в разработке). Я объясню, как сделать нормальные разделы, которые большинство из нас использует в файловой системе ext4.
Изменение размера (увеличение) раздела
Чтобы увеличить раздел, вы можете сделать это с подключенным рутом. Для этого просто сделайте:
sudo resize2fs /dev/sda1
При условии, что у вас уже есть пустое пространство, готовое для объединения. После этого я рекомендую перезагрузку, чтобы изменения вступили в силу правильно. Приведенная выше команда изменяет размер до максимально допустимого. Если вы хотите изменить размер до определенного размера, просто добавьте размер в конце:
sudo resize2fs /dev/sda1 25G
Обратите внимание, что если вы хотите указать 25,4 ГБ, вы не можете использовать ".". вам нужно будет перейти на одну единицу измерения. В этом случае от ГБ до МБ, так это будет выглядеть так:
sudo resize2fs /dev/sda1 25400M
Таким образом, у вас будет раздел 25.4 G
Изменение размера (сокращение) раздела
Сокращение раздела - это двухэтапный процесс, который включает в себя:
- Уменьшение размера файловой системы на необходимое количество.
- Уменьшение размера базового блочного устройства в соответствии с размером файловой системы.
Прежде чем уменьшить емкость файловой системы, необходимо уменьшить размер блочного устройства (которое может быть разделом или логическим томом). Поскольку это недоступно ни для одной файловой системы ext*, вы не сможете уменьшить ее с 20 ГБ до 19,5 ГБ для создания подкачки объемом 500 МБ.
Даже Ext4 не поддерживает онлайн-сжатие. Если вы попытаетесь это сделать, вы получите следующее:
Насколько я знаю, ваша единственная ставка - либо:
Установите другую версию Ubuntu на том же сервере (в другом разделе), которую затем можно использовать для сжатия корневого раздела исходного сервера Ubuntu.
Установите сервер Ubuntu с нуля того размера, который вам действительно нужен
Используйте Live Image Ubuntu Server для изменения размера раздела. В этом случае вам нужно перейти на этот экран:
И выберите опцию Resize, как показано на рисунке выше. Оттуда вы выберете новый размер, так как отсюда вы можете размонтировать устройство и уменьшить его, если хотите.
В качестве дополнительной помощи здесь приводится поддержка gparted файловой системы http://gparted.org/features.php которая дает очень подробный список поддерживаемых и включает в себя, если они имеют полное онлайн-изменение размера. Btrfs среди них.
Ответ зависит от того, можете ли вы размонтировать раздел для сжатия или нет. В вашем случае вы, вероятно, не можете размонтировать раздел. В Linux (UNIX/MAC OS) монтирование раздела относится к использованию файловой системы и ее сопоставлению с точкой монтирования (в вашем случае /
). Размонтирование означает, что вы прекратите использование файловой системы и удалите сопоставление с точкой монтирования. Вы не можете размонтировать файловую систему, содержащую вашу работающую ОС.
Если раздел можно отключить
Предположим, вы хотите сжать раздел ext4 размером 200 ГБ на /dev/sda4
установлен на /data
, В настоящее время он содержит музыку и фильмы или аналогичные, поэтому вы можете временно отключить его. Вы хотите создать 4 ГБ подкачки.
sudo umount /dev/sda4
размонтировать раздел.
sudo resize2fs /dev/sda4 196G
изменить размер файловой системы ext4 до 196 ГБ, предполагая, что места достаточно. Теперь вам нужно сжать раздел. Я в настоящее время считаю, что вам нужно использовать cfdisk
удалить существующий раздел и воссоздать меньший раздел на его месте. Затем вы также можете создать новый раздел для обмена.
sudo cfdisk /dev/sda
даст вам текстовый графический интерфейс для проверки вашей таблицы разделов. Я бы порекомендовал вам print
разделите таблицу на файл или экран в этот момент и запишите текущую конфигурацию в качестве резервной копии. Затем вы можете выбрать /dev/sda4
а также delete
раздел. На его месте free space
будет отображаться. использование new
создать новый раздел с 196 ГБ на его месте и установить тип ext4. Затем перейдите на свободное место и создайте раздел подкачки объемом 4 ГБ с типом swap
, Примечание. Я не проверял эти команды, так как не могу поиграть с /
в данный момент.
Если раздел не может быть размонтирован
Вы не можете сжать смонтированный раздел ext3/4 (см. Справочную страницу resize2fs
). Как вы работаете с ОС от /
, вы не можете размонтировать /
, Это означает, что вы должны загрузить другую ОС (например, с USB-ключа), чтобы внести изменения.
В вашем случае это удаленный сервер (скорее всего, на KVM), поэтому вы не сможете загрузиться с USB/ образа работающей ОС. Могут быть и другие способы изменить разделение у вашего провайдера vServer через графический интерфейс администратора. Я считаю, что это ваша лучшая ставка в настоящее время.