

Файлы виртуальных дисков формата VDI уже много лет являются стандартными для виртуальных машин VirtualBox.
У них есть одна неприятная особенность – некоторые системы в случае, если диск “расширяемый по запросу”, при работе с него “раздвигают” диск, после чего его размер останется прежним, хотя для системы этого уже и не требуется. В результате диск может “раздуться” до весьма значительных размеров, занимая на физическом носителе бессмысленно много места. Решить проблему может штатная утилита из пакета VirtualBox:
1 |
vboxmanage modifyhd /<путь_к_файлу>/<файл_диска>.vdi --compact |
Однако для её эффективной работы крайне желательно, чтобы неиспользуемое пространство виртуального диска было обнулено. В случае с виртуальными машинами Windows этого можно добиться при помощи специальной утилиты:
1 |
c:\sdelete -z c: |
Аналогичная утилита с тем же названием имеется и для Android, она доступна в различных репозиториях.
Нередко возникает необходимость получить доступ к содержимому виртуального диска помимо его родной виртуальной машины, например если “что-то пошло не так”… и нам надо вытащить с него какие-то файлы.
Для этого мы можем воспользоваться одной из функций QEMU:
1 2 3 |
sudo modprobe nbd sudo qemu-nbd -c /dev/nbd0 /<путь_к_файлу>/<файл_диска>.vdi mount -o loop /dev/nbd0p1 /mnt |
В данном случае первой командой мы подгружаем модуль nbd (сам он по умолчанию не подгружается), затем создаем устройство для нашего виртуального диска, и просто монтируем его. После минования надобности отмонтируем виртуальный диск и отвяжем его от устройства:
1 2 |
sudo umount /mnt sudo qemu-nbd -d /dev/nbd0 |
При работе с подмонтированным диском следует учитыать, что он при таких параметрах будет монтироваться сразу на чтение/запись.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.