Как уменьшить размер диска VMware


15

Мой образ Ubuntu VMware диск увеличился до 5 ГБ физического размера файла. Это динамически растущий диск с максимальной емкостью 8 ГБ. Я убрал некоторые вещи в дистрибутиве Linux, и теперь он занимает 3 ГБ. Очевидно, что физический размер файла не уменьшился автоматически. Есть ли способ (если это возможно бесплатно) уменьшить этот диск до ~ 3 ГБ?

Мне нужно это, чтобы соответствовать образу на DVD.

Ответы:


21

Есть три шага:

  1. Дефрагментация (не нужно ничего размонтировать / перемонтировать)

    sudo e4defrag /

    Игнорировать любые ошибки. Некоторые файлы, такие как символические ссылки и файлы устройств, не могут быть дефрагментированы.

  2. Обнулите все неиспользуемое пространство, чтобы VMware знала, что оно действительно не используется:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  3. Запустите операцию сжатия:

    sudo vmware-toolbox-cmd disk shrinkonly


Это правильный ответ для VMWare Workstation. Спасибо мужчина, мне очень помогли!
Clonkex

Верный. Прекрасно работает на VMWare Workstation 14, Centos 7 Guest
odiszapc

1
будьте осторожны, если вы запускаете это с любыми подключенными внешними томами, такими как S3 - команда нулевого заполнения попытается создать wipefile размером 256 ТБ в вашем хранилище S3 ...
paj

Работал у меня для Windows 10 host и Ubuntu 16 guest. Сначала я думал, что шаг 3 должен быть запущен на хосте, но я ошибся. После всех шагов я также запускаю проверку файловой системы, как описано здесь: askubuntu.com/a/953750/590877
Alex Che

1
+1, однако я думаю, что использование zerofree для шага 2 будет намного быстрее и чище: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Этьен

15

Я нашел решение - вы должны сжать свой жесткий диск:

Виртуальная машина - Настройки - Общие - Очистить виртуальную машину


Вау. Наконец я нашел этот ответ. Но ... почему сжатие виртуального диска на самом деле не освобождает свободное место?
Wizard79

8
Это нужно сделать из гостевой ОС Ubuntu (при условии, что у вас установлен VMware Tools): «vmware-toolbox-cmd disk shrink /», которая должна выполнить эту работу.
DH4

Это не относится к ESXi. Для этого смотрите мой ответ ниже.
Коллин

3

Откройте VMware Toolbox в гостевой системе (от имени пользователя root) и уменьшите размер диска. (Документация)


Если у вас нет VMware Tools, вы можете сжать диск вручную в два этапа. Во-первых, очистите свободное место на виртуальном диске с помощью такого инструмента, как zerofree . Zerofree доступен в Ubuntu , но поскольку он требует, чтобы файловая система гостевой ОС была смонтирована только для чтения, вы можете захотеть запустить ее с живого CD. Parted Magic, как сообщается, включает в себя нулевое значение.

После обнуления свободного места откройте «Настройки виртуальной машины» и сожмите виртуальный диск.


3
Пользовательского интерфейса vmware toolbox больше нет, но вы все равно можете использовать: «vmware-toolbox-cmd disk shrink /», который должен выполнить эту работу.
DH4

3

использование

sudo vmware-toolbox-cmd disk shrinkonly

из командной строки в гостевой системе Ubuntu.

(Проверено на гостевой системе Ubuntu 14.04 LTS + хост Windows 10 + рабочая станция VMWare 12.1.1)


1

Изменение размера жесткого диска VMWare :

Расширение динамического виртуального жесткого диска в VMWare легко и больше не требует инструмента командной строки, vmware-vdiskmanager.exeрасположенного по умолчанию в C:\Program Files\VMware\VMware Workstation\.

Для изменения размера используйте следующую команду (откройте командную строку, нажав WIN + R и введите cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Процедура :

Следующие шаги:

  • Скачать здесь
  • устанавливать
  • открыто
  • Выберите раздел, нажмите «Изменить размер / переместить», перетащите маркер на полную ширину.
  • Нажмите Применить
  • Согласен на перезагрузку
  • Во время запуска не нажимайте никакие клавиши
  • Пусть загрузочный модуль выполнит свою задачу
  • Проверьте, увеличился ли размер системного раздела Windows.

Для визуального изложения шагов и дополнительной информации, смотрите здесь .


0

Эти шаги отлично сработали для меня:

1) Ноль заполнить неиспользуемое пространство

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2) Сжать диск с помощью vmware toolbox

sudo vmware-toolbox-cmd disk shrink /

