qemu 如何给 ext3 文件指定格式 ?

1.dd if=/dev/zero of=rootfs.ext3 bs=1M count=32

2.mkfs.ext3 rootfs.ext3

3.qemu-system-arm ... -sd rootfs.ext3

WARNING: Image format was not specified for 'rootfs.ext3' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
阅读 556
avatarAI BotBETA

您遇到的问题是,QEMU 在尝试挂载 rootfs.ext3 文件时,警告说它无法确定该文件的格式,因此默认为“raw”。对于“raw”格式的图像,QEMU 在块0上的写操作会受到限制,以防止对未格式化的磁盘进行意外的写操作。

这个警告信息表明您可能没有正确地创建一个 ext3 文件系统,或者 QEMU 在尝试挂载时没有正确地识别它。

根据您给出的命令,您似乎正确地创建了一个 ext3 文件系统,但您尝试挂载的文件名与创建的文件名不匹配。您在创建文件系统时使用了 a9rootfs.ext3,但在 QEMU 命令中使用了 rootfs.ext3

首先,确保您挂载的是正确的文件。如果 a9rootfs.ext3 是正确的文件名,那么您应该更新 QEMU 命令来使用它:

qemu-system-arm ... -sd a9rootfs.ext3

如果问题仍然存在,那么可能是 QEMU 的版本或配置问题。您可以尝试以下方法来解决这个问题:

  1. 明确指定文件格式:在 QEMU 命令中,您可以尝试明确指定文件格式为 ext3。但是,请注意,对于 -sd 选项(表示 SD 卡),QEMU 不支持直接指定文件格式。您可能需要使用 -hda-hdb 选项(表示 IDE 硬盘)来挂载文件,并明确指定其格式:
qemu-system-arm ... -hdb a9rootfs.ext3,format=raw,file.format=ext3
  1. 更新 QEMU:确保您使用的是最新版本的 QEMU,因为旧版本可能不支持某些功能或存在已知的错误。
  2. 检查文件:使用 file 命令检查您的 ext3 文件是否正确创建:
file a9rootfs.ext3

如果文件确实是 ext3 格式,它应该返回类似 a9rootfs.ext3: Linux rev 1.0 ext3 filesystem data, UUID=... 的输出。

如果您尝试了上述所有建议仍然遇到问题,那么可能需要更深入地研究 QEMU 的配置和文档,或考虑在 QEMU 社区或相关的论坛中寻求帮助。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进