Можно ли смонтировать образ диска VirtualBox (.vdi), чтобы содержимое можно было просматривать в Nautilus и т. Д .?
У меня есть Windows 2000 .vdi, которая не загружается («недоступное загрузочное устройство»). ") после обновления с VirtualBox 2.x до 3.1.6. Я считаю, что данные дисковода IDE изменились, и все, что мне нужно сделать, - это получить доступ к образу внутреннего диска и отредактировать Windows boot.ini
, чтобы указать новое местоположение.
Можно преобразовать в стандартный образ и затем смонтировать его.
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img
Затем
mount -t ext3 -o loop,rw ./ubuntu.img /mnt
Нужно ЗНАЮТЬ тип файловой системы, ext3
в данном случае. После монтирования, зайдите и отредактируйте его с помощью выбранного вами редактора. Не путайте файлы внутри места /mnt
с работающим хостом, иначе будет плохо.
Чтобы проверить подробности о вашем VDI файле, запустите: VBoxManage showhdinfo ubuntu.vdi
.
Source: [Решено] Открыть .vdi с архивным менеджером? - ubuntuforums.org
Похоже, vdfuse - это инструмент, который вы ищете. Он находится в репозиториях Ubuntu. Если вы хотите скомпилировать себя (исходный код 2010 г.), вы можете сделать это тоже .
Однако для большинства из нас это сводится к простому:
sudo apt-get install virtualbox-fuse
Кажется, теперь он также поддерживает динамический vdi.
А чтобы смонтировать файл .vdi
в каталоге / mnt
, используйте команду:
sudo vdfuse -a -f /path-to-vdi-file /mnt
Весь диск будет смонтирован с разделами Partition1
, Формат имени раздела 2
. Затем эти файлы можно монтировать в цикле. Например,
sudo mount -o loop /mnt/Parition1 /mountpoint
Установите диск как вторичный мастер для другой виртуальной ОС, затем загрузитесь в эту (виртуальную) ОС, и вы сможете смонтировать его.
Шаг 1: Предположим, что у вас уже установлена виртуальная ОС (скажем, Ubuntu 16.04) в Virtual box, добавим новое хранилище из настроек этой виртуальной ОС. Шаг 2: Просмотрите файл Vdi, к которому хотите получить доступ, и выберите его.
Шаг 3: Войдите в виртуальную ОС.
Шаг 4: Виртуальный диск, вероятно, будет доступен внутри ОС. Если нет, выполните шаг 5
Шаг 5: Внутри виртуальной ОС используйте Gparted и проверьте диски. и убедитесь, что диск имеет тип, доступный для виртуальной ОС. Если это не так, возможно, вам придется отредактировать диск, но тогда вы потеряете существующее содержимое.
Используйте qemu-nbd
, процесс объясняется на serverfault и в этом блог .
По сути, вам придется установить qemu
, если необходимо:
sudo apt-get install qemu
Затем вам нужно будет загрузить модуль сетевого блочного устройства :
sudo rmmod nbd
sudo 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
Я не тестировал себя, но есть модуль предохранителей для их монтирования (vdfuse
), проверьте следующую страницу:
Пожалуйста, обратите внимание, что использовать его для доступа на запись рискованно.
Использование:
$ ./vdfuse-v<version> -h
USAGE: ./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
Не то, что вы просили,но если это всего лишь вопрос удаления файлов с vdi , и вы хотите очень быстрое решение :
apt- get install openssh-server && service ssh restart
) sftp hostuser @ hostip
) поместите
на хост столько файлов, сколько вам нужно. Как упоминал Войтех Трефны выше,
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.img
Disk ubuntu.img: 21.0 GB, 20971520000 bytes
255 heads, 63 sectors/track, 2549 cylinders, total 40960000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf45bc910
Device Boot Start End Blocks Id System
ubuntu.img1 * 2048 12582911 6290432 83 Linux
ubuntu.img2 12584958 16775167 2095105 5 Extended
ubuntu.img3 16775168 40959999 12092416 83 Linux
ubuntu.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=12092416
e2fsck ubuntu.disk
mount ubuntu.disk /mnt
Подход qemu
из этот ответ необходимо немного изменить для работы в Ubuntu 20.04 .1. Сначала мне пришлось загрузить модуль nbd
, автор:
lsmod | grep nbd
modprobe nbd
Это не сработало:
sudo mount /dev/nbd0p1 /mnt
Мне нужно было сделать это вместо этого:
sudo mount /dev/nbd0p2 /mnt
Вы можете использовать программу vboximg-mount
, которая является частью инструментов командной строки VirtualBox.