![如何在 Linux 上安装 VirtualBox .vdi 磁盘?](https://linux22.com/image/1243179/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E5%AE%89%E8%A3%85%20VirtualBox%20.vdi%20%E7%A3%81%E7%9B%98%EF%BC%9F.png)
我在 VirtualBox 上运行 Fedora。有时为了进行一些实际的硬件测试,我需要在物理机上运行我的开发环境。因此,我需要虚拟机的硬盘(.vdi 文件)通过启动可启动映像、安装 vdi 文件,然后 chrooting 到它,在虚拟机本身和我的物理 PC 上交替工作。
我以为这很容易实现,但似乎并非如此。我希望在这里找到答案。
答案1
您可以将其安装为环回设备。您可以使用的工具只是“mount”或“losetup”。诀窍是了解所需的偏移量。为此,您需要“vditool”或“vdiinfo”。
这里有一篇很好的文章,很好地解释了这一点:
http://muralipiyer.blogspot.com/2008/02/mounting-virtualbox-vdi-disk-authentic.html
答案2
这里是 OpenSuse,vdfuse 对我来说,无论是固定图像还是动态图像,都运行良好。从以下网址下载 rpm: http://download.opensuse.org/repositories/Virtualization/openSUSE_Factory/x86_64/vdfuse-8.2a-5.54.x86_64.rpm
- 安装(出现提示时按 i 忽略文件校验和)
- 为第一个挂载点创建目录
- 跑步
sudo vdfuse -f "/home/sys1.vdi" /VBMount
- 为第二个挂载点创建目录
- 跑步
sudo mount /VBMount/Partition1 /VBMountPart1/
答案3
由于接受的答案似乎已经过时(我相信vditool
已经被淘汰了vbox-img
,请参阅这里),下面是我在 Linux 系统上挂载 .vdi 映像的操作:
- 运行
vbox-img info --filename /path/to/image.vdi
。保存以以下行开头的行旁边列出的 uuidHeader: uuidCreation
vboximg-mount -i [UUID] /path/to/intermediate/mountpoint
使用上一步中的 UUID运行以挂载映像(我的是包含 Windows 安装的 /vdi)(来源)- (可选)要了解每个分区上的内容/您可能想要挂载哪个分区,请运行
sudo fdisk -lu /path/to/intermediate/mountpoint/vhdd
- 使用 检查下一个可用的循环挂载点
losetup -f
,如果你以前没有这样做过,它很可能是 /dev/loop0,但再检查一下也不会有什么坏处——这些说明将假设你正在使用 loop0(来源) - 跑步
sudo losetup -P /dev/loop0 /path/to/intermediate/mountpoint/vhdd
(来源)。这将生成几个具有基于分区的命名方案的挂载点(/dev/loop0p1
,/dev/loop0p2
.etc) - 使用 挂载您感兴趣的单个分区
sudo mount /dev/loop0p[N] /path/to/mountpoint
,并将其替换[N]
为您想要的分区号。
卸载:
答案4
从 VirtualBox 7 开始,现在有该工具vboximg 安装适用于 Linux 和 OS X 挂载图像。
使用示例:
$ vboximg-mount --image /vbox/Fedora/Fedora.vdi --list
Virtual disk image:
Base: /vbox/Fedora/Fedora.vdi
UUID: de961064-98d8-474c-8d69-a70da7db60de
Partition Boot Start Sectors Size Offset Type
Fedora.vdi(0) 2048 1228800 600.0M 1048576 EFI system partition
Fedora.vdi(1) 1230848 2097152 1.0G 630194176 Linux native
Fedora.vdi(2) 3328000 125829120 60.0G 1703936000 Linux native
Fedora.vdi(3) 129157120 80556032 38.4G 66128445440 Linux native
$ mkdir /tmp/mnt
$ vboximg-mount --image /vbox/Fedora/Fedora.vdi --rw /tmp/mnt
$ ls -l /tmp/mnt
total 22759832
lr--r--r-- 1 root root 0 Apr 25 08:26 Fedora.vdi -> /vbox/Fedora/Fedora.vdi
-rw-r--r-- 1 nobody nogroup 107374182400 Apr 25 08:43 vhdd
-rw-rw-rw- 1 root root 629145600 Jan 1 1970 vol0
-rw-rw-rw- 1 root root 1073741824 Jan 1 1970 vol1
-rw-rw-rw- 1 root root 64424509440 Jan 1 1970 vol2
-rw-rw-rw- 1 root root 41244688384 Jan 1 1970 vol3
$ fusermount -u /tmp/mnt