Pun*_*oni 75 sd-card virtual-machine
我想从我的 Linux 虚拟机格式化 SD 卡。我的笔记本电脑中有一个内置的SD 卡读卡器。我尝试使用VirtualBox和VMware Player并安装了 Ubuntu 10.04 来宾。他们都没有将 SD 卡读卡器显示为设备。我可以从 Windows 主机访问 SD 卡。
我对使用共享文件夹的解决方案不感兴趣,因为我想将 SD 卡作为硬件访问(它应该显示在 中/dev
)。
我基本上想为BeagleBoard设置 SD 卡,但我不想在我的 PC 上安装物理 Ubuntu。
Jin*_*nKo 62
在较新的 MacBook Pro 上,SD 卡插槽不再显示为 USB 设备。因此,您需要将原始设备连接到 VM 以获得对整个卡的原始访问权限。完整文档位于VirtualBox 文档的高级存储配置部分。
正如文档中明确指出的:
警告- 原始硬盘访问仅供专家用户使用。不正确的使用或使用过时的配置会导致物理磁盘上的数据完全丢失。最重要的是,不要尝试在来宾中使用当前运行的主机操作系统引导分区。这将导致严重的数据损坏。
作为快速指南,这些是将设备连接到 linux VM 的步骤:
识别主机系统上的原始磁盘块设备
打开终端并输入“mount”。您将看到从 SD 卡中识别已安装卷的输出。在我的系统上,我得到以下信息
$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk2s1 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners)`
Run Code Online (Sandbox Code Playgroud)在我的情况下,“NO NAME”卷是 SD 卡,所以我记下了这/dev/disk2s1
部分。在这种特殊情况下,s1
部件代表原始设备上的一个分区(切片),因此我们稍后将使用的/dev/disk2
部件只是部件。
现在我们在终端中使用以下命令设置 VirtualBox 以了解原始设备。
/path/to/file.vmdk
可以放在任何地方,但最好将其存储在来宾 VM 文件夹中,例如~/VirtualBox VMs/guest-vm/sdcard.vmdk
请注意,-rawdisk
我们使用的 不引用分区(切片),而仅引用整个块设备。
$ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
Run Code Online (Sandbox Code Playgroud)接下来,我们将原始磁盘附加到 VirtualBox UI 中的来宾 VM
/path/to/file.vmdk
您在步骤 3 中使用的并选择它file.vmdk
在列表中看到您的。似乎有些人可能在步骤 3.2 或 4.6 中访问原始设备时遇到问题。尝试使用 sudo 运行某些命令将无济于事,因为 VirtualBox 将以您的登录用户身份运行,并且仍然无法正确访问原始设备或生成的 vmdk 文件。
以下步骤应该会有所帮助,但我尚未对其进行测试。
检查原始磁盘权限
$ ls -l /dev/disk2
brw-r----- 1 jinn staff 14, 5 Aug 26 15:33 /dev/disk2
Run Code Online (Sandbox Code Playgroud)
这些权限必须与您当前登录的用户帐户相匹配:
$ id
uid=501(jinn) gid=20(staff) ...snip...
Run Code Online (Sandbox Code Playgroud)
设备上的权限还应允许您的常用用户帐户读取 (r) 和写入 (w) 到此设备。除非您完全了解自己在做什么,否则请勿更改设备的权限。
事实证明,OSX Mountain Lion 使用“root:operator”权限和 0640 权限创建了设备。不幸的是,目前访问此设备的唯一方法是每次插入设备时向当前用户“sudo chown $USER”它,但是除非您真正了解自己在做什么,否则不建议这样做。希望 Apple 或 VirtualBox 能找到更合适的解决方案。
san*_*ott 49
Windows 用户的回答
获取 SD 卡读卡器的 DeviceID。
您需要在驱动器中安装一张由 Windows 安装的卡。
输入这个命令
wmic diskdrive list brief
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
C:\Users\Sandy Scott>wmic diskdrive list brief
Caption DeviceID Model Partitions Size
WDC WD7500BPKT-75PK4T0 \\.\PHYSICALDRIVE0 WDC WD7500BPKT-75PK4T0 3 750153761280
O2Micro SD SCSI Disk Device \\.\PHYSICALDRIVE1 O2Micro SD SCSI Disk Device 1 3964584960
Run Code Online (Sandbox Code Playgroud)
最后一个设备是 SD 卡读卡器,所以 DeviceID 是 \\.\PHYSICALDRIVE1
创建到 SD 卡的链接文件
以管理员身份打开命令窗口
"C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk "\\.\PHYSICALDRIVE1"
Run Code Online (Sandbox Code Playgroud)
这假定默认安装路径 - 如果需要,请更改它。(确保引号在 rawdisk 参数周围。)
.vmdk 文件是 SD 卡的链接,您可以将它放在主机系统上的任何位置,但为了方便起见,此命令只是将它放在您的桌面上。
按照 JinnKo 的回答中的步骤 4-6,唯一的小调整是您需要以管理员身份启动 VirtualBox
- 接下来,我们将原始磁盘附加到 VirtualBox UI 中的来宾 VM
- 确保来宾 VM 已关闭电源。
- 确保 VirtualBox 未运行
- 通过右键单击 VirtualBox 并选择“以管理员身份运行”来启动它
- 打开来宾 VM 的设置区域
- 单击工具栏中的“存储”
- 单击控制器旁边的图标以“添加硬盘”
- 选择“选择现有磁盘”
- 导航到
/path/to/file.vmdk
您在步骤 3 中使用的并选择它- 您现在应该返回到存储选项卡并
file.vmdk
在列表中看到您的。- 启动虚拟机
- 根据您是否有 GUI,SD 卡可能会或可能不会自动安装。如果您需要手动挂载,它只是作为另一个标准块设备公开,所以在我的来宾上,它被公开为 /dev/sdb。
如果您的 SD 读卡器使用 USB 控制器,您很可能会错过这些扩展。
在文件 > 首选项下,按照图片操作。添加并指向下载的扩展。
重新启动您的虚拟机,您应该可以访问 USB 设备。
小智 7
在较新的 MacBook Pro 上,SD 卡插槽不再显示为 USB 设备
要解决这个问题,您可以简单地使用外部Usb 存储卡读卡器(即 SD 卡到 USB 适配器)而不是内置读卡器。它会将您的 SD 卡公开为 USB 设备,以便您可以像安装任何 USB 设备一样轻松安装它。它们是便宜的设备,考虑到其他方面的所有麻烦,它们是可以接受的解决方案。
归档时间: |
|
查看次数: |
232591 次 |
最近记录: |