起因
最近廠里一批 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 處了。