1、安裝qemu及相關(guān)依賴
apt-get -y install qemu
apt-get -y install bridge-utils
apt-get -y install vnc4server
apt-get -y install qemu-kvm
apt install -y qemu-system-arm
apt-get -y install libvirt0
apt-get -y install libvirt-daemon
apt-get -y install libvirt-daemon-system
安裝完成后檢查:
virsh version
ls /usr/bin/|grep qemu
2、下載 QEMU_EFI.fd 及 iso
wget http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd
?wget https://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04.1-legacy-server-arm64.iso
下面是我的文件及路徑參考
?3、創(chuàng)建虛擬硬盤
創(chuàng)建多大根據(jù)你自己的需求而定:
qemu-img create ubuntuimg.img 40G
4、創(chuàng)建虛擬機(jī)
qemu-system-aarch64 -m 2048?-cpu cortex-a57 -smp 2?-M virt -bios qemu_system/QEMU_EFI.fd -nographic -drive if=none,file=ubuntu-20.04.1-legacy-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntuimg.img,id=hd0 -device virtio-blk-device,drive=hd0
可以根據(jù)自己的配置和需求修改加粗部分
命令解釋:
-m megs # 設(shè)定虛擬機(jī)的RAM大小,單位MB。
-cpu model # 設(shè)定CPU模型,如cortex-a57、cortex-a9等。
-smp n # 設(shè)定模擬的SMP架構(gòu)中CPU的個(gè)數(shù)。
-M machine # 指定要模擬的主機(jī)類型
-bios file #設(shè)置bios啟動(dòng)文件
-nographic #禁用圖形界面支持
5、執(zhí)行第4步驟的命令后進(jìn)入安裝界面
類似于
根據(jù)提示信息一步一步的安裝,這一步可能很慢,請(qǐng)耐心點(diǎn)
6、安裝成功后
啟動(dòng)命令:
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0
進(jìn)入虛擬機(jī)發(fā)現(xiàn)默認(rèn)的ip為 10.0.2.15,可以ping 通宿主機(jī)ip (有可能顯示沒有ping這個(gè)命令,很正常,使用 apt-get install iputils-ping 安裝),并且可以連網(wǎng),而宿主機(jī)ping不通 虛擬機(jī)10.0.2.15
這是由于 虛擬機(jī)使用的是NAT網(wǎng)絡(luò)模式,由qemu負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,數(shù)據(jù)包首先發(fā)送到虛擬化網(wǎng)絡(luò)中的網(wǎng)關(guān),也就是虛擬網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)代表了宿主機(jī)在虛擬網(wǎng)絡(luò)中的身份。該網(wǎng)關(guān)會(huì)負(fù)責(zé)將數(shù)據(jù)包轉(zhuǎn)發(fā)到宿主機(jī)所在的物理網(wǎng)絡(luò)中,從而宿主機(jī)能夠收到來自虛擬機(jī)的請(qǐng)求
虛擬機(jī)中下載 一些工具:
apt-get install -y iputils-ping? ?//ping? ,上面安裝了下面就不用安裝了
apt-get install -y net-tools? ? // 下載 ifconfig
apt-get install -y ssh? ? ? // 下載ssh服務(wù)
7、實(shí)現(xiàn) 宿主機(jī)可以通過 ssh 進(jìn)入 虛擬機(jī)
此部分參考鏈接:
訪問qemu虛擬機(jī)的五種姿勢(shì)_進(jìn)入qemu_RichardYSteven的博客-CSDN博客
宿主機(jī)側(cè):
apt install net-tools? ?// 下載ifconfig
apt install uml-utilities? // 下載tunctl
brctl addbr virbr0? ?//創(chuàng)建網(wǎng)橋,名字是virbr0
ifconfig virbr0 192.168.122.1 netmask 255.255.255.0 up? // 配置網(wǎng)橋
tunctl -t tap0? ? // 創(chuàng)建tap接口,名字為tap0
ifconfig tap0 0.0.0.0 up? ? ?// 配置 tap0
brctl addif virbr0 tap0? ? ? // 將 tap0 放在 virbr0 內(nèi)
啟動(dòng)虛擬機(jī):(這兒命令變了,添加了-netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet)這兒tap0 和上面一致
qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0?-netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet
此命令添加了一張和 宿主機(jī)組 tap的網(wǎng)口
在虛擬機(jī)側(cè):
ifconfig ens3 192.168.122.100 netmask 255.255.255.0 up? ?//設(shè)置上面一個(gè)網(wǎng)段的ip,ens3根據(jù)自己實(shí)際的網(wǎng)口名替換
至此,你可以在宿主機(jī)側(cè)?通過? ssh 進(jìn)入虛擬機(jī)
ps:
1、ubuntu 創(chuàng)建后第一次給root設(shè)置密碼:sudo passwd root
2、如果想使用 root 用戶登錄?vi /etc/ssh/sshd_config?
添加/修改??PermitRootLogin yes文章來源:http://www.zghlxwxcb.cn/news/detail-733962.html
systemctl restart sshd文章來源地址http://www.zghlxwxcb.cn/news/detail-733962.html
到了這里,關(guān)于ubuntu22.04 x86環(huán)境上使用QEMU搭建arm虛擬機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!