Virtualbox zmiejszenie dysku

Hej, postawiłem kiedyś virtualbox maszyne z linuxem i stworzyłem dysk dynamiczny do 100GB, był czas że na tej maszynie trzymałem 80GB danych i tak się powiększył ten dysk, teraz dosłownie cała maszyna zajmuję 10GB a widnieje cały czas zajętość 80GB (z pozycji) Windows jak w prosty sposób zaktualizować/pomniejszyć do prawdziwych rozmiarów ten wirtualny dysk :
System gospodarza to Windows 10, system gościa (wirtualka) Linux Ubuntu

Nie pomniejszysz dysku. Dynamiczny dysk zmienia swój rozmiar tylko w jedną stronę.

Jeśli ci to przeszkadza, to pozostaje - albo postawienie nowej maszynki - albo podmontowanie nowego dysku, zmigrowanie Ubuntu i wywalenie starego.

vBoxmanage.exe modifymedium z tego co pamiętam. Pierwsze z google:

@blumberplumber praktycznie w każdym środowisku wirtualizacyjnym jest to do wykonania na offlinowej maszynie (wyłączonej). W vmware jest np. vmkfstools z przełącznikiem -K.
Zawsze jest opcja ‘na około’, czyli V2V, lub klon maszyny.

Też liczyłem na klon ale podczas klonowania w Virtualbox nie mozna zmienić rozmiaru dysku.

O ile dobrze pamiętam gdzieś czytałem, że nie można wprost zmniejszyć wirtualnego dysku w VirtualBox. Co zrobić?

Do tej samej maszyny wirtualnej dodać nowy dysk i utworzyć na nim taki sam układ partycji jak na poprzednim ( “/” i “/home” jeśli miałeś wydzielone). Potem uruchamiasz maszynę z livecd i na przykład przy pomocy rsync kopiujesz zawartość jednego dysku na drugi z zachowaniem partycji, itd. Po skopiowaniu dysku “starego” dysku nie usuwaj a odłącz z maszyny wirtualnej i usuń ze znanych nośników (nie usuwaj fizycznie w razie WU). Następnie przy pomocy livecd pozmieniaj UUID partycji na nowym dysku na dokładnie takie same jak na starym dysku

LUB / ALBO

wykorzystując chroot zaloguj się do “sklonowanego” systemu, uaktualnij UUID w pliku /etc/fstab i uaktualnij program rozruchowy Grub2.

Jeśli maszyna wirtualna była instalowana w trybie UEFI pamiętaj, żeby przed kopiowaniem rsync podmontować /boot/efi i obowiązkowo /sys/firmware/efi/efivars/ z opcją --bind.

Jak wykonać backup systemu przy pomocy rsync?
https://wiki.archlinux.org/index.php/rsync#Full_system_backup .

W tym przypadku trzeba dostosować CEL zapisu dla rsync, czyli /path/to/backup.

Jeśli nie chcesz wchodzić w szczegóły zainstaluj system od nowa na nowym mniejszym dysku :stuck_out_tongue:

Zastanawiam się, czy nie wystarczy użyć przełącznika --compact dla wybranego dysku? (vboxmanage)? :thinking:

Tak jak @pocolog zauważył, możesz uzyć --compact ale najpierw musisz wyzerować wolną przestrzeń. Dokładna procedura opisana tutaj (@bachus podał stronę, która opisuje praktycznie to samo. Jedyna różnica to start Linux w trybie recovery, co jest dosyć wygodne a tutaj mamy procedurę w normalnie uruchomionej maszynie z przejściem do single-user mode i przemontowaniem zerowanej partycji w tryb tylko do odczytu):


Polecają użyć programu zerofree zamiast dd. Program Zerofree wypełni wolną przestrzeń zerami a dd zrobi to samo ale przy okazji rozciągnie dysk do maksimum. Z dd jest taki plus, że można odpalić je od ręki na działającym systemie bez potrzeby przemontowania partycji w tryb ro i single-user mode. Oczywiście po kompaktowaniu w obu przypadkach rezultat będzie identyczny.

W tym przypadku kompaktowanie można przeprowadzić na uruchomionej maszynie? Nie jestem pewien, ktoś sprawdzi?