QEMU 可以从 Linux 模拟 SD 卡,但不能从 OSX 模拟 SD 卡

QEMU 可以从 Linux 模拟 SD 卡,但不能从 OSX 模拟 SD 卡

简洁版本

我正在尝试直接从 SD 卡模拟 RaspberryPi(使用与所提供的相同的命令这里来自MacOSX。我正在使用 QEMU。

然而,我的 SD 卡上的分区无法正确识别:当我使用 *.img 文件时,QEMU 会检测分区。但当我使用 SD 卡时却没有。由于MacOSX无法原生安装ext4,因此我尝试安装osxfuse和fuse-ext2。现在我可以使用以下命令毫无问题地挂载 ext4 文件系统:

$ mount -t fuse-ext2 /dev/disk2s5 /mnt/sda5

运行 QEMU,我尝试使用 指定文件系统rootfstype=fuse-ext2,但 QEMU 仍然没有检测到分区。事实上,无论我在这个字段中输入什么rootfstype,我都会得到同样的错误:

VFS: Cannot open root device "sda5" or unknown-block(8,5): error -6
Please append a correct "root=" boot option; here are the available partitions:
0b00         1048575 sr0  driver: sr
1f00           65536 mtdblock0  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,5)
CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.26+ #2

更多细节

使用以下命令,我可以*.img成功模拟我的 Pi 映像 ( )(均来自架构Linux和来自操作系统:

$ qemu-system-arm -kernel path/to/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append“console=ttyAMA0 root=/dev/sda5 rootfstype=ext4 rw”-hda/path/to/ArchLinuxARM-2014.06-rpi.img

当我运行 QEMU 时,我可以从 SD 卡模拟我的 Pi 系统架构Linux(如中所述这个链接):

$ qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append“console=ttyAMA0 root=/dev/sda5 rootfstype=ext4 rw”-哈达/dev/sdd

在哪里/dev/sdd是Arch Linux 识别的我的SD 卡。然后我尝试从操作系统, 如下:

$ qemu-system-arm -kernel 路径/到/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append "console=ttyAMA0 root=/dev/sda5 rootfstype=保险丝-ext2读写”-hda/dev/磁盘2

(请注意,我使用了“fuse-ext2”,它是 MacOSX 上的第三方)。

这次没有检测到分区,我得到了上面复制的错误。

运行该*.img文件而不是 SD 卡,检测到三个分区:sda1sda2sda5

答案1

该错误表明根本看不到您的 SD 卡,或者未正确显示您的 SD 卡,因此这不是分割问题。

检查 sdcard 实例的 QEMU 命令,然后重试。

答案2

我和你有同样的计划,在 OS X 下使用 QEMU 从 SD 卡模拟系统。另外,我也遇到了和你一样的问题,并陷入了同样的情况。

直到我发现这个文档。在 3.6.6.3 Mac OS X 中,没有硬盘选项。

'/dev/cdrom' 是第一个 CDROM 的别名。

目前没有专门的代码来处理可移动媒体,因此最好使用更改或弹出监视器命令来更改或弹出媒体。

我想这就是为什么我们从 SD 卡模拟系统总是失败的原因。

相关内容