@
msg7086 @
wex 这个是 CentOS 7 在 VMware 上已知的一个 BUG, 这个 BUG 会导致自动安装时网卡配置错误.
这个 BUG 是怎么来的呢? 储存网卡 ID 的变量有 24 位, 取值范围是 0 ~ 2^24 - 1. 错误配置的网卡名为 eto166777714x, 可见其 ID 为 166777714 = 2^24 - 2, 因此, 可以推断, 错误的代码大致为:
int24_t get_eth_id(void) { return (uint24_t) (-1); }
uint24_t eth_id = get_eth_id();
if(eth_id == (uint24_t) (-1)) { /* Error */ }
开发人员不小心把本应该是 uint24(无符号 24 位整数)的返回值类型写成了 int24_t(有符号 24 位整数), 换而言之, 他少打了一个字母 u.
已经有人把这个 bug 上报给 VMware 了(不是我), 不过我估计是 CentOS 的安装程序的问题. 楼主 @
wex 你用的操作系统是不是 Win10? 因为 Win10 重写了硬件虚拟层的代码, 这样会导致安装网卡驱动的时候, 安装程序跳到一个不常见的分支(你的网卡驱动+虚拟硬件层+VMware), 而那个分支写错了返回值......
如果确定这个 Bug 只在 Win10 下出现, 我会考虑给 CentOS 发 PR, 毕竟我懂怎么修......