x86环境部署ARM虚拟机(centos7) 您所在的位置:网站首页 centos7支持的cpu型号 x86环境部署ARM虚拟机(centos7)

x86环境部署ARM虚拟机(centos7)

2023-04-13 12:47| 来源: 网络整理| 查看: 265

部署环境

操作系统:win 10  i7-6700 CPU 8G

QEMU简介

QEMU(quick emulator)是一款由法布里斯·贝拉(Fabrice Bellard)等人编写的免费的可执行硬件虚拟化的(hardware virtualization)开源托管虚拟机(VMM)。QEMU 是一个托管的虚拟机镜像,它通过动态的二进制转换,模拟CPU,并且提供一组设备模型,使它能够运行多种未修改的客户机OS,可以通过与KVM一起使用进而接近本地速度运行虚拟机(接近真实电脑的速度)。QEMU还可以为user-level的进程执行CPU仿真,进而允许了为一种架构编译的程序在另外一种架构上面运行(借由VMM的形式)。

硬件准备

如果需要构建KVM环境,首先需要硬件支持。首先处理器(CPU)要在硬件上支持VT技术,还要在BIOS中将其功能打开,KVM才能使用到。目前,多数流行的服务器和部分桌面处理器的BIOS都默认将VT打开了。在BIOS中,VT的选项通过“Advanced→Processor Configuration”来查看和设置,它的标识通常为“Intel®Virtualization Technology”或“Intel VT”等类似的文字说明。设置好了VT和VT-d的相关选项,保存BIOS的设置并退出,系统重启后生效。在Linux系统中,可以通过检查/proc/cpuinfo文件中的CPU特性标志(flags)来查看CPU目前是否支持硬件虚拟化。在x86和x86-64平台中,Intel系列CPU支持虚拟化的标志为“vmx”,AMD系列CPU的标志为“svm”。

命令选项 # qemu的标准选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。 -name name # 虚拟机名称 -M machine # 指定要模拟的主机类型,如standard PC,ISA-only PC或Intel-Mac等,可以使用“qemu-kvm -M ?”获取所支持的所有类型 -m megs # 设定虚拟机的RAM大小 -cpu model # 设定CPU模型,如coreduo、qemu64等,可以使用"qemu-kvm -cpu ?"获取所支持的所有模型 -smp n # 设定模拟的SMP架构中CPU的个数 [,cores=cores] # 每个CPU的核心数 [,threads=threads] # 线程数 [,sockets=sockets] # CPU的socket数目 [,maxcpus=maxcpus] # 用于指定热插入的CPU个数上限 -numa 非一致内存访问 -numa opts:指定模拟多节点的numa设备 -fda file: -fdb file:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱 -hda file: -hdb file: -hdc file: -hdd file:使用指定file作为硬盘镜像 -cdrom file:使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱 -drive # 定义一个硬盘设备:可用子选项有很多 file=/path/to/somefile # 硬盘映像文件 if=interface # 硬盘设备接口类型 ide、scsi、sd、virtio(半虚拟化) index=index # 设定同一种控制器类型中不同设备的索引号,即标识号 media=media # 定义介质类型为硬盘还是光盘disk、cdrom snapshot=snapshot # 指定当前硬盘设备是否支持快照功能:on或off cache=cache # 定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe和writethrough四个 format=format # 指定映像文件的格式,具体格式可参见qemu-img命令 -boot [order=drives][,once=drives][,menu=on|off] # 定义启动设备的引导次序,每种设备使用一个字符表示:不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱,c表示第一个光驱设备,n-p表示网络适配器,默认为硬盘设备。例如:-boot order=dc,once=d

参数参考:https://www.cnblogs.com/born2run/p/16361823.html

下载地址及文件 下载地址: CentOS-7-aarch64-Everything-2009(下载地址:https://www.centos.org/download/) QEMU Binaries for Windows (64 bit) (下载地址:https://qemu.weilnetz.de/w64/2021/) 实际下载的文件: https://qemu.weilnetz.de/w64/2021/qemu-w64-setup-20210505.exe https://mirrors.bfsu.edu.cn/centos-altarch/7.9.2009/isos/aarch64/CentOS-7-aarch64-Everything-2009.iso 下载UEFI http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

文件地址路劲:

虚拟机硬盘文件位置: G:\Centos7arm UEFI下载后的位置: G:\Centos7arm\QEMU_EFI.fd CENTOS的ISO文件位置: G:\tool\ISO\CentOS-7-aarch64-Everything-2009.iso QEMU 下载后的位置: C:\Program Files\qemu 生产硬盘文件

[注意]:建议使用Windows PowerShell 输入启动,cmd报错提示没有这个直观,虚拟机安装文件路径不建议安装到C盘下可能会因为权限原因导致读取不到,文件名建议不要带有空格

进入qemu的安装路径,在G:\Centos7arm目录下生成40G的硬盘文件

cd 'C:\Program Files\qemu\' .\qemu-img create -f qcow2 'G:\Centos7arm\disk1.qcow2' 40G Formatting 'C:\Users\DELL\Documents\Virtual Machines\CentOS7arm\disk.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=42949672960 lazy_refcounts=off refcount_bits=16 相关参数: -c:采用压缩,只有qcow和qcow2才支持 -f:源镜像的格式,它会自动检测,所以省略之 -O 目标镜像的格式 -o 其他选先

安装虚拟机(NAT方式安装,调用光驱安装系统)

.\qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios 'G:\Centos7arm\QEMU_EFI.fd' -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=G:\Centos7arm\disk1.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=G:\tool\ISO\CentOS-7-aarch64-Everything-2009.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp::2222-:22 相关参数: 1."cpu"指定了处理器的架构,"smp"指定了处理器的个数,"m"指定了内存的大小。 2."kernel"指定编译生成的内核镜像的存放位置,"append"是内核启动的附加参数。 3."drive"指定之前制作生成的根文件系统的相关位置 socket就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数。 core就是我们平时说的“核“,每个物理CPU可以双核,四核等等。 thread就是每个core的硬件线程数,即超线程 具体例子,上面这台服务器的CPU配置是2个socket,每个socket是8个core,每个core是超线程(2),这样,整台机器的对外的core就是2*8*2=32 SMP,对称多处理器(Symmetric Multi-Processors,简称SMP) 是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。像双至强,也就是我们所说的二路,这是在对称处理器系统中最常见的一种(至强MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少数是16路的。但是一般来讲,SMP结构的机器可扩展性较差,很难做到100个以上多处理器,常规的一般是8个到16个,不过这对于多数的用户来说已经够用了。在高性能服务器和工作站级主板架构中最为常见,像UNIX服务器可支持最多256个CPU的系统,其实qemu从代码设计上也是最大支持256个virtual cpu。 以下是man qemu-kvm的内容 -smp n[,cores=cores][,threads=threads][,sockets=sockets] set the number of CPUs to 'n' [default=1] cores= number of CPU cores on one socket       threads= number of threads on one CPU core sockets= number of discrete sockets in the system

 

-m 指定内存大小 -M 指定虚拟机器「machine」的类型 -cpu 指定虚拟CPU的型号 -smp 指定对称多处理的核心数 -append 指定内核启动时使用的命令行参数「cmdline」

 

 

运行成功后会出现qemu安装界面

这里需要等待很久......................

可以抽根烟慢慢等待

然后就进入传统centos安装页面 进行安装

 启动虚拟机(去掉光盘启动) //需要把上面启动的项目关闭掉 或者Windows PowerShell关闭掉ctrl+c ctrl+z都是一下 关闭的时候可能要等待一会C:\Users\DELL>cd "c:\Program Files\qemu" C:\Program Files\qemu> .\qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios 'G:\Centos7arm\QEMU_EFI.fd' -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=G:\Centos7arm\disk1.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp::2222-:22 最终的启动虚拟机的批处理文件内容:

下面采用了变量,因此稍微改动就可以安装或者启动其他虚拟机。cdrom设置了系统镜像,就会从镜像启动,此时安装系统,设置为空置则从虚拟机磁盘启动。

 

原代码: c: cd C:\Program Files\qemu set disk=D:\VirtualBox_VMs\arm64-centos7\disk1.qcow2 rem set cdrom=D:\backup\iso\CentOS\CentOS-7-aarch64-Everything-2009.iso set cdrom= set cpus=cortex-a72 -smp 6,sockets=1,cores=6 qemu-system-aarch64.exe -m 4096 -cpu %cpus% -M virt -bios D:\VirtualBox_VMs\arm64-centos7\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=%disk%,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=%cdrom%,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp::22-:22 因为我的使用变量提示报错所以我没使用变量: cd C:\Program Files\qemu set disk=G:\Centos7arm\disk1.qcow2 rem set cdrom=G:\tool\ISO\CentOS-7-aarch64-Everything-2009.iso set cdrom= set cpus=cortex-a72 -smp 6,sockets=1 //报错可以去cmd试试 .\qemu-system-aarch64.exe -m 4096 -cpu cortex-a72 -M virt -bios 'G:\Centos7arm\QEMU_EFI.fd' -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=G:\Centos7arm\disk1.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=G:\tool\ISO\CentOS-7-aarch64-Everything-2009.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp::22-:22

使用这种启动运行速度明显快很多

拓展:

端口映射:hostfwd=[tcp|udp]:[主机ip]:主机端口-[客户机ip]:客户机端口 hostfwd=tcp::2222-:22按照前例启动命令,宿主访问虚拟机需要访问本机2222,使用远程工具连接时端口用2222,IP地址使用127.0.0.1

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有