VMware Workstation: как уменьшить.максимальный размер vmdk

У меня есть файл на диске 150 ГБ (.vmdk, без предварительного выделения), где хранится моя виртуальная машина.

файл в настоящее время составляет 20 ГБ, но он растет с каждым днем, хотя я не храню ничего нового в гостевой файловой системе.

Я искал в течение нескольких часов, для того, чтобы уменьшить максимальный размер этого диска, чтобы он никогда не доходил до 150 ГБ (я хотел бы установить ограничение в 30 ГБ и посмотреть, что произойдет, когда виртуальная машина достигнет этого размера).

Что Я пробовал:

  • преобразование образа диска с помощью VMware Converter → это не работает, инструмент позволяет только создать полную копию или "связанный клон".
  • создание новой пустой виртуальной машины нужного размера для копирования 20 ГБ данных на новую .vmdk → я не могу найти способ выполнить копирование или даже подключить новый диск к моей существующей виртуальной машине (так что я выполняю копирование с помощью гостевой ОС).
  • глядя на .файл vmx для проверки максимальный размер не был установлен в простом тексте (это не так).

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

есть ли решение вообще ?

16
задан Hennes
10.02.2023 20:11 Количество просмотров материала 2877
Распечатать страницу

7 ответов

обычная процедура уменьшения размера .vmdk диск является:

  1. дефрагментировать диск через гостевую систему, выбрав режим дефрагментации, который объединяет пустое место в конце диска. Для гостя Windows необходимо очистить корзину и выключите спящий режим и пейджинг, возвращая их после завершения дефрагментации.

  2. обнулить все неиспользуемое пространство на диске.

    Для Windows используйте программа :sdelete -c.

    Для Linux : dd if=/dev/zero of=/mytempfile && rm -f /mytempfile.

  3. сжать диск (Что может занять довольно много времени).

    VMware Workstation: меню VM / управление / очистка дисков.

    Или используйте:vmware-vdiskmanager.exe -k [VMDK PATH].

    для ESX : vmkfstools --punchzero [VMDK PATH].

преобразование диска из growable в preallocated может остановить его рост. Это можно сделать с помощью vmware-vdiskmanager с помощью -t параметр, значения которого are:

0 : single growable virtual disk
1 : growable virtual disk split in 2Gb files
2 : single preallocated virtual disk
3 : preallocated virtual disk split in 2Gb files

следующая команда преобразует .файл VMDK с расширяемый в предопределенные :

vmware-vdiskmanager -r current_disk_name.vmdk -t 3 new_disk_name.vmdk

если вы хотите изменить размер диска, при этом диск по-прежнему в формате growable (примеры здесь).

для получения дополнительной информации см. Virtual Disk Manager руководство пользователя.

20
отвечен harrymc 2023-02-12 03:59

файл в настоящее время 20 ГБ, но он растет каждый день, хотя Я не храню ничего нового в гостевой файловой системы.

потому что ОС и ее прикладные программы временно используют много места на диске для временных файлов, файлов подкачки, файла гибернации и файлов конфигурации. Как только они удаляются в зависимости от политики ОС, новые сектора на диске используются в следующий раз. ВМ выделять память под виртуальный диск с реального диска при сектор используется в виртуальном диске. Поскольку сектор на виртуальном диске всегда не используется гостевой ОС, виртуальная машина считает, что это использование диска и дает пространство с реального диска, и это приведет к росту образа виртуального диска.

заголовок вашего вопроса с меньшей вероятностью будет решен, так как использование такого инструмента без проверки изображения может привести к полной катастрофе. Но вы можете предотвратить рост изображения за 30 ГБ. Есть много способов для достижения цели.

A. используйте только 30GB разбейте на разделы и оставьте свободное пространство. Если вы уже разделили больше места, то вам нужно сжать/удалить его, создать новый раздел, а затем сбросить его с нулями и пробить его, как описано в @harrymc . По мере того как космос в unpartitioned области никогда не используемый фактически диск Никогда не будет расти за 30GB.

B. создайте снимок и восстановите его после использования. После создания моментального снимка ВМ сохраняет данные в новый файл образа. При восстановлении без сохранения или создания новых снимков, все измененные данные удаляются и освобождается место.

C. создайте новый виртуальный диск объемом не более 30 ГБ, добавьте его в качестве нового диска в текущую виртуальную машину, переместите все данные на новый виртуальный диск с помощью инструмента резервного копирования. Вы можете использовать живой Linux для клонирования.

рекомендуемый параметр

6
отвечен totti 2023-02-12 06:16

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

дефрагментация в Windows

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

сжатие виртуального диска

для сжатия виртуального диска:

Откройте Панель управления VMware Tools / Toolbox:

В Windows:

дважды щелкните значок VMware Tools на панели задач или выберите Пуск >Панель управления > VMware Tools.

В Linux:

откройте терминал и выполните следующую команду:

vmware-toolbox

Примечание.: В Workstation 9.X (Windows) и выше, сжатие выполняется автоматически при очистке диска. Поэтому этот вариант удаляется из панели инструментов VMware. Перейдите к VM > управление > очистка Диски. Это не доступно в версии VMware Workstation для Linux 9.х и позже.

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

с База Знаний VMWare

3
отвечен Jalal Mostafa 2023-02-12 08:33

Почему бы просто не установить размер диска, участвующего в 30GB от 150GB.

вы должны установить сумму всех разделов меньше 30 ГБ. Вам придется уменьшить размеры разделов вниз, как вы идете. На этом сайте есть много документации о том, как уменьшить разделы, поэтому я не буду повторять это снова.

Почему вы создали 150 ГБ (тонкий раздел), если у вас не было места для его поддержки при максимальном размере? Кажется, что это просто нарываться на неприятности.

2
отвечен mdpc 2023-02-12 10:50

есть окольный путь, используя VMware Converter чтобы создать новую виртуальную машину и уменьшить размер VMDK, преобразуйте исходный VMDK в новый, меньший VMDK.

Shrink VMDK

подробные инструкции здесь.

обратите внимание, что любые изменения размера VMDK также требуют соответствующего обновить таблицу разделов.

2
отвечен hanxue 2023-02-12 13:07

ответ @harrym довольно хорош, но на самом деле он не отвечает на вопрос. ОП хочет уменьшить максимальный размер. Проблема гипервизор не знаю сколько по размеру (ака максимальный размер) действительно используемого ОС. Уплотнение (для VMware-vdiskmakager -к) относится к расширяемый файл VMDK. Он ничего не делает на предварительно один.

Так шаги для сжатия диска:

  1. изменение размера раздела на диске С помощью ОС, или через подходящий live CD
  2. измените размер устройства vmdk, тщательно выбирая границу, чтобы не вырезать полезное пространство раздела. Вы всегда можете оставить немного больше места в imnage, чем это действительно необходимо.

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

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

WARNING: Не забудьте сделать резервную копию важных данных перед любой операцией !!

  1. найдите способ изменить размер гостевого раздела и оставить незанятое пространство в конце устройства. Два примера:

    из гостевой ОС: windows 7

    1. вы можете использовать возможность изменения размера в интернете. Рекомендуется сначала дефрагментировать диск из операционной системы quest.
    2. запустить diskmgmt.МСЦ, Выберите раздел(том) на диске, который вы хотите изменить, щелкните правой кнопкой мыши->Сжать том. В появившемся диалоговом окне уменьшите размер в соответствии с вашими требованиями. Обратите внимание, что поскольку раздел используется (если это системный диск или сильно фрагментирован), вы не сможете восстановить большую часть свободного пространства. Предоставление дополнительного бесплатного пространство.
    3. теперь мы хотим знать разделы, заканчивающиеся сектора диска (или байт). Предполагая, что это единственный раздел на устройстве, мы берем размер тома, как показано на моем компьютере->выберите диск->щелкните правой кнопкой мыши->Свойства->емкость: обратите внимание на число в байтах. (например, в моем примере 107371032576 для 99,9 ГБ). Добавьте несколько сотен мегабайт для безопасности (+204800) (например, 107371237376). Чтобы убедиться, что нам не нужно ничего добавлять, мы можем использовать утилиту командной строки diskpart, чтобы найти смещение раздела от начала устройства. запустите diskpart, затем: list disk, выберите disk id, часть списка, выберите часть id, деталь. Пример:

    DISKPART> деталь часть

    Раздел 1

    смещение в байтах: 1048576

    убедитесь, что вы добавили хотя бы это число к размеру диска. Теперь нам нужно преобразовать байты в секторах деления на 512 и округление вверх (потолок.) Е. Г. 209709448. Примечание это число на Шаге 3.

    через live cd: SystemResqueCD

    1. в качестве альтернативы вы можете использовать диск resque, (SystemResqueCD мое предложение), скачать загрузочный ISO, смонтировать его в качестве виртуального устройства cd rom на вас VM, загрузки с компакт-диска (нажав клавишу Esc на экране загрузки VMWare, вам может понадобиться попробовать несколько раз, как это появляется очень скоро). При достижении командной строки типа: startx, это, мы надеемся, принесет вы к графическому интерфейсу.
    2. на рабочем столе systemresque запустите gparted (например, с терминала). Найдите раздел, размер которого будет изменен (он должен быть полностью размонтирован, если есть сомнения, сделайте scandisk из гостевой операционной системы). Сделайте изменение размера, тщательно планируя свои потребности в пространстве.
    3. снова нам нужно найти конечное смещение в секторах (или байтах) раздела. Откройте терминал и напишите parted [устройства], затем единица s, печать. Например:

номер начало конец размер тип файловая система флаги

1 2048s 113455103s 113453056s основной загрузки ntfs

обратите внимание на конечный сектор и добавьте 1. Е. Г. 113455104. Примечание это число на Шаге 3.

  1. как хак работает на одном файле предварительно распределенных (тип 2) vmdks (не пробовали на нескольких типов файлов) мы сначала преобразовать растущие чтобы распределить. Нам временно понадобится раздел с физическим космос как максимальный размер прибора. (например, 150 ГБ).

    vmware-vdiskmanager.exe-r sourcevmdk - t 2 destvmdk

  2. теперь сложная часть, для предварительно распределенного диска должно быть 2 vmdks

    диск.файл VMDK диск-плоский.vmdk

    первый из которых только КБ длиной, а последний держит данные расширяется. Откройте первый (диск.vmdk)пока VMWare workstation выключена, с текстовым редактором (Notepad++ - мое предложение). Найдите строку

    RW 113455104 FLAT " Windows 7_x64-fl-flat.vmdk " 0

    Да, вы попали в точку, второе поле-количество секторов выделенных для устройства. В качестве проверки умножьте на 512 и найдите размер в байтах, затем разделите на 1073741824 (1024**3), чтобы найти размер в ГБ. Это должен быть размер предыдущего устройства.

    теперь замените это число на отмеченное число из первого шага и сохраните файл. предупреждение: ошибка, и вы можете обрезать фактические данные, используемые в файловой системе. (Но мы изменили размер fs в начале устройства и сделали правильные и безопасные вычисления правильно? )

  3. до сих пор данные не были затронуты. Сделайте этот последний шаг, чтобы фактически обрезать расширения. Мы будем использовать функциональность переименования vmware-vdiskmanager для воссоздания vmdk с его размером теперь обрезается.

    vmware-vdiskmanager.exe-n destvmdk sourcevmdk

1
отвечен basos 2023-02-12 15:24

для гостевой ОС vmware linux выполните:

sudo vmware-toolbox-cmd disk shrinkonly

0
отвечен Tom Hale 2023-02-12 17:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх