Virtualbox как расширить динамический диск
Перейти к содержимому

Virtualbox как расширить динамический диск

  • автор:

VirtualBox. Виртуальные диски. Их типы. Расширение виртуального носителя.

VirtualBox. Виртуальные диски. Их типы. Расширение виртуального носителя. главное изображение

Во время работы с VBox так вышло, что однажды мне не хватило места на виртуальном диске. Почитав гайды в интернете, нашёл как увеличить размер диска. Только ничего не получилось. Оказалось, что при создании диска, был выбран фиксированный размер дискового пространства.

Задачи
  1. Разобраться с типами дисков
  2. Расширить виртуальный диск с фиксированным объёмом
  3. Завершить расширение диска в гостевой ОС
  4. Не потерять данные на расширяемом виртуальном диске

1. О типах виртуальных носителей

Выдержка из документации, приведена ниже. Ссылка на доку. Искать часть 5.2. Disk Image Files (VDI, VMDK, VHD, HDD)
Файл образа диска виртуальной машины находится на хостиг-системе и воспринимается гостевой системой, как жёсткий диск определённой геометрии. Когда гостевая ОС читает с диска или записывает на него, VBox перенаправляет запрос в файл образа.

Как и физический диск, виртуальный носитель имеет размер и ёмкость, которые необходимо указать при создании диска. Только в отличие от физического носителя его можно расширять.

VBox поддерживает типы виртуальных носителей:

  • VDI. Собственный тип, формат контейнера жёсткого диска от VBox
  • VMDK. Популярный открытый формат контейнера, используется многими другими продуктами виртуализации
  • VHD. Тип виртуального носителя, который использует Microsoft
  • HDD. Также поддерживаются файлы изображений Parallels версии 2

