Qemu 使用记录

简介

一直想研究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 
#include 

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.csdn.net/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

你可能感兴趣的:(Cloud,Linux,Virtual)