2

В продолжение отказа от изменения размера тома virtualbox я использовал следующие команды, чтобы увеличить пространство, доступное на моей виртуальной машине (Ubuntu):

VBoxManage.exe clonehd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\Box1.vmdk" "C:\Users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" --format vdi

VBoxManage.exe modifyhd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" --resize 102400

VBoxManage.exe clonehd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" "C:\Users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\Box2.vmdk" --format vmdk

В процессе не было ошибок. Тем не менее, ни размер файлов clone.vdi, ни Box2.vmdk не был увеличен до 100 ГБ (вероятно, это был мой первый признак того, что что-то не так).

Я заменил Box1.vmdk на Box2.vmdk в качестве хранилища, доступного для виртуальной машины с помощью графического интерфейса VirtualBox.

Когда я активировал и вошел в виртуальную машину через Vagrant, я проверил ее размер, используя

df 

и увидел, что пространство, доступное для ВМ, не увеличилось.

Действительно, размеры, доступные для двух виртуальных машин (до и после "изменения размера"), были одинаковыми:

Box1:

/dev/mapper/vagrant--vg-root  39625324  13644568  23944840  37% /

Box2:

/dev/mapper/vagrant--vg-root  39625324  13644564  23944844  37% /

Как мне перейти к изменению размера виртуальной машины? Если пространство недоступно из-за изменения размера раздела, как мне его изменить?

С помощью

sudo resize2fs /dev/mapper/vagrant--vg-root

как предложено в https://askubuntu.com/questions/390769/how-do-i-resize-partitions-using-command-line-without-using-a-gui-on-a-server

Только урожайность

resize2fs 1.42.13 (17-May-2015)
The filesystem is already 498688 (1k) blocks long.  Nothing to do!

А также

sudo resize2fs /dev/sda1

Урожайность

    resize2fs 1.42.13 (17-May-2015)
The filesystem is already 498688 (1k) blocks long.  Nothing to do!

Без изменений в размере (как видно из использования df)

1 ответ1

3

В вашем ходу мыслей есть несколько неправильных представлений, вероятно, вызванных несколькими уровнями абстракции.

Изменение размера виртуального диска не обязательно приводит к увеличению размера файла на диске.

По умолчанию виртуальные диски редки, т.е. Дисковые файлы фактически не занимают место, которое не занято на виртуальном диске. Вот почему увеличение виртуального диска никак не влияет на размер файла - он просто меняет число, указывающее размер диска.

Изменение размера виртуального диска никак не меняет его содержимое.

И первый уровень абстракции в содержимом диска - это таблица разделов. Команда, которая изменяет размер HD, не заботится об этом. Он рассматривает диск как последовательность байтов и даже не знает, что такое таблица разделов.

После изменения размера диска вы должны найти инструмент, который понимает таблицы разделов и изменяет размеры соответствующих разделов.

resize2fs не изменяет размер разделов.

Есть еще один уровень абстракции - файловая система (FS), которая находится на разделе. Для всех приемлемых приложений его размер должен соответствовать размеру раздела, но он также может быть меньше. Однако, дополнительное пространство будет потрачено впустую, потому что вы не можете хранить файлы вне FS.

Что делает resize2fs , так это регулирует размер файловой системы. При запуске без каких-либо дополнительных аргументов он корректирует размер FS, чтобы использовать все устройство, на котором он находится.

resize2fs тоже не знает, что такое разделы. Как я уже сказал, он работает на устройствах, т.е. последовательности байтов известной длины. Раздел - это устройство, но и жесткий диск. resize2fs не волнует. Работает только с файловыми системами, а не с разделами.

Шаги по увеличению дискового пространства, доступного для виртуальной машины

  1. Расти виртуальный жесткий диск.
  2. Вырасти соответствующие разделы.
  3. Отрегулируйте размеры файловой системы.

Вы сделали # 1 и попытались # 3, но забыли # 2, поэтому # 3 ничего не сделал. # 2 можно сделать с помощью fdisk (для схемы разбиения MBR) или `gdisk (для схемы разбиения GPT). Если вы можете использовать инструменты с графическим интерфейсом, я настоятельно рекомендую использовать GParted, который работает с обеими схемами разбиения и будет выполнять # 2 и # 3 одновременно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .