请考虑以下kern.log片段:

ata4.00: failed command: WRITE FPDMA QUEUED

ata4.00: cmd 61/00:78:40:1e:6c/04:00:f0:00:00/40 tag 15 ncq 524288 out

res 41/04:00:00:00:00/04:00:00:00:00/00 Emask 0x1 (device error)

ata4.00: status: { DRDY ERR }

ata4.00: error: { ABRT }

ata4: hard resetting link

ata4: nv: skipping hardreset on occupied port

ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)

ata4.00: configured for UDMA/133

ata4: EH complete

如何确定内核在谈到ata4.00时实际意味着哪个硬盘?

如何找到相应的/ dev / sdY设备名称?

解决方法:

您可以通过遍历/ sys树找到相应的/ dev / sdY设备:

$find /sys/devices | grep '/ata[0-9]\+/.*/block/s[^/]\+$' \

| sed 's@^.\+/\(ata[0-9]\+\)/.\+/block/\(.\+\)$@\1 => /dev/\2@'

使用更有效的/ sys遍历(参见lsata.sh):

$echo /sys/class/ata_port/ata*/../../host*/target*/*/block/s* | tr ' ' '\n' \

| awk -F/ '{printf("%s => /dev/%s\n", $5, $NF)}'

2磁盘系统的示例输出:

ata1 => /dev/sda

ata2 => /dev/sdb

然后,为了可靠地识别您需要将/ dev / sdY映射到序列号的实际硬件,例如:

$ls /dev/disk/by-id -l | grep 'ata.*sd[a-zA-Z]$'

lssci

lssci实用程序也可用于派生映射:

$lsscsi | sed 's@^\[\([^:]\+\).\+\(/dev/.\+\)$@\1,\2@' \

| awk -F, '{ printf("ata%d => %s\n", $1+1, $2) }'

请注意,相关的lsscsi枚举从0开始,而ata枚举从0开始.

系统日志

如果没有其他工作,可以查看syslog / journal来派生映射.

/ dev / sdY设备的创建顺序与在kern.log中枚举ataX标识符的顺序相同,同时忽略非磁盘设备(ATAPI)和未连接的链接.

因此,以下命令显示映射:

$grep '^May 28 2' /var/log/kern.log.0 | \

grep 'ata[0-9]\+.[0-9][0-9]: ATA-' | \

sed 's/^.*\] ata//' | \

sort -n | sed 's/:.*//' | \

awk ' { a="ata" $1; printf("%10s is /dev/sd%c\n", a, 96+NR); }'

ata1.00 is /dev/sda

ata3.00 is /dev/sdb

ata5.00 is /dev/sdc

ata7.00 is /dev/sdd

ata8.00 is /dev/sde

ata10.00 is /dev/sdf

(请注意,不显示ata4,因为上述日志消息来自其他系统.)

我使用/var/log/kern.log.0而不是/var/log/kern.log,因为引导消息已经被轮换.我问到5月28日2,因为这是最后一次启动时间,我想忽略以前的消息.

要验证映射,您可以通过查看以下输出进行一些检查:

$grep '^May 28 2' /var/log/kern.log.0 | \

grep 'ata[0-9]\+.[0-9][0-9]: ATA-'

May 28 20:43:26 hn kernel: [ 1.260488] ata1.00: ATA-7: SAMSUNG SV0802N, max UDMA/100

May 28 20:43:26 hn kernel: [ 1.676400] ata5.00: ATA-5: ST380021A, 3.19, max UDMA/10

[..]

你可以将这个输出与hdparm输出进行比较,例如:

$hdparm -i /dev/sda

/dev/sda:

Model=SAMSUNG SV0802N [..]

(使用内核2.6.32-31)

标签:linux,sata

来源: https://codeday.me/bug/20190809/1630749.html

linux ata4 serror,linux – 如何将kern.log错误消息中的ataX.0标识符映射到实际的/ dev / sdY设备?...相关推荐

  1. linux ata4 serror,linux系统救援模式解决开机引导失败问题

    问题:linux开机后进入grub命令行且grub命令行输入命令报错 推测:因之前系统装好以后改变过分区,而导致不能读取到grub主开机引导程序 在解决这个问题之前我们先来了解linux开机启动过程. ...

  2. linux镜像文件目录,Linux - 系统 - 文件目录

    Linux 文件目录 文件类型 [-] 普通文件: [d] 目录: [l] 符号链接: [c] 字符设备: [b] 块设备: [s] 套接字: [p] 命名管道: 常见后缀 *.txt 文本文件: * ...

  3. linux var mqm权限,Linux MQ中间件/var/mqm文件系统结构与错误日志分析

    Linux MQ中间件/var/mqm文件系统结构与错误日志分析 Linux MQ中间件/var/mqm文件系统结构与错误日志分析 本文转自 http://www.wo81.com/tec/mid/m ...

  4. linux常规应用培训,Linux基本应用培训.ppt

    <Linux基本应用培训.ppt>由会员分享,可在线阅读,更多相关<Linux基本应用培训.ppt(46页珍藏版)>请在装配图网上搜索. 1.红旗Linux应用技术,Train ...

  5. Linux MQ中间件/var/mqm文件系统结构与错误日志分析

    本文转自 http://www.wo81.com/tec/mid/mq/2014-04-14/91.html 1,我们需要知道/var/mqm文件系统的结构,其结构如下图所示, 2,我们还要保证文件系 ...

  6. linux printk 时间戳,linux – kern.log中“00:00:00”时间戳的含义是什么?

    我正在寻找kern.log中特定问题的原因.有许多条目的00:00:00时间戳: Jun 11 00:00:00 mymachine kernel: [ 0.000000] Initializing ...

  7. Linux 下高级日志文件查看器Log File Navigator

    Log File Navigator,简称lnav,是一款面向小规模的适用于 Linux 的高级日志文件查看器.它是一个终端应用程序,可以理解您的日志文件,让您轻松找到问题,几乎不需要什么设置. ln ...

  8. linux脚本控制,linux控制脚本

    1.处理信号 1 SIGUP 挂起进程 2 SIGINT 终止进程 (CTRL + C) 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进程 17 ...

  9. linux+7+logger,linux日志logger命令详解

    通过logger命令记录日志 logger是一个shell命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息. ------------------- ...

  10. linux 返回非法指令,linux – ARM Cortex A7在内核模式下返回PMCCNTR = 0,在用户模式下返回非法指令(即使在PMUSERENR = 1之后)...

    我想在Raspberry Pi 2上读取循环计数寄存器(PMCCNTR),它有一个ARM Cortex A7内核.我为它编译了一个内核模块,如下所示: #include #include int in ...

最新文章

  1. maven Ubuntu14.04 安装
  2. 皮一皮:中国好男友!!!
  3. 使用PLSQL developer编辑数据
  4. Mysql - 安装与配置
  5. hujingwei oracle_Oracle收缩表空间
  6. Redis高级命令与特性以及单点模式的介绍
  7. linux网络配置_linux复制和网络配置的小注意事项
  8. java 打印预览_java打印和打印预览机制实例代码
  9. hdu4747 线段树区间修改值,区间查询和及最大值即最大值位置
  10. 3.3设计自己的线程局部存储
  11. Eclipse中的Web项目自动部署到Tomcat
  12. dataframe基本函数
  13. android 如何调用 无线投影,无线投影仪怎么连接?答案在此,效率快得没话说
  14. TCP / UDP测试工具——tcpudptest使用总结
  15. win10安装python27_《win10python27安装教程》 win10怎么安装python
  16. 计算机课件网站,课件-优秀课件大全-瑞文网课件频道
  17. android iphone 记事本,苹果手机上有简单实用的便签记事本app吗?
  18. 怎样使用iPhone对Apple TV进行色彩平衡调整?
  19. Docker基础(上)
  20. 基础知识 | hex文件格式详解

热门文章

  1. 脑机接口技术介绍、应用与挑战
  2. 【Unity3D开发小游戏】《太空射击游戏》Unity开发教程
  3. HttpClient用法--这一篇全了解(内含例子)
  4. JavaGuide--Java篇
  5. 牛客网 月出皎兮,佼人僚兮。 树上启发式合并
  6. Centos8使用yum报错 Couldn‘t resolve host name for http://mirrorlist.centos.org/?releas
  7. Microsoft Teams 报错:We‘re sorry-we‘ve run into an issue.
  8. Python 之多元线性回归分析
  9. 抓取百度翻译的接口(通过反编译js获取token、gtk、sign等签名信息)
  10. 服务器系统root密码忘记,云服务器 忘记root密码忘记了