Смонтировать образ диска VirtualBox (vdi)?

Можно ли смонтировать образ диска VirtualBox (.vdi), чтобы содержимое можно было просматривать в Nautilus и т.д.?

У меня есть windows 2000 .vdi, который не загружается ("недоступное загрузочное устройство") после обновления с VirtualBox 2.x до версии 3.1.6. Я полагаю, что сведения о диске IDE изменились, и все, что мне нужно сделать, это получить доступ к образу внутреннего диска и отредактировать Windows boot.ini чтобы указать на новое местоположение.

Воспользуйся qemu-nbd, процесс объяснен при сбое сервера и в этом блоге.

В принципе, вам придется установить qemu при необходимости:

sudo apt-get install qemu

Затем вам нужно будет загрузить устройство сетевого блока модуль:

sudo rmmod nbdsudo modprobe nbd max_part=16

Прикрепите образ .vdi к одному из только что созданных вами nbd:

sudo qemu-nbd -c /dev/nbd0 drive.vdi

Теперь вы получите блочное устройство /dev/nbd0 вместе с несколькими узлами устройства разделения /dev/nbd0p*.

sudo mount /dev/nbd0p1 /mnt

Как только вы закончите, отключите все и отсоедините устройство:

sudo qemu-nbd -d /dev/nbd0

Вы можете преобразовать в стандартный образ, а затем смонтировать его.

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

Затем

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

Вам нужно будет ЗНАТЬ тип файловой системы, ext3 в этом случае. После того, как он будет смонтирован, зайдите и отредактируйте его с помощью редактора по вашему выбору. Не путайте файлы внутри /mnt местоположение с работающим хостом, или это будет плохо.

Чтобы проверить сведения о вашем файле VDI, запустите: VBoxManage showhdinfo ubuntu.vdi.

Источник: [РЕШЕНО] Открыть .vdi с помощью менеджера архивов? - ubuntuforums.org

Это выглядит как vdfuse это тот инструмент, который вы ищете. Он находится в репозиториях Ubuntu. Если вы хотите скомпилировать самостоятельно (исходный код 2010 года), вы можете сделай это тоже.

Однако для большинства из нас это сводится к простому:

sudo apt-get install virtualbox-fuse

Похоже, теперь он также поддерживает динамический vdi.

И установить .vdi файл в /mnt dir используйте команду:

sudo vdfuse -a -f /path-to-vdi-file /mnt

Весь диск будет смонтирован с разделами Partition1 , Partition2 формат именования. Затем эти файлы могут быть смонтированы по циклу. Например,

sudo mount -o loop /mnt/Parition1 /mountpoint

Установите диск в качестве вторичного ведущего для другой виртуальной ОС, затем загрузитесь в эту (виртуальную) ОС, и вы сможете ее смонтировать.

Шаг 1: Предполагая, что у вас уже установлена виртуальная ОС (скажем, Ubuntu 16.04) в Virtual box, добавьте новое хранилище из настроек этой виртуальной ОС.enter image description here

Шаг 2: Просмотрите файл Vdi, к которому вы хотите получить доступ, и выберите его.

Шаг 3: Войдите в виртуальную ОС.

Шаг 4: Виртуальный диск, вероятно, будет доступен внутри операционной системы. Если нет, выполните шаг 5

Шаг 5: Внутри виртуальной ОС используйте Gparted и проверьте диски. и убедитесь, что диск имеет тип, доступный виртуальной ОС. Если это не так, возможно, вам придется отредактировать диск, но тогда вы потеряете существующее содержимое.

Я сам не проверял, но для их установки есть модуль предохранителя (vdfuse), проверьте следующую страницу:

Пожалуйста, обратите внимание, что использовать его для доступа на запись рискованно.


Использование:

$ ./vdfuse-v<version> -hUSAGE: ./vdfuse [options] -f image-file mountpoint   -h   help   -r   readonly   -t   specify type (VDI, VMDK, VHD, or raw; default: auto)   -f   VDimage file   -a   allow all users to read disk   -w   allow all users to read and write to disk   -g   run in foreground   -v   verbose   -d   debug