Варианты создания диска внезависимости от выбранного типа виртуального носителя:

  • Фиксированный размер. Если создаём образ с фиксированным размером, то на хостинг-системе будет создан файл образа примерно такого же размера, как и емкость виртуального диска. Таким образом, для диска размером 10 ГБ у нас будет файл размером 10 ГБ
    • Макимальный объём диска, расширить нельзя.
    • Максимальный объём диска можно увеличить.

    2. Решение проблемы

    Расширение дискового пространства. Тип VDI, VHD, VMDK. Вариант — динамически расширяемый.
    1. Запустить VirtualBox.
    2. Открыть менеджер виртуальных дисков (сочетанием клавиш Ctrl + D)
    3. Во вкладке Жесткий диск, выбрать из списка тот, который расширяем
    4. Ниже, во вкладке Атрибуты, увеличиваем объём диска с помощью бегунка
    5. Так же можно увеличить объём диска, вручную прописав его размер в окошке справа от бегунка
    6. Подтверждаем
    7. После короткого ожидания, размер диска увеличен
    8. Далее необходимо запустить гостевую ОС и расширить диск уже там
    Расширение дискового пространства. Тип VDI, VHD, VMDK. Вариант — фиксированный.
    1. Открыть менеджер виртуальных носителей
    2. Выбрать диск
    3. Сверху, кнопки с вариантами действий над диском
    4. «Копировать»
    5. В открывшемся окне необходимо открыть «Экспертный режим»
    6. В правой части окна «Хранение на жёстком диске»/»Storage on physical hard disk», нужно выбрать Динамически расширяемый вариант создания диска
    7. Подтвердить копирование
    8. Займет какое-то время
    9. В менеджере виртуальных носителей появится копия диска, только уже тип диска будет динамический.
    10. Выбрать диск и расширить его
    11. После расширения, копию расширенного диска необходимо примонтировать в виртуальной машине, вместо старого

    3. Расширение дискового пространства в гостевой системе

    Гостевая ОС, Windows

    • Запустить гостевую ОС
    • Открыть управление дисками.
      • для Win7 — правым кликом по иконке Мой компьютер — Управление — Управление дисками
      • для Win10 — правым кликом по иконке Windows/Пуск — Управление дисками

      Гостевая ОС, думаю любой дистрибутив GNU/Linux
      Я расширял в Debian-Arch подобных

      • Загрузиться в live режиме
      • Запустить GParted, если его нет, то:
        sudo apt install gparted
        sudo pacman -S gparted
      • Неиспользуемый раздел будет как-бы вне основного блока размеченного пространства
      • Для расширения необходимо
        • Выбрать раздел, у меня /dev/sda2
        • Правым кликом — Расширить..
        • Расширяем, подтверждаем. Сверху, где графическое отображение объёма диска, можно расширить раздел курсором
        • Теперь появилась возможность расширить основной раздел, у меня /dev/sda5
        • Расширяем так же, как и /dev/sda2
        • Затем подтверждаем все действия, зелёная галочка сверху.

        Итоги

        1. Разобрались с типами дисков и системой хранения
        2. Расширен диск фиксированного объёма, путём его копирования и преобразования в динамически расширяемый
        3. Расширено дисковое пространство в гостевой системе
        4. Сохранились данные, которые уже были на виртуальном носителе

        Бесплатные курсы по программированию в Хекслете

        • Освойте азы современных языков программирования
        • Изучите работу с Git и командной строкой
        • Выберите себе профессию или улучшите навыки

        Увеличение размера диска с LVM на VirtualBox

        Приветствую, меня зовут Иван, я системный администратор. Решил попробовать писать такие вот заметки на задачи, которые делаю редко, чтобы потом вспомнить, если понадобится. Надеюсь и ещё кому-то пригодится.

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

        Задача следующая. Есть виртуалка, к ней подключен виртуальный диск, на нём система Debian 10, разметка сделана автоматически с LVM, отдельные разделы /var , /tmp , /home и т.д. Требуется расширить существующий раздел /root не добавляя дополнительный том в LVM

        (И да, если вам удобнее — есть возможность расширять разделы LVM добавляя дополнительные физически тома в группу томов, я такой способ сейчас не описываю, у меня немного другая задача)

        root@ElasticLog:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home ElasticLog-vg -wi-ao---- 

        Пункт 1. Увеличение размера диска средствами VM

        Этот пункт зависит от используемой вами VM и типа виртуального диска, так что я опишу только свой пример.

        Для начала отключаем виртуалку и увеличиваем размер виртуального диска. У меня она на VirtualBox, диск динамический .vhd. Так же, насколько помню, без проблем изменяется динамический .vdi, с другими не подскажу.

        Для примера увеличим с 200 до 250 Гб.

        Пункт 2. Увеличение раздела средствами системы

        После этого мы видим, что в системе "физический" том sda увеличился

        Наш раздел LVM - sda5, но есть нюансы, о них ниже

        root@ElasticLog:~# lsblk -l NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 250G 0 disk sda1 8:1 0 487M 0 part /boot sda2 8:2 0 1K 0 part sda5 8:5 0 185,8G 0 part sr0 11:0 1 1024M 0 rom ElasticLog--vg-root 254:0 0 4G 0 lvm / ElasticLog--vg-swap_1 254:1 0 976M 0 lvm [SWAP] ElasticLog--vg-var 254:2 0 15G 0 lvm /var ElasticLog--vg-tmp 254:3 0 364M 0 lvm /tmp ElasticLog--vg-home 254:4 0 165,5G 0 lvm /home

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

        Gparted тоже весьма удобно, но только если у вас есть графическая оболочка, либо если вы загрузились с соответствующего LiveCD. (описывать изменение раздела в gparted я не буду, там всё просто, разберётесь.)

        Если у вас таблица разделов MBR - разметка будет похожа на мою, и раздел lvm sda5 будет находиться внутри расширенного раздела sda2, поэтому чтобы нам увеличить sda5 нужно будет сначала увеличить sda2

        Ести таблица у вас GPT - расширенного раздела скорее всего не будет, так что просто увеличиваем раздел с флагом LVM.

        Команда p показывает нам текущий список разделов.

        Размер меняется командой

        resizepart [номер раздела]

        Указать можно как итоговый желаемый раздел диска (250gb например) так и размер в процентах (100%) - то есть использовать всё свободное пространство. Для примера ниже я показал оба варианта.

        Выходим из parted командой q

        root@ElasticLog:~# parted /dev/sda GNU Parted 3.2 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) p Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 268GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 512MB 511MB primary ext2 boot 2 513MB 200GB 199GB extended 5 513MB 200GB 199GB logical lvm (parted) resizepart 2 End? [200GB]? 250gb (parted) resizepart 5 End? [200GB]? 100% (parted) q Information: You may need to update /etc/fstab.

        Пункт 3. Увеличение LVM разделов

        LVM ещё не знает, что размер её "физического" раздела увеличился. Подсказать можно командой:

        pvresize [путь к устройству]

        После этого можно посмотреть через утилиту pvs , что появилось свободное место в колонке PFree (там было ноль)

        root@ElasticLog:~# pvresize /dev/sda5 Physical volume "/dev/sda5" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized root@ElasticLog:~# pvs PV VG Fmt Attr PSize PFree /dev/sda5 ElasticLog-vg lvm2 a-- 232,35g 

        Путь к разделу состоит из /dev/[имя группы разделов]/[имя раздела]. Где LV - имя раздела, VG - имя группы разделов. Посмотреть можно командой lvs

        Затем увеличиваем размер интересующего нас логического раздела командой.

        lvresize --resizefs --size 15g /dev/ElasticLog-vg/root

        можно изменять размер не обязательно на конкретное значение, а допустим +15g или -15g

        root@ElasticLog:~# lvresize --resizefs --size 15g /dev/ElasticLog-vg/root Size of logical volume ElasticLog-vg/root changed from 4,03 GiB (1032 extents) to 15,00 GiB (3840 extents). Logical volume ElasticLog-vg/root successfully resized. resize2fs 1.44.5 (15-Dec-2018) Filesystem at /dev/mapper/ElasticLog--vg-root is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/mapper/ElasticLog--vg-root is now 3932160 (4k) blocks long.

        Через lvs мы видим тут, что раздел root увеличился до 15 ГБ.

        root@ElasticLog:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home ElasticLog-vg -wi-ao---- 

        В целом на этом всё. Если я что-то упустил, либо вы знаете способы лучше - с радостью поправлю статью.

        Как увеличить размер виртуального диска VirtualBox

        Виртуальные машины достаточно часто используются в наше время для тестирования различных операционных систем и выполнения других задач. Одна из самых популярных свободных программ для запуска виртуальных машин - VirtualBox. Когда вы создаете новую машину, вам необходимо создать для нее жесткий диск и указать его размер. Но вы не всегда можете угадать сколько места будет занимать та или иная машина.

        Есть, конечно, динамические виртуальные диски, которые занимают место только при записи в них файлов, но это неполное решение проблемы, потому что нельзя все спланировать наперед. В этой статье мы рассмотрим как увеличить размер виртуального диска VirtualBox.

        Как увеличить размер виртуального диска VirtualBox

        В VirtualBox можно использовать три основных формата дисков - это VDI, VHD и VDMK. Я не буду здесь рассматривать чем они отличаются. Но важно то, что изменить размер можно только для VDI и VHD. Для дисков VDMK есть обходной путь.

        Для увеличения размера диска нужно использовать команду в терминале или в командной строке, в графическом интерфейсе такой функции, к сожалению, нет. Также вам нужно знать полный путь к вашему диску. Допустим, наш диск находится по адресу ~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi в Linux. Давайте посмотрим информацию о нем, чтобы знать текущий размер:

        VBoxManage showhdinfo ~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi

        Здесь размер отмечен в поле capacity и в данном примере он составляет 22075 мегабайта. Важно знать размер в мегабайтах, так как именно его мы будем использовать для увеличения диска. Чтобы увеличить размер виртуального диска virtualbox используется та же команда, только с параметром modifyhd:

        VBoxManage modifyhd ~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi --resize 32075

        Здесь мы увеличили размер диска на 10 гигабайт. Важно чтобы размер, который вы указываете в параметре resize был не меньше текущего размера диска, иначе данные операционной системы могут быть повреждены и вся суть этой операции теряет смысл.

        Если у вашей машины есть снимки состояния, то их размер тоже нужно изменить, иначе ничего не заработает. Для этого можно использовать такой цикл:

        for x in ~/VirtualBox\ VMs/Ubuntu17.04/Snapshots/*.vdi ; do VBoxManage modifyhd $x --resize 32075 ; done

        Помните, что размер и имена дисков должны совпадать во всех командах для одной машины. Для формата VDMK увеличение размера диска VirtualBox не поддерживается, но зато можно его конвертировать в vdi, увеличить, как описано выше и конвертировать обратно:

        VBoxManage clonehd "~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdmk" "~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi" --format vdi
        VBoxManage modifyhd "~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi " --resize 32075
        VBoxManage clonehd "~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi " "~/VirtualBox\ VMs/Ubuntu17.04/Ubuntu1610.vdi_resized.vmdk" --format vmdk

        Увеличение диска VirtualBox в Windows

        В ОС Windows команда будет выглядеть немного по-другому, а путь к файлу будет начинаться с диска C:. Чтобы выполнить команду VBoxManage сначала необходимо перейти в папку с исполняемыми файлами VirtualBox:

        cd “C:\Program Files\Oracle\VirtualBox”

        Затем, запустите команду чтобы увеличить размер диска virtualbox, как было описано раньше, путь к файлу замените на свой:

        VBoxManage showhdinfoC:\Users\Admin\VirtualBox VMs\Windows 7\Windows 7.vdi

        Затем изменяем размер этого диска, помните, что размер нужно указать в мегабайтах, и он должен быть больше чем текущий.

        VBoxManage modifyhd "C:\Users\Admin\VirtualBox VMs\Windows 7\Windows 7.vdi" --resize 32075

        Увеличение файловой системы

        То, что вы увеличили доступный размер диска еще ничего не меняет, как ничего не поменяет и то, что вы добавите новый жесткий диск к системе. Дальше вам нужно загрузится в вашу виртуальную машину расширить диск virtualbox и увеличить пространство, занимаемое файловой системой, для этого можно использовать утилиту Gparted. В дистрибутивах Linux она поставляется по умолчанию, запустите утилиту:

        Здесь вы увидите отмеченное серым доступное пространство в конце диска. Теперь вы можете изменить размер для последнего раздела нажав на нем правой кнопкой и вызвав контекстное меню, затем выбрав "изменить размер/переместить":

        Когда завершите, не забудьте нажать "Apply" чтобы применить все операции.

        Читайте более подробно о том, как пользоваться Gparted в отдельной статье. Если у вас в качестве гостевой системы установлена Windows, вы можете использовать стандартную утилиту управления дисками или скачать ISO образ Gparted.

        Выводы

        В этой статье мы рассмотрели как увеличить размер виртуального диска virtualbox с помощью командной строки и как предоставить полученное пространство вашей гостевой системе. Если у вас остались вопросы, спрашивайте в комментариях!

        Форум русскоязычного сообщества Ubuntu

        Страница сгенерирована за 0.047 секунд. Запросов: 25.

        • Сайт
        • Об Ubuntu
        • Скачать Ubuntu
        • Семейство Ubuntu
        • Новости
        • Форум
        • Помощь
        • Правила
        • Документация
        • Пользовательская документация
        • Официальная документация
        • Семейство Ubuntu
        • Материалы для загрузки
        • Совместимость с оборудованием
        • RSS лента
        • Сообщество
        • Наши проекты
        • Местные сообщества
        • Перевод Ubuntu
        • Тестирование
        • RSS лента

        © 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
        © 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *