参考:https://www.jianshu.com/p/aef9e3f78adb
安装:
对没错我就是那个在Windows下折腾qemu的*b
我现在也不知道为什么安装装不上bootloader,所以只能用-kernel
,-initrd
直接启动
首先下载安装要用的kernel和initrd,在各个镜像站的/debian/dists/Debian11.1/main/installer-arm64/current/images/cdrom/
目录下,Debian11.1
换成需要安装的版本,这里是11.1
然后下载相应的镜像,我这里下载的是debian-11.1.0-arm64-netinst.iso
创建虚拟硬盘镜像,我这里为了方便提取内核(win下的DiskGenius)用的raw格式:qemu-img create -f raw debian_arm64.qcow2 10G
qemu官方推荐qcow2
格式,linux/wsl选手可以用这个格式
然后启动模拟器安装debian:
"C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-machine virt -cpu cortex-a72 -smp 2 -m size=2048M ^
-nic user ^
-drive if=none,file=debian_arm64.qcow2,id=hd0 ^
-device virtio-blk-device,drive=hd0 ^
-drive if=none,file=debian-11.1.0-arm64-netinst.iso,id=cd0,media=cdrom ^
-device virtio-scsi-device -device scsi-cd,drive=cd0 ^
-kernel "D:\VM\debian_arm64_vmlinuz" ^
-initrd "D:\VM\debian_arm64_initrd.gz"
由于Windows的cmd不能正确处理彩色字符,这里建议不要加-nographic
,使用GUI的serial窗口操作安装程序(虽然还是谜语)
装好之后,需要把虚拟硬盘镜像的/boot
分区的东西搞出来,这里我用的diskgenius,把所有东西复制到boot
文件夹
最后就是正常使用时的启动,这里把“虚拟机”(或者应该叫模拟器)的22端口映射到了主机的127.0.0.1:22
以方便ssh连接,同时需要传递root
参数,否则内核不知道去哪里找根目录:
"C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-machine virt -cpu cortex-a72 -smp 2 -m size=2048M ^
-nic user,hostfwd=tcp:127.0.0.1:22-:22 ^
-drive if=none,format=raw,file=debian_arm64.img,id=hd0 ^
-device virtio-blk-device,drive=hd0 ^
-kernel .\boot\vmlinuz-5.10.0-9-arm64 ^
-initrd .\boot\initrd.img-5.10.0-9-arm64 ^
-append "root=/dev/vda2" ^
-nographic
注:win平台建议配置好sshd再加-nographic
还没有涉及到内核更新情况,如果内核需要更新应该也需要重新导出/boot
分区文件
折腾用过的指令
创建qcow2格式硬盘镜像(固定大小),preallocation
为falloc
或full
时均会失败:qemu-img create -f qcow2 -o preallocation=metadata debian_arm64.qcow2 10G
改变镜像大小为10G:qemu-img resize debian-10-openstack-arm64.qcow2 10G
预分配所有空间(固定大小),preallocation
同创建:qemu-img convert -f qcow2 -O qcow2 -o preallocation=metadata old.qcow2 new.qcow2
Views: 38