AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 19430
Accepted
matt wilkie
matt wilkie
Asked: 2010-12-31 06:44:17 +0800 CST2010-12-31 06:44:17 +0800 CST 2010-12-31 06:44:17 +0800 CST

挂载 VirtualBox 驱动器映像 (vdi)?

  • 772

是否可以挂载 VirtualBox 驱动器映像 (.vdi),以便可以在 Nautilus 等中查看内容?

我有一个 Windows 2000 .vdi,在从 VirtualBox 2.x 升级到 3.1.6 后无法启动(“无法访问的启动设备”)。我相信 IDE 驱动器详细信息已更改,我需要做的就是访问内部驱动器映像并编辑 Windowsboot.ini以指向新位置。

virtualbox mount
  • 11 11 个回答
  • 210534 Views

11 个回答

  • Voted
  1. Maxime R.
    2011-06-24T17:48:51+08:002011-06-24T17:48:51+08:00

    使用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
    
    • 136
  2. Best Answer
    Vojtech Trefny
    2010-12-31T06:47:55+08:002010-12-31T06:47:55+08:00

    您可以转换为标准图像,然后挂载它。

    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

    • 67
  3. stwissel
    2012-05-07T22:02:57+08:002012-05-07T22:02:57+08:00

    看起来vdfuse是您正在寻找的工具。它位于 Ubuntu 存储库中。如果您想自己编译(2010 源代码),您也可以这样做。

    然而,对于我们大多数人来说,它归结为一个简单的问题:

    sudo apt-get install virtualbox-fuse
    

    它现在似乎也支持动态 vdi。

    .vdi并将文件挂载到/mntdir 使用命令:

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

    整个磁盘将挂载分区Partition1,Partition2命名格式。然后可以循环安装这些文件。例如,

    sudo mount -o loop /mnt/Parition1 /mountpoint
    
    • 39
  4. josef
    2010-12-31T07:13:57+08:002010-12-31T07:13:57+08:00

    将磁盘设置为另一个虚拟操作系统的辅助主设备,然后启动到这个(虚拟)操作系统,你可以挂载它。

    第 1 步:假设您已经在 Virtual box 中安装了一个虚拟操作系统(比如 Ubuntu 16.04),请从该虚拟操作系统的设置中添加一个新存储。 在此处输入图像描述

    第 2 步:浏览您要访问的 Vdi 文件并选择它。

    第 3 步:登录到虚拟操作系统。

    第 4 步:虚拟磁盘可能在操作系统中可用。如果没有,请按照步骤 5

    第 5 步:在虚拟操作系统中,使用 Gparted 并检查磁盘。并确保磁盘是虚拟操作系统可访问的类型。如果不是,您可能必须编辑磁盘,但您将丢失现有内容。

    • 16
  5. João Pinto
    2010-12-31T07:08:59+08:002010-12-31T07:08:59+08:00

    版主通知:模块vdfuse和软件包自 2016 年以来已过时,因为它们已从 Ubuntu 存储库中删除。虽然这个答案现在已经过时了,但由于帖子的年龄和它有赞成票的事实,这里的答案已被保留用于历史目的。

    我还没有测试过自己,但是有一个保险丝模块可以安装它们(vdfuse),请查看以下页面:

    • HOWTO:在主机上挂载任何与 VBox 兼容的磁盘映像

    请注意,将其用于写访问是有风险的。


    用法:

    $ ./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
    
    • 8
  6. PHZ.fi-Pharazon
    2017-06-19T04:51:55+08:002017-06-19T04:51:55+08:00

    正如上面提到的 Vojtech Trefny,

    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
    
    • 6
  7. user2683246
    2020-06-05T05:47:08+08:002020-06-05T05:47:08+08:00

    您可以使用vboximg-mount作为 VirtualBox 命令行工具一部分的程序。

    • 5
  8. JellicleCat
    2015-02-21T09:23:08+08:002015-02-21T09:23:08+08:00

    不是您要求的,但如果只是从 vdi 中获取文件,并且您想要一个非常快速的解决方案:

    1. 在您的主机上运行 ssh 服务器 ( apt-get install openssh-server && service ssh restart)
    2. 使用 VirtualBox 从现有的 vdi 文件构建虚拟机,然后启动该虚拟机。(在构建 VM 时,我只是保留了默认的网络适配器 (NAT)。)
    3. 在虚拟机中,sftp 到您的主机。( sftp hostuser@hostip)
    4. 在 sftp 会话中,put根据需要向主机发送尽可能多的文件。
    • 3
  9. C.S.Cameron
    2021-05-25T20:31:35+08:002021-05-25T20:31:35+08:00

    P7Zip 将打开 VDI 文件

    • 从此链接安装P7Zip - Desktop from Ubuntu Software或运行:

      sudo snap install p7zip-desktop
      
    • 启动P7Zip Desktop并导航到包含该.vdi文件的文件夹(可能VirtualBox VMs在您的主目录下)

    • 双击 P7Zip 窗口中的 VDI 文件。

    • 根据需要查看或提取文件。

    • 3
  10. Benny
    2022-04-02T15:01:15+08:002022-04-02T15:01:15+08:00

    VirtualBox使用vboximg-mount实用程序使主机可以使用磁盘映像:

    打开 VDI

    sudo mkdir -p /mnt/vdi/expanded
    sudo vboximg-mount -i <path-to-vdi> -o allow_other /mnt/vdi/expanded
    
    输出示例
    ls /mnt/vdi/expanded
    <filename.vdi>  vhdd  vol0  vol1
    

    挂载磁盘

    mkdir /mnt/vdi/vol1
    sudo mount /mnt/vdi/expanded/vol1 /mnt/vdi/vol1
    

    卸载

    cd /mnt                       # Optional (avoid mount: ... target is busy)
    sudo umount /mnt/vdi/vol1     # Order importent
    sudo umount /mnt/vdi/expanded
    rm -rf /mnt/vdi               # Optional (clean-up resources)
    
    • 2

相关问题

  • 是否有更好的方式为 /home/userX 构建分区/挂载

  • vmware/virtualbox 3d 加速

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 当另一个文件系统安装在路径上时是否可以删除文件?

  • 如何在 Ubuntu 中运行 Windows XP

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve