起因
最近厂里一批 dell 新机器 centos 6.3 装机卡在 Unsupported Hardware Detected
页面,要人肉点击 OK 才能继续装机:
Unsupported Hardware Detected
This hardware (or a combination thereof) is not supported by Red Hat.
For more information on supported hardware, please refer to http://www.redhat.com/hardware.
google 了一下 unsupported hardware
关键词,RHEL 手册提到 kickstart 有个 unsupported_hardware
可选项:
unsupported_hardware (optional)
Tells the installer to suppress the Unsupported Hardware Detected alert.
If this command is not included and unsupported hardware is detected, the installation will stall at this alert.
在 ks 文件中加上这行,结果空欢喜一场,安装程序提示说不认识这个字段。又找了一翻 redhat 6.4 的发行注记说,
从 6.4 开始才新添加 kickstart 的 unsupported_hardware
命令:
BZ#824963
A kickstart installation on unsupported hardware resulted in a dialog box asking for confirmation before proceeding with the installation process. As a consequence, it was not possible to perform a kickstart installation
on unsupported hardware without any user input. To fix this bug, a new unsupported_hardware
kickstart command has been added, which skips the interactive dialog warning when installing a system on unsupported hardware without user input.
这批机器要安装的 OS 版本是 centos 6.3 的,没法用到这个新的 ks 选项。上面的官方文档有误导性 -_-#
经过
既然出现这个提示,那就找找是什么触发的警告,卡在这个页面时。按 Alt + F2
进入交互式 console
在 dmesg|less -i
中搜索 unsupported
关键字,找到下面这段内核报错:
Booting paravirtualized kernel on bare hardware
Detected CPU family 6 model 62
UNSUPPORTED HARDWARE DEVICE: CPU family 6 model > 59
------------[ cut here ]------------
WARNING: at kernel/rh_taint.c:13 mark_hardware_unsupported+0x39/0x40() (Not tainted)
Hardware name: PowerEdge R620
Your hardware is unsupported. Please do not report bugs, panics, oopses, etc., on this hardware.
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.32-279.el6.x86_64 #1
Call Trace:
[<ffffffff8106b747>] ? warn_slowpath_common+0x87/0xc0
[<ffffffff8106b7df>] ? warn_slowpath_fmt_taint+0x3f/0x50
[<ffffffff8109a869>] ? mark_hardware_unsupported+0x39/0x40
[<ffffffff81c27b5d>] ? setup_arch+0xb1f/0xb42
[<ffffffff814fd223>] ? printk+0x41/0x46
[<ffffffff81c21c33>] ? start_kernel+0xdc/0x430
[<ffffffff81c2133a>] ? x86_64_start_reservations+0x125/0x129
[<ffffffff81c21438>] ? x86_64_start_kernel+0xfa/0x109
---[ end trace a7919e7f17c0a725 ]---
NR_CPUS:4096 nr_cpumask_bits:48 nr_cpu_ids:48 nr_node_ids:2
PERCPU: Embedded 31 pages/cpu @ffff880060600000 s94424 r8192 d24360 u131072
pcpu-alloc: s94424 r8192 d24360 u131072 alloc=1*2097152
pcpu-alloc: [0] 00 02 04 06 08 10 12 14 16 18 20 22 24 26 28 30
pcpu-alloc: [0] 32 34 36 38 40 42 44 46 -- -- -- -- -- -- -- --
pcpu-alloc: [1] 01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31
pcpu-alloc: [1] 33 35 37 39 41 43 45 47 -- -- -- -- -- -- -- --
Built 2 zonelists in Zone order, mobility grouping on. Total pages: 33080355
Policy zone: Normal
这批 dell R620 CPU 型号是: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
内核识别的 CPU family model 是 62 太新了吧,然后就崩了。
结果
上面的报错信息,只能说,软件得跟着硬件一起升级啊
既然 PXE 的引导 kernel 太旧,那就更新一下,用的 centos 6.4 的 pxe 引导文件替换掉 centos 6.3 的:
centos6.4-x86_64/images/pxeboot/vmlinuz
centos6.4-x86_64/images/pxeboot/initrd.img
然后,重新从网络引导,装机就没有出现 CPU family model 的报错,就没有再卡在 unsupported_hardware 处了。