linux各种架构下通过qemu模拟创建虚拟机

       之前写了一篇帖子,讲的是如何在linux x86服务器上创建arm虚拟机(aarch64架构),之后就有同学再问,他手边只有arm的机器,没有x86的机器,但是有个二进制程序只能在x86上跑,能不能指导他在linux arm服务器上创建x86的虚拟机呢 ?答案是当然能啦!

       qemu本身就是一个纯模拟器,他是完全可以为大家屏蔽掉底层OS的架构体系的,让你舒舒服服的想创建啥架构的虚拟机,就创建啥类型的虚拟机,如果你不相信 ? 好,我就给你列出来qemu所支持的当前主流/非主流的服务器架构体系,哼,不信你不服!
 

下面就是qemu支持的所有服务器架构体系:你要用哪个,就编译哪个呗!

[root@localhost qemu-5.1.0-rc1]# ./configure --help

Usage: configure [options]
Options: [defaults in brackets after descriptions]

Standard options:
  --help                   print this message
  --prefix=PREFIX          install in PREFIX [/usr/local]
  --interp-prefix=PREFIX   where to find shared libraries, etc.
                           use %M for cpu name [/usr/gnemul/qemu-%M]
  --target-list=LIST       set target list (default: build everything)
                           Available targets: aarch64-softmmu alpha-softmmu
                           arm-softmmu avr-softmmu cris-softmmu hppa-softmmu
                           i386-softmmu lm32-softmmu m68k-softmmu
                           microblazeel-softmmu microblaze-softmmu
                           mips64el-softmmu mips64-softmmu mipsel-softmmu
                           mips-softmmu moxie-softmmu nios2-softmmu
                           or1k-softmmu ppc64-softmmu ppc-softmmu
                           riscv32-softmmu riscv64-softmmu rx-softmmu
                           s390x-softmmu sh4eb-softmmu sh4-softmmu
                           sparc64-softmmu sparc-softmmu tricore-softmmu
                           unicore32-softmmu x86_64-softmmu xtensaeb-softmmu
                           xtensa-softmmu aarch64_be-linux-user
                           aarch64-linux-user alpha-linux-user armeb-linux-user
                           arm-linux-user cris-linux-user hppa-linux-user
                           i386-linux-user m68k-linux-user
                           microblazeel-linux-user microblaze-linux-user
                           mips64el-linux-user mips64-linux-user
                           mipsel-linux-user mips-linux-user
                           mipsn32el-linux-user mipsn32-linux-user
                           nios2-linux-user or1k-linux-user
                           ppc64abi32-linux-user ppc64le-linux-user
                           ppc64-linux-user ppc-linux-user riscv32-linux-user
                           riscv64-linux-user s390x-linux-user sh4eb-linux-user
                           sh4-linux-user sparc32plus-linux-user
                           sparc64-linux-user sparc-linux-user
                           tilegx-linux-user x86_64-linux-user
                           xtensaeb-linux-user xtensa-linux-user
  --target-list-exclude=LIST exclude a set of targets from the default target-list

Available targets: 
aarch64_be-linux-user                          
aarch64-linux-user 
aarch64-softmmu 
alpha-linux-user 
alpha-softmmu     
armeb-linux-user                          
arm-linux-user 
arm-softmmu 
avr-softmmu 
cris-linux-user 
cris-softmmu 
hppa-linux-user                          
hppa-softmmu
i386-linux-user 
i386-softmmu 
lm32-softmmu 
m68k-linux-user                          
m68k-softmmu   
microblazeel-linux-user 
microblazeel-softmmu 
microblaze-linux-user
microblaze-softmmu        
mips64el-linux-user 
mips64el-softmmu 
mips64-linux-user                         
mips64-softmmu 
mipsel-linux-user 
mipsel-softmmu                        
mips-linux-user                         
mipsn32el-linux-user 
mipsn32-linux-user                         
mips-softmmu 
moxie-softmmu 
nios2-linux-user 
nios2-softmmu                          
or1k-linux-user                         
or1k-softmmu 
ppc64abi32-linux-user 
ppc64le-linux-user                         
ppc64-linux-user 
ppc64-softmmu 
ppc-linux-user 
ppc-softmmu              
riscv32-linux-user                         
riscv32-softmmu 
riscv64-linux-user 
riscv64-softmmu 
rx-softmmu               
s390x-linux-user 
s390x-softmmu 
sh4eb-linux-user                        
sh4eb-softmmu 
sh4-linux-user 
sh4-softmmu            
sparc32plus-linux-user                         
sparc64-linux-user 
sparc64-softmmu 
sparc-linux-user                        
sparc-softmmu 
tilegx-linux-user 
tricore-softmmu               
unicore32-softmmu 
x86_64-linux-user                        
x86_64-softmmu 
xtensaeb-linux-user 
xtensaeb-softmmu                          
xtensa-linux-user
xtensa-softmmu 

如果你觉得还是太麻烦,希望直接来代码示例,好,我就直接贴代码

arm64的虚拟机用下面的选项来编译:

./configure --target-list=aarch64-softmmu

x86_64的虚拟机用下面的选项来编译:

./configure --target-list=x86_64-softmmu 

riscv64的虚拟机用下面的选项来编译:

./configure --target-list=riscv64-softmmu

其他的不一一罗列了,以此类推哈

完整的基于qemu源码做的编译方式如下:

tar xvJf qemu-2.11.0.tar.xz
cd qemu-2.11.0 
./configure --target-list=aarch64-softmmu
make install

这里也附上我之前写的x86上创建arm虚拟机的介绍,供参考

https://blog.csdn.net/chyq112366/article/details/105128848

你可能感兴趣的:(linux,笔记,linux,centos,openEuler)