Qemu 使用记录

本文详细介绍了QEMU的使用方法,包括如何下载和使用TinyCore Linux镜像,自编译内核及文件系统,以及如何在QEMU中启动自定义内核进行调试。此外,还提供了在QEMU中运行自写初始化进程的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

一直想研究qemu很久了,都是浅尝辄止,看一半的文档就不搞了,要下载那么多的镜像很讨厌的。最近觉得这两年实在是没什么长进确实应该深入看看了。

命令行

先了解这个命令怎么用吧,首先下载个TinyCore-current.iso 官网上下载才16MB

qemu-system-i386  -m 2G -smp 2 -vga vmware TinyCore-current.iso -enable-kvm

不支持kvm就删除-enable-kvm吧,硬件加速的。

自编译内核启动

  1. 编译内核

     make menuconfig 
     make 
     make bzImage
    
  2. 编译文件系统initrd,

     cd linux-5.0.4/arch/x84_64/boot
     mkinitramfs -o initrd.img
    
  3. 使用内核镜像和文件系统

     qemu-system-x86_64 -kernel bzImage -initrd initrd.img
    

好了,内核已经跑起来了,基本的initcramfs文件系统,感觉可以用来调试内核启动失败的bug, 当然不能涉及到文件系统。

自己写启动初始化进程

#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
  printf("Hello world!\n");
  sleep(999999999);
}

编译

gcc init.c -o init -static

创建镜像并启动

echo init | cpio -o -H newc | gzip > test.cpio.gz

OK, 可以启动内核,执行这个程序了

qemu-system-x86_64 -m 512M -kernel ./bzImage -initrd test.cpio.gz

http://www.tinycorelinux.net/downloads.html

http://gruba.blogspot.com/2009/08/qemu-minimal-linux-kernel-config.html
https://blog.youkuaiyun.com/u014022631/article/details/81001263

https://www.linuxidc.com/Linux/2015-03/114461.htm
https://www.linuxidc.com/Linux/2015-03/114462.htm
https://www.jianshu.com/p/e4ea9e9d8308

https://main.lv/writeup/qemu_usage.md
https://unix.stackexchange.com/questions/48302/running-bzimage-in-qemu-unable-to-mount-root-fs-on-unknown-block0-0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱国正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值