Cara mengurangi ukuran disk VMware

15

Disk image VMware Ubuntu saya telah berkembang menjadi ukuran file fisik 5GB. Ini adalah disk yang tumbuh secara dinamis dengan kapasitas maksimum 8GB. Saya membersihkan beberapa hal di distro Linux dan sekarang di dalamnya menempati 3GB. Jelas ukuran file fisik tidak menyusut kembali secara otomatis. Apakah ada cara (jika mungkin gratis) untuk mengecilkan disk ini kembali ke ~ 3GB?

Saya perlu ini agar sesuai dengan gambar pada DVD.

Marcin Rybacki
sumber

Jawaban:

21

Ada tiga langkah:

  1. Defragment (tidak perlu melepas / me-remount apapun)

    sudo e4defrag /

    Abaikan kesalahan apa pun. Beberapa file seperti symlink dan file perangkat tidak dapat didefragmentasi.

  2. Isi nol semua ruang yang tidak digunakan sehingga VMware tahu itu memang tidak digunakan:

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

  3. Jalankan operasi menyusut:

    sudo vmware-toolbox-cmd disk shrinkonly

Tom Hale
sumber
Ini adalah jawaban yang benar untuk VMWare Workstation. Terima kasih kawan, banyak membantu saya!
Clonkex
Benar. Bekerja dengan baik di VMWare Workstation 14, Centos 7 Guest
odiszapc
1
berhati-hatilah jika Anda menjalankan ini dengan volume eksternal yang terpasang seperti S3 - perintah zero fill akan mencoba dan membuat wipefile 256TB dalam bucket S3 Anda ...
paj
Bekerja untuk saya untuk host Windows 10 dan tamu Ubuntu 16. Awalnya saya berpikir bahwa langkah 3 harus dijalankan pada host, tetapi saya salah. Setelah semua langkah, saya juga menjalankan pemeriksaan filesystem seperti dijelaskan di sini: askubuntu.com/a/953750/590877
Alex Che
1
+1, namun saya pikir menggunakan zerofree untuk langkah 2 akan jauh lebih cepat dan lebih bersih: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Étienne
15

Saya telah menemukan solusinya - Anda harus memadatkan hard drive Anda:

Mesin Virtual - Pengaturan - Umum - Bersihkan Mesin Virtual

Marcin Rybacki
sumber
Wow. Akhirnya saya menemukan jawaban ini. Tapi ... mengapa memadatkan disk virtual sebenarnya tidak mendapatkan kembali ruang kosong?
Wizard79
8
Anda perlu melakukan ini dari dalam OS Ubuntu tamu (dengan asumsi Anda telah menginstal VMware Tools): "vmware-toolbox-cmd disk shrink /" yang seharusnya melakukan pekerjaan itu.
DH4
Ini tidak berlaku untuk ESXi. Untuk itu, lihat jawaban saya di bawah ini.
Collin Chaffin
3

Buka VMware Toolbox di guest (sebagai root) dan susutkan disk. (Dokumentasi)


Jika Anda tidak memiliki Alat VMware, Anda dapat mengecilkan disk secara manual dalam dua langkah. Pertama, kosongkan ruang kosong pada disk virtual menggunakan alat seperti zerofree . Zerofree tersedia di Ubuntu , tetapi karena membutuhkan sistem file OS tamu untuk dipasang hanya-baca, Anda mungkin ingin menjalankannya dari live CD. Parted Magic dilaporkan menyertakan zerofree.

Setelah memusatkan ruang kosong, buka Pengaturan Mesin Virtual dan compact disk virtual.

nandhp
sumber
3
UI vmware toolbox tidak lebih, tetapi Anda masih dapat menggunakan: "vmware-toolbox-cmd disk shrink /" yang seharusnya melakukan pekerjaan itu.
DH4
3

Menggunakan

sudo vmware-toolbox-cmd disk shrinkonly

dari command prompt di tamu Ubuntu Anda.

(Diuji pada Ubuntu 14,04 tamu LTS + Windows 10 Host + VMWare Workstation 12.1.1)

YasharF
sumber
1

Mengubah ukuran harddisk VMWare :

Memperluas harddisk virtual dinamis di VMWare mudah dan tidak lagi memerlukan alat baris perintah yang vmware-vdiskmanager.exeterletak secara default di C:\Program Files\VMware\VMware Workstation\.

Untuk mengubah ukuran gunakan perintah berikut (Buka prompt perintah dengan menekan WIN + R dan masukkan cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Prosedur :

Langkah-langkah berikut adalah:

  • Unduh di sini
  • Install
  • Buka
  • Pilih partisi, Klik Ubah Ukuran / Pindahkan, Seret gagang ke lebar penuh
  • Klik Terapkan
  • Setuju untuk reboot
  • Selama startup, jangan tekan tombol apa pun
  • Biarkan modul boot-up menjalankan tugasnya
  • Pastikan ukuran partisi sistem Windows Anda meningkat.

Untuk ikhtisar visual langkah-langkah dan info tambahan, lihat di sini .

Lorenz Lo Sauer
sumber
0

Langkah-langkah ini bekerja dengan baik untuk saya:

1) Isi nol ruang yang tidak digunakan

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

2) Kecilkan disk dengan kotak alat vmware

sudo vmware-toolbox-cmd disk shrink /

Diuji pada Ubuntu 16.04, VMware Workstation 12.1.0 Player, Windows 7 Host

bukan nama
sumber
0

Disk yang menyusut dimungkinkan pada ESXi.

  1. Temukan file besar dan hapus.

    temukan / -type f -ukuran + 50 juta

  2. Defragment (tidak perlu melepas / me-remount apapun). Abaikan kesalahan apa pun. Beberapa file seperti symlink dan file perangkat tidak dapat didefragmentasi.

    sudo e4defrag /

  3. Isi nol semua ruang yang tidak digunakan sehingga VMware tahu itu memang tidak digunakan:

    dd jika = / dev / nol dari = wipefile bs = 1M; sinkronkan; rm wipefile

  4. Jalankan operasi menyusut: Jika 4 gagal, lanjutkan ke 5.

    sudo vmware-toolbox-cmd disk shrinkonly

  5. Reboot sistem linux dengan opsi coba dan edit tabel partisi dengan gparted. Kecilkan sistem file root dan hapus & pindahkan partisi swap ke dekat partisi root.

  6. SSH ke ESXi, dan berikan perintah ini:

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

  7. Kita perlu mengedit file * .vmdk. Setelah huruf RW, tentukan ukuran disk virtual VMware (VMDK)

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Bermigrasi ke datastore lain untuk mencerminkan ukuran baru.

Kondapaneni
sumber
(1) Pertanyaannya bukan tentang bagaimana menurunkan penggunaan sistem file; ia mengatakan bahwa OP telah melakukan itu. Jadi findperintah Anda tidak terlalu relevan. (2) Apa fungsinya vmkfstools -K? (3) Secara manual mengedit file? Betulkah? (4) Saya tidak mengerti instruksi Anda untuk perubahan apa yang perlu dilakukan pengguna dalam file. (5) Apa yang Anda katakan tentang migrasi ke datastore lain? (0) Sebagian besar dari apa yang Anda katakan sudah dibahas. ..... edit  jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott
Yah aku orang VMware (saya akan berpikir siapa pun yang mencoba semua ini juga harus) jadi tidak hanya jawaban ini HANYA yang bahkan berlaku untuk ESXi (karena ESXi TIDAK mendukung tamu linux menyusut melalui vmtools) tetapi akhirnya dibuat sempurna masuk akal bagiku. Dengan itu, langkah 7 tidak hanya tidak dibutuhkan, tapi juga salah. Karena menyusut tidak mengubah ukuran VOLUME yang sebenarnya, Anda cukup berhenti setelah langkah 6. Langkah 8 (migrasi penyimpanan) hanya digunakan ketika Anda ingin mengecilkan disk TANPA menjalankan vmkfstools yang mengurusnya secara paksa karena itulah solusi itu juga memerlukan langkah 5a-TUTUP tamu.
Collin Chaffin
Lihat jawaban saya di atas. Cmd berbasis vmtools yang tercantum pada langkah 5 juga salah karena tidak pernah didukung (atau bahkan berfungsi) pada skenario berbasis host APA ESXi.
Collin Chaffin
0

Menipis (menyusut) disk VMDK pada Tamu ESXi / vSphere Linux

Catatan: "Shrinking" sering digunakan secara bergantian untuk merujuk pada proses mengurangi ukuran file disk tipe tipis. VMware menggunakan istilah "menyusut" untuk merujuk pada pengurangan ukuran dasar disk yang tersedia untuk tamu, dan "penipisan" sebagai proses yang paling cenderung menggunakan merebut kembali ruang yang tidak digunakan tanpa mengubah ukuran yang tersedia yang mendasarinya.

Karena ESXi tidak mendukung penyusutan berbasis vmtools pada tamu Linux, langkah-langkah berikut harus digunakan. Lihat tautan referensi di bawah untuk informasi lebih lanjut.

  1. (jika mungkin) Hentikan semua aplikasi dan layanan intensif-penulisan disk karena langkah-langkah berikut sebentar akan mengisi volume target

  2. Volume defragment pada VMDK target dan abaikan kesalahan apa pun sebagai symlink / file perangkat / dll. tidak dapat didefragmentasi.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Isi nol semua ruang yang tidak digunakan:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Matikan & matikan tamu

  2. SSH ke host ESXi dan mengeluarkan perintah ini:

    # 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. Daya pada tamu

Sumber

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

Penghapusan file di sebagian besar sistem file tidak akan sepenuhnya menghapusnya; tabel file saja akan diubah. Penggunaan utilitas penghapusan file aman freeware berguna, seperti Eraser atau SDelete untuk nol ruang untuk 'nol' ruang kosong pada volume, secara efektif membersihkan ruang bebas data. Saat itulah, disk dapat ditipiskan dengan benar. Anda kemudian dapat menggunakan perintah vmkfstools -K (ESXi / ESX 4.1 dan yang lebih baru) untuk menyelesaikan blok reclaim atau menggunakan Storage vMotion untuk memigrasikan mesin virtual ke datastore dengan ukuran blok VMFS yang berbeda.

Collin Chaffin
sumber