虚拟化(4):qemu+kernel X86架构上搭建ARM64环境
应用场景:X86上可以通过交叉编译搭建ARM64环境, 如果有些东西只能在arm64上编译,但是只有X86的编译环境
1.基础工具
sudo apt update
sudo apt install qemu-system-aarch64 qemu-efi-aarch64 cloud-image-utils
2.获取arm64 ubuntu镜像
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-arm64.img
这一步也可以手动下载自己需要镜像,有的时候可能下载比较慢
3.创建用户数据(必选,因为如果没有这一步,不知道登录密码)
# 创建 user-data 文件
cat > user-data <<EOF
#cloud-config
password: ubuntu
chpasswd: { expire: False }
ssh_pwauth: True
EOF
# 生成 cloud-init ISO
cloud-localds user-data.img user-data
启动虚拟机
sudo qemu-system-aarch64 \
-M virt \
-cpu cortex-a57 \
-smp 4 \
-m 4096 \
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
-drive file=jammy-server-cloudimg-arm64.img,format=qcow2 \
-drive file=user-data.img,format=raw \ # 如果创建了 user-data
-nic user,hostfwd=tcp::2222-:22 \
-nographic
实现交互
本地机器需要和qemu进行交互,进行文件交换
sudo qemu-system-aarch64 -M virt -cpu cortex-a57 -smp 4 -m 4096 -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -drive file=noble-server-cloudimg-arm64.img,format=qcow2 -drive file=user-data.img,format=raw -nic user,hostfwd=tcp::2222-:22 -virtfs local,path=/local/mnt/workspace/hamoa/76_ubuntu,mount_tag=hostshare,security_model=none,id=hostshare -nographic
-virtfs local,path=/local/mnt/workspace/hamoa/76_ubuntu,mount_tag=hostshare,security_model=none,id=hostshare
加了一行这个,path那个部分是需要挂载的目录,security_model=none是保证自己有root权限,因为我并不希望看到permission denied.
sudo umount /mnt/host # 先卸载 sudo mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/host chmod 777 /mnt/host # 开放所有权限
qemu+kernel 文章被收录于专栏
qemu+kernel

