Как изменить размер разделов с помощью командной строки без использования графического интерфейса на сервере?
45
У меня есть доступ к серверу только через терминал, и я не могу использовать графические инструменты, такие как 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
Вы не можете сжать / отредактировать раздел, если какой-либо раздел на устройстве хранения смонтирован. Таким образом, чтобы размонтировать и отредактировать корневую файловую систему, ОС необходимо отключить. Затем загрузитесь в работающую систему и отредактируйте раздел, как описано в других ответах.
Альтернативное решение: файл подкачки
В качестве альтернативы созданию целого раздела файл подкачки предлагает возможность изменять его размер на лету , и его проще всего удалить. Файл подкачки может быть горячим подключением . т.е. можно добавлять и удалять без размонтирования / выключения ОС.
Создайте файл с именем 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и добавьте запись для файла подкачки:
Я думаю, что это самый простой и эффективный ответ =)! Есть ли смысл в использовании файла вместо раздела?
Алаа Али
2
Немного низкая производительность, если файл фрагментирован. Нет никакого преимущества в производительности для смежного файла подкачки или раздела, оба обрабатываются одинаково.
Тоттил
1
Я думаю, что это лучшее решение. Так как вы не форматируете, не уменьшаете и не изменяете иным образом раздел (таблицы), риск потери данных отсутствует.
R110
28
Прежде всего, важно знать, что вы не можете изменить размер, чтобы сжать корневой раздел, если вы его используете (это называется онлайн-сжатием). Вы можете только вырастить это онлайн. Это поддерживается 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.4G
Изменение размера (сокращение) раздела
Сокращение раздела - это двухэтапный процесс, который включает в себя:
Уменьшение размера файловой системы на необходимое количество.
Уменьшение размера базового блочного устройства в соответствии с размером файловой системы.
Прежде чем уменьшить емкость файловой системы, необходимо уменьшить размер блочного устройства (которое может быть разделом или логическим томом). Поскольку это недоступно ни для одной файловой системы ext *, вы не сможете уменьшить ее с 20 ГБ до 19,5 ГБ для создания подкачки объемом 500 МБ.
Даже Ext4 не поддерживает онлайн-сжатие. Если вы попытаетесь это сделать, вы получите следующее:
Насколько я знаю, ваша единственная ставка - либо:
Установите другую версию Ubuntu на том же сервере (в другом разделе), которую затем можно использовать для сжатия корневого раздела исходного сервера Ubuntu.
Установите сервер Ubuntu с нуля того размера, который вам действительно нужен
Используйте Live Image Ubuntu Server для изменения размера раздела. В этом случае вам нужно перейти на этот экран:
И выберите опцию Resize, как показано на рисунке выше. Оттуда вы выберете новый размер, так как отсюда вы можете размонтировать устройство и уменьшить его, если хотите.
В качестве дополнительной помощи здесь приводится поддержка gparted файловой системы http://gparted.org/features.php, которая дает очень подробный список поддерживаемых и включает в себя, если они имеют полное онлайн-изменение размера. Btrfs среди них.
Мне любопытно, есть ли другие файловые системы, которые поддерживают сжатие онлайн? ZFS или BTRFS может быть?
Сет
Я добавил ссылку внизу. Ядро также должно поддерживать это, если файловая система должна корректно изменять размер онлайн.
Луис Альварадо
У меня есть сервер Ubuntu на машине VMware и его размер диска составляет 120G. Но после использования первого решения, я получаю эту ошибку: файловая система уже 27262720 блоков. Нечего делать!
Dr.jacky
1
Спасибо, мистер Хайд. Было несколько проблем с рабочей станцией 10 и даже 11. Я бы порекомендовал 12, а для Ubuntu я бы также обновился до последней или новой LTS, потому что были также некоторые проблемы. В моем случае у меня есть рабочая станция VMware 12.0.1 и 64-битная Ubuntu 15.10.
Луис Альварадо
4
С man- The resize2fs program does not manipulate the size of partitions.
страницы
6
Ответ зависит от того, можете ли вы размонтировать раздел для сжатия или нет. В вашем случае вы, вероятно, не можете размонтировать раздел. В 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 через графический интерфейс администратора. Я считаю, что это ваша лучшая ставка в настоящее время.
Прежде всего, важно знать, что вы не можете изменить размер, чтобы сжать корневой раздел, если вы его используете (это называется онлайн-сжатием). Вы можете только вырастить это онлайн. Это поддерживается
resize2fs
командой. Я приму следующее:Существует 2 типа разделов, размер которых вы можете изменить, разделы LVM или разделы Logical Volume Manager, которые поддерживают изменение размера онлайн (уменьшение / увеличение) с момента создания галактики и стандартных разделов, которые большинство из нас использует. На данный момент единственной, которая имеет почти 100% поддержку полного онлайн-изменения размера (Shrink / Grow), является файловая система btrfs (которая все еще находится в разработке). Я объясню, как сделать нормальные разделы, которые большинство из нас использует в файловой системе ext4.
Изменение размера (увеличение) раздела
Чтобы увеличить раздел, вы можете сделать это с монтированным рутом. Для этого просто сделайте:
При условии, что у вас уже есть пустое пространство, готовое для объединения. После этого я рекомендую перезагрузку, чтобы изменения вступили в силу правильно. Приведенная выше команда изменяет размер до максимально допустимого. Если вы хотите изменить размер до определенного размера, просто добавьте размер в конце:
Обратите внимание, что если вы хотите указать 25,4 ГБ, вы не можете использовать «.». вам нужно будет перейти на одну единицу измерения. В этом случае от ГБ до МБ, так это будет выглядеть так:
Таким образом, у вас будет раздел 25.4G
Изменение размера (сокращение) раздела
Сокращение раздела - это двухэтапный процесс, который включает в себя:
Прежде чем уменьшить емкость файловой системы, необходимо уменьшить размер блочного устройства (которое может быть разделом или логическим томом). Поскольку это недоступно ни для одной файловой системы ext *, вы не сможете уменьшить ее с 20 ГБ до 19,5 ГБ для создания подкачки объемом 500 МБ.
Даже Ext4 не поддерживает онлайн-сжатие. Если вы попытаетесь это сделать, вы получите следующее:
Насколько я знаю, ваша единственная ставка - либо:
Установите другую версию Ubuntu на том же сервере (в другом разделе), которую затем можно использовать для сжатия корневого раздела исходного сервера Ubuntu.
Установите сервер Ubuntu с нуля того размера, который вам действительно нужен
Используйте Live Image Ubuntu Server для изменения размера раздела. В этом случае вам нужно перейти на этот экран:
И выберите опцию Resize, как показано на рисунке выше. Оттуда вы выберете новый размер, так как отсюда вы можете размонтировать устройство и уменьшить его, если хотите.
В качестве дополнительной помощи здесь приводится поддержка gparted файловой системы http://gparted.org/features.php, которая дает очень подробный список поддерживаемых и включает в себя, если они имеют полное онлайн-изменение размера. Btrfs среди них.
источник
The resize2fs program does not manipulate the size of partitions.
Ответ зависит от того, можете ли вы размонтировать раздел для сжатия или нет. В вашем случае вы, вероятно, не можете размонтировать раздел. В Linux (UNIX / MAC OS) монтирование раздела относится к использованию файловой системы и ее сопоставлению с точкой монтирования (в вашем случае
/
). Размонтирование означает, что вы прекратите использование файловой системы и удалите сопоставление с точкой монтирования. Вы не можете размонтировать файловую систему, содержащую вашу работающую ОС.Если раздел можно отключить
Предположим, вы хотите сжать раздел ext4 объемом 200 ГБ при
/dev/sda4
подключении к/data
. В настоящее время он содержит музыку и фильмы или аналогичные, поэтому вы можете временно отключить его. Вы хотите создать 4 ГБ подкачки.размонтировать раздел.
изменить размер файловой системы ext4 до 196 ГБ, предполагая, что места достаточно. Теперь вам нужно сжать раздел. В настоящее время я считаю, что вам нужно использовать,
cfdisk
чтобы удалить существующий раздел и воссоздать меньший раздел на его месте. Затем вы также можете создать новый раздел для обмена.даст вам текстовый графический интерфейс для проверки вашей таблицы разделов. Я бы порекомендовал вам
print
создать таблицу разделов для файла или экрана на этом этапе и принять к сведению текущую конфигурацию в качестве резервной копии. Затем вы можете выбрать/dev/sda4
иdelete
раздел. На его местеfree space
будут отображаться. Используйтеnew
для создания нового раздела с 196 ГБ на его месте и установите тип ext4. Затем перейдите на свободное место и создайте раздел подкачки объемом 4 ГБ с типомswap
. Примечание: я не проверял эти команды, так как/
в данный момент не могу поиграть с моими .Если раздел не может быть размонтирован
Вы не можете сжать смонтированный раздел ext3 / 4 (см. Справочную страницу
resize2fs
). Поскольку вы работаете со своей ОС/
, вы не можете размонтировать ее/
. Это означает, что вы должны загрузить другую ОС (например, с USB-ключа), чтобы внести изменения.В вашем случае это удаленный сервер (скорее всего, на KVM), поэтому вы не сможете загрузиться с USB / образа работающей ОС. Могут быть и другие способы изменить разделение у вашего провайдера vServer через графический интерфейс администратора. Я считаю, что это ваша лучшая ставка в настоящее время.
источник