如何在LINUX下实现硬件的自动检测

如何在LINUX下实现硬件的自动检测,第1张

1,在linux下,有多种命令可以用于查看硬件信息:

用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart);

查看CPU信息:cat /proc/cpuinfo;

查看板卡信息:cat /proc/pci;

查看PCI信息:lspci (相比cat /proc/pci更直观);

查看内存信息:cat /proc/meminfo;

查看USB设备:cat /proc/bus/usb/devices;

查看键盘和鼠标:cat /proc/bus/input/devices;

查看系统硬盘信息和使用情况:fdisk &disk – l &df;

查看各设备的中断请求(IRQ):cat /proc/interrupts;

查看启动硬件检测信息日志:dmesg more /var/log/dmesg。

2,几种查看Linux版本信息的方法:

uname -a;

cat /proc/version;

cat /etc/issue;

lsb_release -a;

cat /etc/redhat-release;

rpm -q redhat-release。

爱应用为您解答:

解决方案

什么是S.M.A.R.T.

随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要

90年代如果一块硬盘故障,可能损失掉几百MB或者几个GB的数据

而今,单块硬盘存储容量可轻松达到500GB,硬盘损坏带来的影响非常巨大

SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及

每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来

这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等

硬盘运行了几千小时后,很多内在的物理参数都会发生变化

某一参数超过报警阈值,则说明硬盘接近损坏

此时硬盘依然在工作,如果用户不理睬这个报警继续使用

那么硬盘将变得非常不可靠,随时可能故障

启用SMART

SMART是和主板BIOS上相应功能配合的

要使用SMART,必须先进入到主板BIOS设置里边启动相关设置

一般从Pentium2级别起的主板,都支持SMART

BIOS启动以后,就是 *** 作系统级别的事情了

很遗憾,Windows没有内置SMART相关工具(需要安装第三方工具软件)

好在Linux上很早就有了SMART支持了

如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd

这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错)

首先通过dmesg工具,确认一下硬盘的设备符号

例如一个IDE硬盘连接到Primary IDE 总线上的Slave位置,硬盘设备符号是/dev/hdb

hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI

最后一个字幕b代表Primary总线,第二块硬盘即Slave位置

确认硬盘是否打开了SMART支持

smartctl -i /dev/hdb

例如看到如下返回结果

[[email protected] ~]# smartctl -i /dev/hdb

smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===

Device Model: ST380011A

Serial Number: 3JVAPRGH

Firmware Version: 3.04

User Capacity: 80,026,361,856 bytes

Device is: In smartctl database [for details use: -P show]

ATA Version is: 6

ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2

Local Time is: Tue Apr 3 15:39:52 2007 CST

SMART support is: Available - device has SMART capability.

SMART support is: Disabled

SMART Disabled. Use option -s with argument 'on' to enable it.

[[email protected] ~]#

例如,我们从下边可以看到SMART support is: Disabled表示SMART未启用

执行如下命令,启动SMART:

smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb

例如看到如下返回结果

[[email protected] ~]# smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb

smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

Home page is http://smartmontools.sourceforge.net/

=== START OF ENABLE/DISABLE COMMANDS SECTION ===

SMART Enabled.

SMART Attribute Autosave Enabled.

SMART Automatic Offline Testing Enabled every four hours.

[[email protected] ~]#

现在硬盘的SMART功能已经被打开

执行如下命令查看硬盘的健康状况:

smartctl -H /dev/hda

例如可以看到如下结果:

[[email protected] ~]# smartctl -H /dev/hdb

smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

[[email protected] ~]#

请注意result后边的结果:PASSED,这表示硬盘健康状态良好

如果这里显示Failure,那么最好立刻给服务器更换硬盘

SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的

通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间

有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了

但是一旦出现报警,侥幸心里是万万不能的……

执行如下命令可以看到详细的参数:

smartctl -A /dev/hdb

例如可以看到如下结果:

[[email protected] ~]# smartctl -A /dev/hdb

smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000f 053 051 006 Pre-fail Always - 11338710

3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0

4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 17

5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0

7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 610059516

9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 11974

10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0

12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 110

194 Temperature_Celsius 0x0022 045 052 000 Old_age Always - 45

195 Hardware_ECC_Recovered 0x001a 053 051 000 Old_age Always - 11338710

197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0

198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0

199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0

200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0

202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

[[email protected] ~]#

上边列出的参数表中可供进行技术分析和参考,使用下边的命令可以输出完整结果:

smartctl -a /dev/hdb

定期登录到服务器上运行smartctl是比较麻烦的,Linux提供了系统进程smartd

编辑配置文件:

vi /etc/smartd.conf

这个配置文件中大部分可能是注释掉的说明,只需要和当前硬盘相关的一行写入正确即可:

/dev/hdb -H -m [email protected]

上边的配置表示smartd以静默状态工作,当SMART中报告PASSED的时候不理睬

一旦出现Failure,立刻用邮件通知用户指定的邮箱

修改配置后重启服务:

/etc/init.d/smartd

即可完成对SMART的全部配置。

lbios设置linux启动

1、内核引导

首先是bios自检,按照bios设置的启动设备(通常是硬盘)来启动。

*** 作系统接管硬件后,首先读入/boot目录下的内核文件。

2、运行init

init进程是所有进程的起点,init程序首先要读取配置文件/etc/initlab

许多程序需要开机启动,在windows叫服务,在linux叫做守护进程。

init进程的一大任务就是去运行这些开机进程。但是不懂情况需要运行的进程也不一样,如果作服务器就需要运行apache,如果个人使用则不需要。

所以linux允许不同情况运行不同的开机程序,这个叫做运行级别。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7375380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存