我正在构建一个 CentOS 5.4 系统,该系统使用模拟 IDE 驱动器的读卡器启动紧凑型闪存卡。从字面上看,启动大约需要一个小时。超慢部分发生在 Grub 加载内核时。完成后,启动过程的其余部分只需大约一分钟即可进入登录提示。有没有人有什么建议?
我怀疑这可能与 UDMA 有关。我的 BIOS 中与 IDE 相关的所有内容似乎都已检出。读取性能 hdparm 告诉我 1.77 MB/s。哎哟! (但即使以这样的速度,解压和加载内核也不应该花一个小时)
[root@server ~]# hdparm -tT /dev/hdc
/dev/hdc:
Timing cached reads: 2444 MB in 2.00 seconds = 1222.04 MB/sec
Timing buffered disk reads: 6 MB in 3.39 seconds = 1.77 MB/sec
尝试启用 DMA 是不行的:
[root@server ~]# hdparm -d1 /dev/hdc
/dev/hdc:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
以下是一些可能有帮助的命令输出:
系统
[root@server ~]# uname -a
Linux server.localdomain 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux
PCI信息:
[root@server ~]# lspci -v
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
Subsystem: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub
Flags: bus master, fast devsel, latency 0
Capabilities: [e0] Vendor Specific Information
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation 82945G/GZ Integrated Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at fdf00000 (32-bit, non-prefetchable) [size=512K]
I/O ports at ff00 [size=8]
Memory at d0000000 (32-bit, prefetchable) [size=256M]
Memory at fdf80000 (32-bit, non-prefetchable) [size=256K]
Capabilities: [90] Message Signalled Interrupts: 64bit- Queue=0/0 Enable-
Capabilities: [d0] Power Management version 2
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1
Flags: bus master, medium devsel, latency 0, IRQ 16
I/O ports at fe00 [size=32]
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2
Flags: bus master, medium devsel, latency 0, IRQ 17
I/O ports at fd00 [size=32]
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3
Flags: bus master, medium devsel, latency 0, IRQ 18
I/O ports at fc00 [size=32]
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01) (prog-if 00 [UHCI])
Subsystem: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4
Flags: bus master, medium devsel, latency 0, IRQ 19
I/O ports at fb00 [size=32]
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01) (prog-if 20 [EHCI])
Subsystem: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller
Flags: bus master, medium devsel, latency 0, IRQ 16
Memory at fdfff000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Capabilities: [58] Debug port
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) (prog-if 01 [Subtractive decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fde00000-fdefffff
Prefetchable memory behind bridge: 00000000fdd00000-00000000fdd00000
Capabilities: [50] #0d [0000]
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
Subsystem: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge
Flags: bus master, medium devsel, latency 0
Capabilities: [e0] Vendor Specific Information
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01) (prog-if 80 [Master])
Subsystem: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 17
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at <unassigned>
I/O ports at f800 [size=16]
Capabilities: [70] Power Management version 2
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
Subsystem: Intel Corporation 82801G (ICH7 Family) SMBus Controller
Flags: medium devsel, IRQ 17
I/O ports at 0500 [size=32]
01:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
Flags: bus master, medium devsel, latency 32, IRQ 18
I/O ports at de00 [size=256]
Memory at fdeff000 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
01:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
Flags: bus master, medium devsel, latency 32, IRQ 17
I/O ports at dc00 [size=256]
Memory at fdefe000 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
Flags: bus master, medium devsel, latency 32, IRQ 19
I/O ports at da00 [size=256]
Memory at fdefd000 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
hdparm 输出:
[root@server ~]# hdparm /dev/hdc
/dev/hdc:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 8146/16/63, sectors = 8211168, start = 0
[root@server ~]# hdparm -I /dev/hdc
/dev/hdc:
ATA device, with non-removable media
Model Number: InnoDisk Corp. - iCF4000 4GB
Serial Number: 20091023AACA70000753
Firmware Revision: 081107
Standards:
Supported: 5
Likely used: 6
Configuration:
Logical max current
cylinders 8146 8146
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 8211168
LBA user addressable sectors: 8211168
device size with M = 1024*1024: 4009 MBytes
device size with M = 1000*1000: 4204 MBytes (4 GB)
Capabilities:
LBA, IORDY(can be disabled)
Standby timer values: spec'd by Vendor
R/W multiple sector transfer: Max = 2 Current = 2
DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* Power Management feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* CFA feature set
* Mandatory FLUSH_CACHE
HW reset results:
CBLID- above Vih
Device num = 0
CFA power mode 1:
enabled and required by some commands
Maximum current = 100ma
Checksum: correct
编辑: 通过“GRUB loading stage 2 ...”消息大约需要 5 分钟。我得出的结论是,问题可能是:引导加载程序、BIOS/固件或硬件问题。我已经玩过所有相关的 BIOS 设置,但没有任何运气,并更换了我的 IDE 电缆,以防万一我有一个坏的。我订购了一张新的紧凑型闪存卡(不同品牌),但要过几天才能到这里。我目前也在运行 Memtest86,看看我的 RAM 是否有奇怪的问题。完成后,我将查看是否有适用于我的主板的固件更新。
问题解决了!
奇怪的是,在 BIOS 中禁用UDMA 解决了这个问题。
感谢这个 Ubuntu 线程有答案。也感谢这里的每个人的建议!
您很可能没有在内核中构建正确的驱动程序。此外,请确保您的 IDE 控制器已在 BIOS 中启用。
否则,请发布 /var/log/dmesg 的内容
谢谢
在内核文件上尝试 GRUB
testload
命令 - 这也很慢吗?我觉得你的磁盘缓冲区很慢!!其余的事情在我看来还可以..
以下来自我正在运行的带有 SATA 的服务器