Вопрос или проблема
Я выделил слишком много памяти на своей виртуальной машине, и на хост-машине осталось не так много. Я хочу уменьшить память на своей виртуальной машине, чтобы хост-машина могла её использовать. Моя хост-машина работает на Windows, а гостевая ОС виртуальной машины — Ubuntu. Я попробовал следующее:
На виртуальной машине я использовал GParted, чтобы создать новый раздел с памятью, которую хочу освободить и выделить для хост-машины:
Как я распределил свои разделы:
Я сделал это для того, чтобы обнулить новый раздел и использовать команду Oracle modifymedium --compact
для освобождения этой памяти, но это не сработало.
Вот команда, которую я использовал для обнуления пространства:
sudo dd if=/dev/zero of="New Partition #1" bs=1M
Где-то я прочитал, что нужен конкретный путь к этому разделу, чтобы быть уверенным, что команда сработает, но похоже, что что-то произошло после этой команды, и я не указал путь, поскольку выглядит так, что он не был присвоен. После lsblk
я получаю:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.4M 1 loop /snap/core18/2846
loop1 7:1 0 63.3M 1 loop /snap/core20/1828
loop2 7:2 0 91.9M 1 loop /snap/lxd/24061
loop3 7:3 0 132M 1 loop /snap/docker/2932
loop4 7:4 0 63.7M 1 loop /snap/core20/2434
loop5 7:5 0 73.9M 1 loop /snap/core22/1663
loop6 7:6 0 139.6M 1 loop /snap/docker/2963
loop7 7:7 0 73.9M 1 loop /snap/core22/1722
loop8 7:8 0 91.9M 1 loop /snap/lxd/29619
loop9 7:9 0 1.1M 1 loop /snap/mosquitto/904
loop10 7:10 0 44.3M 1 loop /snap/snapd/23258
loop11 7:11 0 38.8M 1 loop /snap/snapd/21759
loop12 7:12 0 11.1M 1 loop /snap/ngrok/226
sda 8:0 0 976.6G 0 disk
├─sda1 8:1 0 1.1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 488.3G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 100G 0 lvm /
sr0 11:0 1 1024M 0 rom
и /dev/sda3
— мой основной раздел, который я не хочу изменять и хочу оставить как есть в моей виртуальной машине.
Это вывод команды modifymedium --compact
:
./VBoxManage modifymedium --compact "..notImportantPathToShow\workspace1.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
однако после всего этого ничего не изменилось в моей виртуальной машине.
Ответ или решение
Для уменьшения занимаемого дискового пространства виртуальной машины Oracle на Ubuntu с хостом на Windows, необходимо учитывать несколько ключевых шагов и советов.
Анализ и Оптимизация
-
Проверка текущих настроек партиций:
Текущая структура показывает, что основное место занимает раздел/dev/sda3
. Перед началом процессов уменьшения размера необходимо убедиться, что в системе нет ненужных данных, которые можно удалить или переместить. -
Уменьшение файловой системы:
Вероятно, вам потребуется уменьшить файловую систему внутри виртуальной машины. Чтобы это сделать, сначала создайте резервные копии данных. Затем используйтеGParted
для уменьшения размеров раздела, только после чего используйтеVBoxManage modifymedium
. -
Зануление свободного пространства:
Командаdd if=/dev/zero of=/path/to/emptyfile bs=1M
, где/path/to/emptyfile
— это файл, который вы создаете для заполнения всего свободного места. Завершите работу приложения после его 100% заполнения пространства. После этого, удалите созданный файл.
Рекомендации
- Убедитесь, что система не записывает новые данные в момент зануления.
- Используйте команду
sync
после выполнения операций с дисковыми файлами для обновления всех неподтверждённых данных на диске.
Финальная Компактификация
Когда все ненужные данные удалены и пространство занулено, повторно выполните команду компактификации:
VBoxManage modifymedium --compact "путь/к/файлу/workspace1.vdi"
Дополнительные Советы
- Убедитесь, что все вспомогательные процессы, использующие диск, отключены во избежание незапланированных изменений.
- Проверяйте изменения в реальном времени через сторонние утилиты по мониторингу, такие как
Disk Management
в Windows.
Заключение
Процесс может занимать время, но его выполнение повысит эффективность использования ваших ресурсов и обеспечит оптимальное перераспределение пространства. Если все шаги следуют описанным выше рекомендациям, процесс компактирования завершится успешно, и вы получите освобожденное пространство на хост-машине Windows.