Чтобы смонтировать изображение напрямую, используя его имя файла:

$ ./vdfuse-v<version> -f image.vdi /mnt/vdi$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

Для монтирования диска компьютера (включая моментальные снимки):

$ ./vdautomount-<version> -p /path/to/vdfuse WinXP /mnt/vdi$ mount -o loop /mnt/vdi/Partition1 /mnt/WindowsXP

Как упоминал выше Войтех Трефный,

>1) сначала конвертируйте ваш VDI - IMG

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

2) Затем смонтируйте IMG

mount -t ext3 -o loop,rw ./ubuntu.img /mnt

3) Однако, поскольку я получил это сообщение об ошибке:

mount: wrong fs type, bad option, bad superblock on /dev/loop0,       missing codepage or helper program, or other error       In some cases useful info is found in syslog - try       dmesg | tail  or so

и dmesg сказал:

[3105578.013671] EXT4-fs (loop0): VFS: Can't find ext3 filesystem

вам нужно проверить структуру разделов файла .img:

fdisk -l ubuntu.imgDisk ubuntu.img: 21.0 GB, 20971520000 bytes255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xf45bc910   Device Boot      Start         End      Blocks   Id  Systemubuntu.img1   *        2048    12582911     6290432   83  Linuxubuntu.img2        12584958    16775167     2095105    5  Extendedubuntu.img3        16775168    40959999    12092416   83  Linuxubuntu.img5        12584960    16775167     2095104   82  Linux swap / Solaris

4) Как вы можете видеть, основной раздел начинается с байта 16775168. Однако обратите внимание, что размер сектора составляет 512 байт, поэтому вам нужно умножить результаты 16775168 x 512 = 8588886016, поэтому вам нужно сместить монтирование следующим образом:

mount -t ext3 -o loop,rw,offset=8588886016 ./ubuntu.img /mnt

5) На самом деле это не сработало для меня в случае, когда файловая система была загрязнена после изменения размера. В этом случае я дополнительно сделал это:

dd if=ubuntu.img of=ubuntu.disk bs=512 skip=16775168 count=12092416e2fsck ubuntu.diskmount ubuntu.disk /mnt

Не то, что вы просили, но если это просто вопрос извлечение файлов из vdi, и ты хочешь очень быстрое решение:

  1. Запустите ssh-сервер на вашем хосте (apt-get install openssh-server && service ssh restart)
  2. Используйте VirtualBox для создания виртуальной машины из существующего файла vdi, а затем загрузите эту виртуальную машину. (Я просто сохранил сетевой адаптер по умолчанию (NAT) при создании виртуальной машины.)
  3. Внутри виртуальной машины, sftp к вашему хосту. (sftp hostuser@hostip)
  4. В сеансе sftp, put столько файлов на хост, сколько вам нужно.

Вы можете использовать vboximg-mount программа, которая является частью инструментов командной строки VirtualBox.

P7Zip откроет файлы VDI

  • Устанавливать P7Zip-Рабочий стол из программного обеспечения Ubuntu.

  • Откройте папку, содержащую файл VDI в Nautilus, (Файлы).

  • Щелкните правой кнопкой мыши файл VDI и выберите Open with Other Application.

  • Выбрать Рабочий стол P7Zip.

  • Дважды щелкните файл VDI в окне P7Zip.

  • Просматривайте или извлекайте файлы по своему усмотрению.

То qemu подход со стороны этот ответ необходимо было немного изменить, чтобы работать в Ubuntu 20.04.1. Сначала я должен был загрузить nbd модуль, по:

lsmod | grep nbdmodprobe nbd

Это не сработало:

sudo mount /dev/nbd0p1 /mnt

Мне нужно было сделать это вместо этого:

sudo mount /dev/nbd0p2 /mnt

Если ваш файл .vdi, а затем .img содержит более 1 раздела, это очень полезно:
просмотр-изображения-без-монтажа