背景: 想尝试下国产nas操作系统飞牛os,然后决定要不要上实体硬件. 手头就一台mac, m3芯片.
尝试了 virtualBox, 行不通: 当前版本(7.1.6)虽然支持了苹果m3芯片, 但是只能模拟出arm芯片. 而飞牛os(0.8.41)当前只支持x86芯片. 有资料说virtualBox在哪里能打开x86的支持,但是一番折腾后没找到,放弃. 过程中查到qemu能在arm芯片上模拟出x86.
是时候接触一下大名鼎鼎的 qemu了
1. 安装 qemu
brew install qemu
2. 下载飞牛os的iso
地址: https://www.fnnas.com/download
这里得到的版本是 TRIM-0.8.41-756.iso
飞牛os是专为nas场景设计的操作系统,基于x86版本的Debian系统.
3. 创建虚拟磁盘,作为系统盘
qemu-img create -f qcow2 qemu-fnos/fnos.qcow2 30G
参数含义:
-f qcow2 指定磁盘镜像格式为 qcow2
磁盘镜像文件为 qemu-fnos/fnos.qcow2
大小30G
4. 加载镜像启动虚拟机
qemu-system-x86_64 \
-m 4096 -smp 2 \
-hda qemu-fnos/fnos.qcow2 \
-cdrom TRIM-0.8.41-756.iso \
-boot d \
-accel tcg \
-display cocoa
然后回打开一个窗口,想bios一样,按提示安装飞牛os即可.
参数含义
-m 4096 内存 4096M
-smp 2 模拟2核
-hda qemu-fnos/fnos.qcow2 加载磁盘镜像文件 qemu-fnos/fnos.qcow2
-cdrom TRIM-0.8.41-756.iso 加载cdrom镜像文件
-boot d
-accel tcg 加速方案用 tcg(性能不高,勉强用)
-display cocoa 显示方案用 cocoa
5. 启动已安装的操作系统
qemu-system-x86_64 \
-m 4096 -smp 2 \
-hda qemu-fnos/fnos.qcow2 \
-accel tcg \
-display cocoa \
-nic user,hostfwd=tcp::2222-:22,hostfwd=tcp::5666-:5666
参数含义
-nic user,hostfwd=tcp::2222-:22,hostfwd=tcp::5666-:5666 配置端口转发宿主机tcp 2222转发到虚拟机22, 宿主机tcp 5666转发到虚拟机5666
22是ssh登录端口
5666是飞牛os web登录端口
账号后开机界面
宿主机web访问: http://127.0.0.1:5666/
装好后,第一次开机, 会要求设置用户名密码
默认不会打开 ssh 服务, 在界面中打开
开启ssh服务后
宿主机ssh访问: ssh <用户名>@127.0.0.1 -p 2222
6. 创建一块新虚拟磁盘
qemu-img create -f qcow2 qemu-fnos/fnos-disk1.qcow2 30G
7. 加载新创建的虚拟磁盘
qemu-system-x86_64 \
-m 4096 -smp 4 \
-cpu Skylake-Server-v1 \
-hda qemu-fnos/fnos.qcow2 \
-drive file=qemu-fnos/fnos-disk1.qcow2,format=qcow2,if=virtio \
-nic user,hostfwd=tcp::2222-:22,hostfwd=tcp::5666-:5666,hostfwd=tcp::19000-:9000,hostfwd=tcp::19001-:9001 \
-accel tcg,thread=multi \
-display cocoa
参数含义
-cpu Skylake-Server-v1 模拟的cpu型号
-drive file=qemu-fnos/fnos-disk1.qcow2,format=qcow2,if=virtio 挂载新磁盘
添加新磁盘后接着玩
8. docker里装个 minio 试试应用
测试发现, 界面里启动docker存在一些bug(猜测可能是某些转义没处理好,比如启动命令参数 ":9001" 总是识别不了), 不如ssh进去后bash启动来的麻烦少. 而bash操作的docker结果,也能在界面中同步反应出来
在宿主机里,minio客户端 mc 也可以连上虚拟机里的minio server
9. 使用感受
- 飞牛os做的挺好,界面干净, 功能使用不花哨, 但可能一些功能还有bug.
- docker支持真实选对了重点,docker支持好了,能用的范围就大大增加了,飞牛对docker的支持比群晖要好太多了.
- 在mac m3芯片上,用qemu虚拟x86还是太慢了,跑起来是真慢.这可是没有启动操作系统GUI的情况下,操作通过web ui进行, GUI是不敢装了. 当然也可能是新手qemu,参数没选到高效的(有了解的网友请留言交流一下)