简洁版本
我正在尝试直接从 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 卡,检测到三个分区:sda1
、sda2
、sda5
。
答案1
该错误表明根本看不到您的 SD 卡,或者未正确显示您的 SD 卡,因此这不是分割问题。
检查 sdcard 实例的 QEMU 命令,然后重试。
答案2
我和你有同样的计划,在 OS X 下使用 QEMU 从 SD 卡模拟系统。另外,我也遇到了和你一样的问题,并陷入了同样的情况。
直到我发现这个文档。在 3.6.6.3 Mac OS X 中,没有硬盘选项。
'/dev/cdrom' 是第一个 CDROM 的别名。
目前没有专门的代码来处理可移动媒体,因此最好使用更改或弹出监视器命令来更改或弹出媒体。
我想这就是为什么我们从 SD 卡模拟系统总是失败的原因。