DatYs 2019-02-20 10:25 采纳率: 0%
浏览 160

最近在学qemu,想问一下:

最近在学qemu,想问一下:1、怎么把编译的内核镜像zimage和制作的根文件系统放到用qemu-img做的raw格式镜像里比如叫qemu.img。2、怎么用qemu-system-配置参数,需要哪些参数才能把qemu.img引导起来跑linux系统,求大神指教,感谢。

  • 写回答

1条回答 默认 最新

  • 嵌入式逍遥 嵌入式领域优质创作者 2024-01-23 19:48
    关注

    准备内核镜像(zImage)和根文件系统(rootfs):

    确保你已经有了编译好的内核镜像(zImage)和制作好的根文件系统(rootfs)。
    创建QEMU镜像(qemu.img):
    使用qemu-img工具创建一个raw格式的镜像文件。例如,创建一个名为qemu.img的镜像文件,大小为4GB:

    qemu-img create -f raw qemu.img 4G
    将内核镜像和根文件系统放入镜像:
    你可以使用dd命令将内核镜像和根文件系统写入到镜像文件中。首先,确定你的根文件系统(rootfs)的设备名称(例如/dev/sda),然后使用以下命令:

    sudo dd if=zImage of=qemu.img bs=1M conv=sync seek=8
    这个命令会在镜像文件的第9个扇区(8 * 512字节 = 4KB,因为一个扇区通常是512字节)处写入内核镜像。然后,将根文件系统挂载到一个目录,并复制到镜像中:

    mkdir /mnt/rootfs
    sudo mount -o loop rootfs.img /mnt/rootfs
    sudo dd if=/mnt/rootfs/* of=qemu.img bs=1M conv=sync seek=1
    sudo umount /mnt/rootfs
    rmdir /mnt/rootfs
    注意:这里的seek=1表示从镜像文件的第一个扇区(1 * 512字节)开始写入根文件系统。你可能需要根据实际情况调整这个值。

    启动QEMU虚拟机:
    使用qemu-system-aarch64(或相应的QEMU命令,取决于你的架构)启动虚拟机,并指定内核镜像和根文件系统。例如:

    qemu-system-aarch64 -M virt -cpu cortex-a72 -smp 2 -m 2048M -kernel qemu.img -append "root=/dev/sda rw console=ttyAMA0" -nographic
    这里的参数解释如下:

    -M virt:指定QEMU使用virt机器模型。
    -cpu cortex-a72:指定CPU型号。
    -smp 2:创建2个虚拟CPU核心。
    -m 2048M:分配2GB内存给虚拟机。
    -kernel qemu.img:指定内核镜像文件。
    -append "root=/dev/sda rw console=ttyAMA0":设置内核启动参数,指定根文件系统设备和控制台输出。
    -nographic:不使用图形界面,直接在终端输出。

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?