type
status
date
slug
summary
tags
category
icon
password
1、问题描述
今天闲鱼一位客户跟我联系,说:
经我测试后发现:
1.1、所有黑裙引导都存在此问题
即使用我自己编译的群晖引导,也会出现安装进度到达 57% 时失联的情况,具体体现为 CPU 某一个单核满载、虚拟机断网无法访问。
1.2、与虚拟机核心数、内存、机型或者 BIOS 无关
虚拟机不管使用:
- 多少个 CPU 核心;
- 多大内存;
- 什么机型(Q35/i440fx)
- 还是 BIOS(SeaBIOS / OVMF)
等都一样出现同样的问题。
1.3、无关网络问题
一开始我是网络问题,然后根据这个为出发点去调整 Docker 的:
- network type(ipvlan / macvlan)
- Host access to custom networks
等设置都还是出现一样的问题。
我还特地检查了路由器的情况,因为我发现路由器的日志中一直提示 unRAID 的 MAC 地址变化的情况:不过后面检擦发现这个变动的 MAC 地址是由于 “Host access to custom networks” 引申出来的 shim-br0 的 MAC 地址导致的:
1.3、偶尔可能会安装成功
但是在上面这些条件不变的偶然情况下可以安装成功,但是很难复现成功的情况,基本安装十次才可能有一次能够安装上;
我测试安装成功的那一次是把 Docker 服务停掉之后出现的,所以我以为是 Docker 导致的,但后面发现并不是,即使把 Docker 服务停掉也依然有无法安装的现象。
2、实际原因:CPU 虚拟化相关导致
在我测试了很多可能的因素之后,最后发现是由于 CPU 虚拟化这一块问题所导致的,那就是在设置 “CPU 模式” 的时候选择 “模拟(QEMU64)” 可以解决此问题:
之所以考虑到是这个的原因,是因为出现此问题时总是伴随着 CPU 的某一个核心占满的情况。当选择了 “模拟(QEMU64)” 这种模式之后,群晖就可以正常安装了。
当正常安装好之后,我将模式切换为“主机直通”也可以正常使用。
(完)