Протестировано на Ubuntu 16.04, VMware Workstation 12.1.0 Player, Windows 7 Host


0

Усадка дисков возможна на ESXi.

  1. Найдите большой файл и удалите их.

    find / -type f -size + 50M

  2. Дефрагментация (не нужно ничего размонтировать / перемонтировать). Игнорировать любые ошибки. Некоторые файлы, такие как символические ссылки и файлы устройств, не могут быть дефрагментированы.

    sudo e4defrag /

  3. Обнулите все неиспользуемое пространство, чтобы VMware знала, что оно действительно не используется:

    dd if = / dev / zero of = wipefile bs = 1M; синхронизации; рм wipefile

  4. Запустите операцию сжатия: если 4 не удается, перейдите к 5.

    диск sudo vmware-toolbox-cmd сокращается

  5. Перезагрузите систему Linux с опцией try и отредактируйте таблицу разделов с помощью gparted. Сократите корневую файловую систему и удалите и переместите раздел подкачки рядом с корневым разделом.

  6. SSH к ESXi и выполните эту команду:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Нам нужно отредактировать файл * .vmdk. После букв RW, определяет размер виртуального диска VMware (VMDK)

    * 40 ГБ = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Перенесите его в другое хранилище данных, чтобы отразить новый размер.


(1) Вопрос не в том, как снизить использование файловой системы; это говорит о том, что ОП уже сделал это. Так что твоя findкоманда не очень актуальна. (2) Что делает vmkfstools -K? (3) вручную редактировать файл? В самом деле? (4) Я не понимаю ваших инструкций о том, какие изменения необходимо внести в файл. (5) Что вы говорите о переносе в другое хранилище данных? (0) Большая часть того, что вы говорите, уже рассмотрена. ……………………………………………………… Пожалуйста, не отвечайте в комментариях; отредактируйте  свой ответ, чтобы сделать его более понятным и полным.
Скотт

Что ж, я парень из VMware (я думаю, что любой, кто пытается что-либо из этого, тоже должен быть), поэтому этот ответ не только ЕДИНСТВЕННЫЙ, который даже применим к ESXi (поскольку ESXi НЕ поддерживает сжатых гостей Linux через vmtools), но в конечном итоге он стал идеальным смысл для меня. С учетом сказанного, шаг 7 не только не нужен, но и неверен. Поскольку сжатие не меняет фактический размер VOLUME, вы просто останавливаетесь после шага 6. Шаг 8 (миграция хранилища) используется только тогда, когда вы хотите сжать диск БЕЗ запуска vmkfstools, который принудительно позаботится об этом, поэтому для этого решения также требуется шаг 5А-ВЫКЛЮЧИТЬ Гость.
Коллин

Смотрите мой ответ выше. Командный ключ на основе vmtools, указанный в шаге 5, также является неверным, поскольку он никогда не поддерживал (или даже не работал) в ЛЮБОМ сценарии на основе хоста ESXi.
Коллин

0

Утончающиеся (сокращающиеся) диски VMDK в гостях ESXi / vSphere Linux

Примечание. «Сокращение» часто используется взаимозаменяемо для обозначения процесса уменьшения размера файла тонкого диска. VMware использует термин «сжатие» для обозначения уменьшения базового размера диска, доступного для гостя, и «утончения», поскольку процесс чаще всего использует повторный захват неиспользуемого пространства без изменения базового доступного размера.

Поскольку ESXi не поддерживает сжатие на основе vmtools для гостей Linux, необходимо выполнить следующие шаги. См. Ссылку ниже для получения дополнительной информации.

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

  2. Дефрагментируйте том (ы) на целевом VMDK и игнорируйте любые ошибки как символические ссылки / файлы устройств / и т.д. нельзя дефрагментировать.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Обнулить все неиспользуемые места:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Выключить и выключить гостя

  2. SSH к хосту ESXi и выполните эти команды:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. Власть на гостя

Источник

https://kb.vmware.com/s/article/1002019

Удаление файлов в большинстве файловых систем не приведет к их полному удалению; будут изменены только файловые таблицы. Полезно использовать бесплатные утилиты безопасного удаления файлов, такие как Eraser или SDelete, чтобы обнулить пространство, чтобы «обнулить» свободное пространство на томе, эффективно освобождая свободное пространство для данных. Именно тогда диск можно правильно утончать. Затем вы можете использовать команду vmkfstools -K (ESXi / ESX 4.1 и более поздние версии) для завершения восстановления блока или использовать Storage vMotion для миграции виртуальной машины в хранилище данных с другим размером блока VMFS.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.