如何在VirtualBox中将EXT4分区挂载在SD卡上


9

我在联想笔记本电脑中内置了SD卡读取器,并且已将VirtualBox和Debian压缩安装到VM中,但似乎无法在SD卡上查看EXT4分区或任何分区!

我问了这个问题: 通过将SD卡安装在另一台计算机上来更改IP设置

建议的答案包括将SD卡安装在虚拟机中。


我认为您必须通过USB设备(SD卡读取器可能在内部连接到USB总线)-请参阅howtoforge.com/…-让我们知道它是否有效,我将其写为答案。
亚历克斯·张伯伦

@Alex Chamerlain-我仍在努力,它似乎没有显示为USB设备,我正在将分区作为原始设备安装在VirtualBox中,但我们没有(或很少)互联网连接很难解决我需要做的事情!
Dog Ears '07年

谢谢您,先生,在VirtualBox中使用我的Xubuntu SATA硬盘工作非常好。正是我想要的。

您应该在问题中提到您正在尝试在运行Windows的主机上执行此操作(即使您使用Windows下的Linux VM来访问SD卡)。
cjs

Answers:


8

内部读卡器-非USB-Windows 7主机

我的笔记本电脑有内置的读卡器,没有显示为USB设备。为了使其正常工作,我必须先将EXT4分区挂载为RAW,然后再将其分配给VM,然后再引导VM。

我注意到的第一件事是,如果我在“ 计算机管理”下打开“ 磁盘管理”实用程序-右键单击“我的电脑”,然后选择“ 管理”,那么您应该能够将SD卡视为磁盘,并且由于Kibbee提到我的磁盘也具有三个分区,我猜想是更大的分区中间分区是我一直追求的分区。

要在VirtualBox中挂载原始分区,您需要知道磁盘和分区号。我首先使用Windows命令行实用程序Diskpartlist disk命令确认了这些信息(在我的笔记本电脑上,在磁盘管理中,SD卡显示为#1)

为了正确识别分区,我以VirtualBox命令listpartitions为例:

vboxmanage internalcommands listpartitions -r awdisk \\.\PhysicalDrive1

对我来说,输出是:

Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)
1       0x0c  16  /0  /1   1023/3  /32            75         2048
2       0x83  1023/3  /32  1023/3  /32          1590       157696
3       0x82  1023/3  /32  1023/3  /32           191      3416064

由此,我猜测分区2是我试图访问的EXT4分区。

将分区挂载为原始卷

为了使原始分区可用于Linux来宾,VirtualBox允许您提交createrawvmdk命令,以创建扩展名为.vmdk的文件,然后可以从VM的存储设置中将其指定为现有磁盘。同样,这里以我为例:

vboxmanage internalcommands createrawvmdk -filename 
C:\VirtualMachines\Debian\disk1_part2.vmdk -rawdisk \\.\PhysicalDrive1
-partitions 2

(您可以忽略“ -partitions 2”参数来启用设备上的所有分区。)

将原始磁盘添加到VM

启动虚拟机之前

  • 打开虚拟机的设置对话框,选择存储
  • 右键单击SATA Controller,然后单击添加硬盘
  • 选择选择现有磁盘按钮,然后浏览到上一步中创建的文件。

现在,您可以启动VM并可以访问EXT4分区。

用户帐户控制问题

如果满足以下条件:

  • 主机系统正在运行Windows Vista,7或8(或Windows Server 2008R2 / 2012)
  • 启用了用户帐户控制
  • 并且您尚未修改有关原始磁盘访问的权限

则即使您是管理员,上述操作也可能失败。这是由于非管理员无法访问原始设备。

我看到了4种可能的解决方案,但都不是很好的解决方案:

  • 禁用用户帐户控制可能会解决该问题(我尚未测试过)。
  • 可以为用户分配访问原始设备的权限。但是,我不建议这样做,因为它非常不安全。
  • 您可以以管理员身份运行VirtualBox(右键单击,选择“以管理员身份运行”);您必须在创建和使用设备时都执行此操作。
  • ....或购买USB读卡器并将其直接作为USB设备连接。

这可能特定于我的用法,但我想我想评论一下,以防其他人使用:如果您正在从来宾OS写入SD卡,并且来宾OS炸弹出现BLKCACHE_IOERR错误,则可以通过以下方法进行修复进入guest虚拟机的设置并在SATA控制器上启用“使用主机I / O缓存”。
约书亚·惠特利

1

要做到这一点,我用了一个SD卡读卡器,类似这一个。我在当地的一元商店里买了一家,这是最便宜的商店。虽然我认为几乎所有的USB读卡器都可以使用。

插入并启动虚拟机后,转到Virtual Box的“设备”菜单,然后选择USB,然后找到您的USB设备。我的显示为“ Generic-USB2.0-CRW [8687]”。您的设备名称可能不同。插入电源后,它会自动安装驱动器并为2个分区中的每一个弹出一个窗口(不包括交换分区)。如果您没有遇到这种情况,则该设备在我的计算机上将被识别为/ dev / sdb,具有三个分区:

boot: /dev/sdb1
root: /dev/sdb2 <-- This is the EXT 4 one with the /etc/network/interfaces file
swap: /dev/sdb3

虚拟机上的设备名称可能不同,并且如果将Raspberry SD卡使用的不是Debian,则分区可能会有所不同。如果您没有随身携带的SD卡读卡器,则可能需要尝试将SD卡放入相机,然后将其附加到Virtual Box。只是使用我的电子书阅读器(Kobo)进行了测试,并且只显示了vfat(引导)分区,这可能会或可能不会起作用。


+1虽然对我无济于事,但也许是一个标题,指出此解决方案适用于USB?
狗耳朵2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.