qemu+kernel (4) 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 # 开放所有权限