3

使用QEMU配置一台虚拟MIPS系统

 2 years ago
source link: https://blog.sbw.so/u/create-mips-virtual-machine-in-qemu.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用QEMU配置一台虚拟MIPS系统

来源: sbw Blog | 浏览: 5449 | 评论: 1 发表时间: 2020-02-27

最近在MIPS上搞点事情,为了方便测试,就想着配一台MIPS虚拟机来用。由于QEMU对各种架构的虚拟化都支持的很好,所以当然选择用QEMU来运行虚拟机。另外,还需要一个具有官方MIPS支持的Linux发行版,我选择的是Debian的最新版ISO。安装过程倒也顺利,只是由于没有BIOS固件,在安装完成后需要一些特殊操作来辅助启动。

首先准备工具,安装应该大部分Linux发行版都把QEMU进行了拆包,默认的x86系统安装的QEMU只能用来运行x86虚拟机,需要安装额外的架构支持包,在Archlinux下需要安装qemu-arch-extra包来解锁更多架构。

由于Debian对mips架构有着官方支持,也算是流行度很高的发行版,所以就选择了Debian。下载Debian的最新ISO,由于安装的时候可以直接配置源进行软件下载,所以建议下载最小ISO即可,带基础软件的ISO即使下回来了,配置本地源也很麻烦。

创建虚拟机

先创建虚拟磁盘,这里使用qemu最新科技qcow2格式。

qemu-img create -f qcow2 debian-mips.img 10G

然后将下载好的iso挂载起来,随便挂载到哪个目录都可以。

sudo mount -o loop debian-10.3.0-mips.iso debian-mips-iso/

然后使用qemu-system-mips启动虚拟机。

qemu-system-mips -m 2048 -M malta -kernel debian-mips-iso/install/malta/netboot/vmlinux-4.19.0-8-4kc-malta -initrd debian-mips-iso/install/malta/netboot/initrd.gz -append "console=ttyS0" -nographic  -drive file=debian-mips.img,format=qcow2

-m: 分配给虚拟机的内存大小

-M: 虚拟的系统类型,可以执行 -M '?' 来查看

-kernel: 指定启动内核

-initrd: 指定initramfs映像

-append: 启动参数,这里是指定一个虚拟串口

-nographic: 无图形输出

-drive: 指定磁盘映像文件

安装虚拟系统

如果启动正常,就会看到内核的boot输出,最终进入到一个TUI的安装界面。

qemu-boot-debian-mips-tui-install

跟着安装流程一步步走就可以,需要注意的是一定要提前测试一下哪个源速度比较好,或者配置一下代理(在安装步骤中有个询问是否设置代理的,不过只支持HTTP代理)。因为之后我们也可以再安装软件,所以这里建议就不要选择任何的额外安装,尽快走完流程即可。

最后安装完成时会自动关机,不过在启动新系统之前还有些额外工作要做。在安装完成时会有个警告告诉你,启动的时候需要手动指定vmlinux内核文件和参数。因为我们没有BIOS固件,所以新系统启动依然需要手动指定一下,所以我们要把新生成的内核映像从新虚拟机系统里拷出来。

可以使用qemu-nbd来挂载qcow2格式的虚拟磁盘映像,不过要先确认nbd驱动有没有加载到内核中。使用lsmod | grep nbd检查,如果没有输出,则使用modprobe nbd max_part=16来加载驱动。

使用qemu-nbd -c /dev/nbd0 debian-mips.img来挂载磁盘映像,然后就可以通过lsblk来显示出虚拟磁盘的分区了。

将根分区挂载起来,把内核映像文件(我这里是vmlinux-4.19.0-8-4kc-malta)拷贝出来即可。

然后使用umount卸载根分区,再使用qemu-nbd -d /dev/nbd0卸载磁盘映像。

到些为止就完成了新虚拟机的所有配置工作。接下来就可以启动了。

qemu-system-mips -m 2048 -M malta -kernel vmlinux-4.19.0-8-4kc-malta -initrd initrd.img-4.19.0-8-4kc-malta -append "root=/dev/sda1 console=ttyS0" -nographic  -drive file=debian-mips.img,format=qcow2

qemu-virtual-machine-debian-mips-login

也可以去掉-nographic参数,启动GUI界面:

qemu-virtual-machine-debian-mips-gui

一切正常,剩下的配置和操作都和正常的linux或qemu用法一致了。另外,我这里备份了安装完毕后的虚拟磁盘文件,以及内核和内存映像,需要免去安装直接运行的可以联系我获取


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK