วันนี้จะลองแก้ปัญหา docker image ให้เพื่อนบน M1 ก็เลยหาทางเอา docker มารันบน Arm64 แต่ไม่คิดว่าขั้นตอนมันจะเยอะกว่าที่คิด เพราะ VMWare Fusion ที่มีอยู่ไม่พอ ต้องหา emulator มาแปลงอีกที จดที่ตัวเองทำไว้ก่อน เพราะมี step เยอะกว่าที่คิดมาก
- Install qemu,
sudo apt-get install qemu-system-arm
- Download debian qemu image จาก https://cdimage.debian.org/cdimage/openstack/current/ เลือก image ที่เป็น arm64, qcow2
- Resize image,
qemu-img resize debian-10-openstack-arm64.qcow2 +18G
- เพิ่ม ssh key เพื่อให้ ssh เข้าไปเล่นได้
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd0 debian-10-openstack-arm64.qcow2
sudo mount /dev/nbd0p2 /mnt
sudo mkdir -p /mnt/home/debian/.ssh
sudo chown -R 1000:1000 /mnt/home/debian
cat ~/.ssh/id_rsa.pub > /mnt/home/debian/.ssh/authorized_keys
chmod 600 /mnt/home/debian/.ssh/authorized_keys
sudo umount /mnt
sudo qemu-nbd -d /dev/nbd0
- สุดท้ายเรียก qemu รัน image ขึ้นมา
qemu-system-aarch64 -m 8G -M virt -cpu max \
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
-drive if=none,file=debian-10-openstack-arm64.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 \
-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:5555-:22 \
-nographic