Как изменить размер разделов с помощью командной строки без использования графического интерфейса на сервере?

У меня есть доступ к серверу только через терминал, и я не могу использовать графические инструменты, такие как 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
45
задан 10 December 2018 в 15:36

3 ответа

Вы не можете сжать / отредактировать раздел, если какой-либо раздел на устройстве хранения смонтирован. Таким образом, чтобы размонтировать и отредактировать корневую файловую систему, ОС необходимо отключить. Затем загрузитесь в работающую систему и отредактируйте раздел, как описано в других ответах.

Альтернативное решение: файл подкачки

В качестве альтернативы созданию целого раздела файл подкачки предлагает возможность изменять его размер на лету и является легче удалить вообще. Файл подкачки может быть с возможностью горячей замены . Т.е. можно добавлять и удалять без размонтирования / выключения ОС.

  1. Создайте файл объемом 512 МБ с именем /swapfile. Это будет наш файл подкачки.

    fallocate -l 512M /swapfile  
    

    ИЛИ

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. Установите правильные разрешения (поскольку читаемый во всем мире файл подкачки представляет собой огромную локальную уязвимость):

    chmod 600 /swapfile
    
  3. После создания файла правильного размера отформатируйте его для замены:

    mkswap /swapfile
    
  4. Активируйте файл подкачки:

    swapon /swapfile
    
  5. Отредактируйте /etc/fstab и добавьте запись для файла подкачки:

    /swapfile none swap defaults 0 0
    

Подробнее на arch linux wiki .

0
ответ дан 10 December 2018 в 15:36

В первую очередь, важно, чтобы знать, что Вы не можете изменить размер для уменьшения корневого раздела при использовании его (Это называют уменьшением онлайн). Можно только вырастить его онлайн. Это поддерживается resize2fs команда. Я приму следующее:

  • Вы не хотите освобождать свою информацию о корневом разделе.
  • У Вас нет физического доступа к жесткому диску для использования LiveCD. Это может относиться к виртуальной среде или удаленной. В случае виртуального можно все еще удаться загрузиться от LiveCD при установке VM для начальной загрузки от LiveCD. Это принимает поддержки VM, производящие Рабочий стол GUI от того, где Вы запустили бы приложение Gparted для изменения размеров легко. Но так как это менее вероятно, я предполагаю, что Вы не можете.

Существует 2 типа разделов, которых можно изменить размер, разделы LVM или разделы менеджера по Логическому тому, которые поддерживают Онлайн изменение размеров (Уменьшая/Выращивая) начиная с создания галактики и стандартных разделов, которые большинство из нас использует. Прямо сейчас единственный, который имеет почти 100%-ю поддержку полного изменения размеров онлайн (Уменьшает/Выращивает), btrfs файловая система (Который находится все еще в разработке). Я объясню, как сделать нормальные разделы, которые большинство из нас использует в ext4 файловой системе.

Изменение размеров (роста) раздела

Для роста раздела, можно сделать это со смонтированным корнем. Чтобы сделать это просто делает:

sudo resize2fs /dev/sda1

Если у Вас уже есть вакуум, готовый быть объединенным. Впоследствии я рекомендую перезагрузить для изменений для вступления в силу правильно. Команда выше изменила бы размер к разрешенному максимуму. Если Вы хотите изменить размер к конкретному размеру, затем просто добавляют размер в конце:

sudo resize2fs /dev/sda1 25G

Обратите внимание, что, если Вы хотите указать 25,4 ГБ, Вы не можете использовать ".". необходимо было бы спуститься по одной единице измерения. В этом случае от ГБ до МБ, таким образом, это было бы похоже на это:

sudo resize2fs /dev/sda1 25400M

Таким образом, у Вас будет раздел 25.4G

Изменение размеров (уменьшения) раздела

Уменьшение раздела является двумя процессами шага, которые включают:

  • Сокращение размера файловой системы суммой необходимо.
  • Сокращение размера базового блочного устройства для соответствия размеру файловой системы.

Прежде, чем уменьшить способность файловой системы необходимо уменьшить размер блочного устройства (Который может быть разделом или логическим томом). Так как это не доступно ни для одного расширения* файловые системы, которые Вы не сможете уменьшить, оно от 20 ГБ до 19,5 ГБ для создания 500 МБ подкачивает того.

Даже Ext4 не поддерживает онлайн уменьшение. При попытке сделать это, то Вы получите следующее:

enter image description here

Ваша единственная ставка насколько я знаю, к также:

  • Установите другую версию Ubuntu на том же сервере (На другом разделе), который может затем использоваться для уменьшения корневого раздела исходного Сервера Ubuntu.

  • Установите сервер Ubuntu с нуля с размером, который Вы на самом деле хотите

  • Используйте Сервер Ubuntu Живое Изображение для изменения размеров раздела. Для этого случая необходимо будет добраться до этого экрана:

    enter image description here

    И выберите опцию Resize как показано в изображении выше. Оттуда Вы выберете то, чем будет новый размер, так как отсюда можно размонтировать единицу и уменьшить ее, если Вы хотите.

Поскольку дополнительная справка здесь является gparted ужином файловой системы http://gparted.org/features.php, который дает очень подробный список поддерживаемых и включает, если у них есть полное изменение размеров онлайн. Btrfs среди них.

28
ответ дан 10 December 2018 в 15:36

Ответ зависит от того, можете ли вы размонтировать раздел для сжатия или нет. В вашем случае вы, вероятно, не можете размонтировать раздел. В 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 (см. Man-страницу resize2fs). Поскольку вы используете свою ОС из /, вы не можете размонтировать /. Это означает, что вам необходимо загрузить другую ОС (например, с USB-ключа), чтобы внести изменения.

В вашем случае это удаленный сервер (скорее всего, на KVM), поэтому вы не сможете загрузиться с USB / образа работающей ОС. Могут быть и другие способы изменить разделение у вашего провайдера vServer через графический интерфейс администратора. Я считаю, что это ваша лучшая ставка в настоящее время.

0
ответ дан 10 December 2018 в 15:36

Другие вопросы по тегам:

Похожие вопросы: