Як зменшити розмір диска VMware


15

Мій диск VMware з зображенням Ubuntu виріс до розміру фізичного файлу 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. Спасибі людино, мені дуже допомогли!
Клонкекс

Правильно. Відмінно працює на VMWare Workstation 14, Centos 7 Гість
odiszapc

1
будьте обережні, якщо ви запускаєте це з будь-якими встановленими зовнішніми томами, такими як S3 - команда zero fill спробує створити wipefile 256TB у вашому відрі S3 ...
paj

Для мене працювали хостинг Windows 10 та гість Ubuntu 16. Спочатку я думав, що крок 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 диск зменшиться /", який повинен виконати цю роботу.
DH4

Це не стосується ESXi. Для цього дивіться мою відповідь нижче.
Collin

3

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


Якщо у вас немає інструментів VMware, ви можете стиснути диск вручну в два етапи. Спочатку очистіть вільний простір на віртуальному диску за допомогою такого інструменту, як zerofree . Zerofree доступний в Ubuntu , але оскільки він вимагає, щоб гостьова файлова система монтувалася лише для читання, ви можете запустити її з живого компакт-диска. Як повідомляється, "Розділена магія" включає нульове вільне.

Відмінивши вільний простір, відкрийте Налаштування віртуальної машини та ущільнити віртуальний диск.


3
Користувальницький інтерфейс програмного забезпечення vmware більше не існує, але ви все одно можете використовувати: "vmware-toolbox-cmd диск зменшення /", який повинен виконати цю роботу.
DH4

3

Використовуйте

sudo vmware-toolbox-cmd disk shrinkonly

з командного рядка вашого гостя Ubuntu.

(Тестовано на гостях Ubuntu 14.04 LTS + Windows 10 Host + VMWare Workstation 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.

Візуальне завершення кроків та додаткову інформацію дивіться тут .


1

Ці кроки для мене прекрасно працювали:

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

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

2) Стискайте диск за допомогою інструментарію vmware

sudo vmware-toolbox-cmd disk shrink /

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


0

У ESXi можливе скорочення дисків.

  1. Знайдіть великий файл і видаліть їх.

    знайти / -тип f -розмір + 50М

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

    sudo e4defrag /

  3. Нуль заповніть весь невикористаний простір, щоб VMware знав, що він справді не використовується:

    dd, якщо = / dev / zero of = wipefile bs = 1M; синхронізація; rm wipefile

  4. Запустіть операцію зменшення: якщо 4 не вдалося, перейдіть до 5.

    sudo vmware-toolbox-cmd диск скорочується

  5. Перезавантажте систему Linux з параметром спробу і відредагуйте таблицю розділів з gparted. Стисніть кореневу файлову систему та видаліть і перемістіть розділ swap поблизу кореневого розділу.

  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 не тільки зайвий, він просто невірний. Оскільки зменшення не змінює фактичний розмір гучності, ви просто зупиняєтесь після кроку 6. Крок 8 (міграція сховища) використовується лише тоді, коли ви хочете зменшити диск БЕЗ запущених vmkfstools, який примусово береться за нього, тому для цього рішення також потрібен крок 5a-SHUT DOWN гість.
Collin

Дивіться мою відповідь вище. CMD на основі vmtools, перелічений на кроці 5, також просто неправильний, оскільки він ніколи не підтримувався (або навіть працює) у будь-якому сценарії на основі хоста ESXi.
Collin

0

Розрідження (скорочення) дисків VMDK для ESXi / vSphere Linux Guest

Примітка: "Зменшення" часто використовується як взаємозамінне для позначення процесу зменшення розміру файлу диска тонкого типу. 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.