在KVM虚拟机中安装Android-x86模拟器

目录

准备Android-x86的iso镜像

准备kvm虚拟化环境

检测是否支持KVM

安装 KVM 环境

虚拟化嵌套(VM-in-VM)

开启 nested 方法

创建kvm虚拟机

创建虚拟机磁盘

创建虚拟机

安装Android-x86系统

Android 调试桥 (adb)


准备Android-x86的iso镜像

可以在Download | Android-x86 处下载

[root@localhost ~]# cd /opt
[root@localhost ~]# wget https://nchc.dl.sourceforge.net/project/android-x86/Release%209.0/android-x86_64-9.0-r2.iso  --no-check-certificate

准备kvm虚拟化环境

检测是否支持KVM

KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm'

flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc

关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled

[root@localhost ~]# vi /etc/sysconfig/selinux

安装 KVM 环境

通过 yum 安装 kvm 基础包和管理工具

kvm相关安装包及其作用:

  • qemu-kvm 主要的KVM程序包
  • python-virtinst 创建虚拟机所需要的命令行工具和程序库
  • virt-manager GUI虚拟机管理工具
  • virt-top 虚拟机统计命令
  • virt-viewer GUI连接程序,连接到已配置好的虚拟机
  • libvirt C语言工具包,提供libvirt服务
  • libvirt-client 为虚拟客户机提供的C语言工具包
  • virt-install 基于libvirt服务的虚拟机创建命令
  • bridge-utils 创建和管理桥接设备的工具
# 安装 kvm 
# ------------------------
# yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

[root@localhost ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils 

# 重启宿主机,以便加载 kvm 模块
# ------------------------
[root@localhost ~]# reboot

# 查看KVM模块是否被正确加载
# ------------------------
[root@localhost ~]# lsmod | grep kvm

kvm_intel             162153  0
kvm                   525259  1 kvm_intel

开启kvm服务,并且设置其开机自动启动

[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd

查看状态操作结果,如Active: active (running),说明运行情况良好

[root@localhost ~]# systemctl status libvirtd
[root@localhost ~]# systemctl is-enabled libvirtd

● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2001-01-02 11:29:53 CST; 1h 41min ago
     Docs: man:libvirtd(8)
           http://libvirt.org

虚拟化嵌套(VM-in-VM)

安装X86模拟器需要CPU开启虚拟化功能,而KVM虚拟机已经是虚拟机了,虚拟机中的CPU默认情况下不带有虚拟化功能,这就需要nested kvm功能,即可以在虚拟机中再次进行虚拟化(VM-in-VM)。

使用嵌套虚拟化,我们首先要看下当前的系统中有没有配置支持嵌套,查看当前系统是否支持 nested

[root@localhost ~]# systool -m kvm_intel -v   | grep -i nested
nested              = "N"

#或者这样查看
[root@localhost ~]# cat /sys/module/kvm_intel/parameters/nested 
N
  • Y : 结果为 Y 表示当前的操作系统已经支持了嵌套虚拟化
  • N : 表示当前操作系统未配置嵌套虚拟化

如果结果为 N,可以通过以下方式开启

开启 nested 方法

编辑或创建文件 /etc/modprobe.d/kvm-nested.conf,文件包含以下内容:

options kvm_intel nested=1
options kvm-intel enable_shadow_vmcs=1   
options kvm-intel enable_apicv=1         
options kvm-intel ept=1

重新加载内核模块

[root@localhost ~]# modprobe -r kvm_intel   #协助掉内核中的 kvm_intel 模块,注意要在所有虚拟机都关闭的情况下执行
[root@localhost ~]# modprobe -a kvm_intel   #重新加载该模块

创建kvm虚拟机

创建虚拟机磁盘

[root@localhost ~]# qemu-img create -f raw /opt/android.img 8G

创建虚拟机

[root@localhost ~]# virt-install  \
--virt-type=kvm \
--name android \
--cpu host-passthrough \
--vcpus=2 \
--memory=4096 \
--disk /opt/android-x86_64-9.0-r2.iso,device=cdrom,bus=ide \
--disk /opt/android.img,device=disk,bus=virtio \
--network network=default,model=virtio \
--video=qxl \
--graphics vnc,listen=0.0.0.0,port=5902 \
--noautoconsole \
--import \
--force

安装Android-x86系统

通过vnc连接宿主机5902端口

看到如下如,表示android x86的镜像已经读取成功,接下来按照虚拟机创建流程来安装系统。 

选择Auto_Installation自动安装操作系统到空白磁盘 

扫描到磁盘/dev/vda,选择yes继续 

看到下图表示安装完毕,选择Run即可进去系统。 

可以看到系统已经正常启动,界面如下:

开始初始化,选择START 

连接网络,KVM默认会给android生成名称为VritWifi的WI-FI

配置日期时间 

配置google服务

设置密码,这里选择Not now 

选择跳过 

选择桌面,我这里选择的是Taskbar 点击ALWAYS,进入桌面后会有个导航栏。 

Android 调试桥 (adb)

下载Android SDK Platform-Tools是安卓SDK的一个组件,包括安卓的平台界面工具(如adb、fastboot、systrace)

[root@localhost ~]# wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
[root@localhost ~]# unzip platform-tools-latest-linux.zip -C /opt

export PATH=$PATH:/opt/platform-tools/

查看虚拟机IP

[root@localhost ~]# virsh domifaddr  android
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet1      52:54:00:c7:a5:27    ipv4         192.168.122.9/24

连接设备

[root@localhost ~]# adb connect 192.168.122.9:5555

查看设备

[root@localhost ~]# adb devices
List of devices attached
192.168.122.9:5555      device

安装apk

[root@localhost ~]# adb install v2rayNG_1.1.14.apk
Performing Streamed Install
Success

启动应用

[root@localhost ~]# adb shell am start -n com.v2ray.ang/com.v2ray.ang.ui.MainActivity
Starting: Intent { cmp=com.v2ray.ang/.ui.MainActivity }

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
首先,确保你的服务器已经安装了所需软件包。可以使用以下命令检查软件包是否已安装: ``` dpkg -l pppoe kvm isc-dhcp-server ``` 如果软件包未安装,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install pppoe kvm isc-dhcp-server ``` 接下来,配置PPPoE: 1. 编辑 `/etc/ppp/pppoe-server-options` 文件,添加以下配置: ``` auth mtu 1492 mru 1492 require-chap require-mschap-v2 require-pap refuse-pap refuse-chap refuse-mschap lcp-echo-interval 30 lcp-echo-failure 4 ``` 2. 编辑 `/etc/ppp/chap-secrets` 文件,添加用户名和密码: ``` username * password * ``` 3. 编辑 `/etc/ppp/pap-secrets` 文件,添加用户名和密码: ``` username * password * ``` 4. 编辑 `/etc/ppp/pppoe-server` 文件,添加以下配置: ``` pty "/usr/sbin/pppoe -I eth0 -N 100 -e 1:1 -S /etc/ppp/pppoe-server-options" interface eth1 usergroup pppoe auth ``` 其,`eth0` 是连接到Internet的接口,`eth1` 是连接到客户端的接口。 5. 启动PPPoE服务: ``` sudo /etc/init.d/pppoe-server start ``` 接下来,配置KVM虚拟机: 1. 安装KVM: ``` sudo apt-get update sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils ``` 2. 创建一个虚拟网络: ``` sudo virsh net-define /usr/share/doc/libvirt-bin/default.xml sudo virsh net-autostart default sudo virsh net-start default ``` 3. 创建一个虚拟机: ``` sudo virt-install --name demo --ram 1024 --disk path=/var/lib/libvirt/images/demo.img,size=10 --vcpus 1 --os-type linux --os-variant ubuntu16.04 --network bridge=virbr0 --graphics vnc,listen=0.0.0.0 --noautoconsole --import ``` 其,`demo` 是虚拟机名称,`1024` 是虚拟机内存大小,`/var/lib/libvirt/images/demo.img` 是虚拟机磁盘路径,`10` 是虚拟机磁盘大小,`ubuntu16.04` 是操作系统版本,`virbr0` 是虚拟网络接口。 接下来,配置ISC DHCP服务器: 1. 编辑 `/etc/dhcp/dhcpd.conf` 文件,添加以下配置: ``` subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; } ``` 其,`192.168.1.0` 是网络地址,`255.255.255.0` 是子网掩码,`192.168.1.100` 和 `192.168.1.200` 是IP地址范围,`192.168.1.1` 是默认网关,`8.8.8.8` 和 `8.8.4.4` 是DNS服务器。 2. 启动ISC DHCP服务器: ``` sudo /etc/init.d/isc-dhcp-server start ``` 现在,你已经成功配置了PPPoE、KVM虚拟机和ISC DHCP服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

墨痕诉清风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值