页面加载中,请稍候
来源:一口Linux发布时间:2022-09-01713浏览
询问 AI想要弄明白lsscsi命令,首先我们必须搞清楚什么是SCSI,以及常见的硬盘接口,常用的硬盘参数。
SCSI(Small Computer System Interface)是一套完整的数据传输协议,其主要功能是在主机和存储设备之间传送命令、状态和块数据。在各类存储技术中,SCSI技术可谓是最重要的脊梁。
SCSI协议位于操作系统和外部资源之间,它具有一系列的功能组件,操作系统对外部设备(如磁盘、磁带、光盘、打印机等)的I/O操作均可以通过SCSI协议来实现,一般情况下,SCSI协议都嵌入到设备驱动器或者主机适配器的板载逻辑中。

其英文名称:Integrated Drive Electronics,常见的2.5英寸IDE硬盘接口它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。
IDE代表着硬盘的一种类型,但在实际的应用中,人们也习惯用IDE来称呼最早出现IDE类型硬盘ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如ATA、Ultra ATA、DMA、Ultra DMA等接口都属于IDE硬盘。
其特点为:价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等等。

SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。
SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此SCSI硬盘主要应用于中、高端服务器和高档工作站中。
其特点为:传输速率高、读写性能好、可连接多个设备、可支持热插拔,但是价格相对来说比较贵。

其英文名称为:Serial Advanced Technology Attachment。使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。
Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。
串行接口还具有结构简单、支持热插拔的优点。

lsscsi列出scsi/sata设备信息,比如硬盘驱动器,光盘驱动器。
-bash:lsscsicommandnotfound
#Debian
apt-getinstalllsscsi
#Ubuntu
apt-getinstalllsscsi
#Alpine
apkaddlsscsi
#ArchLinux
pacman-Slsscsi
#KaliLinux
apt-getinstalllsscsi
#CentOS
yuminstalllsscsi
#Fedora
dnfinstalllsscsi
#Raspbian
apt-getinstalllsscsi
#Docker
dockerruncmd.cat/lsscsilsscsi
详细命令说明地址
https://sg.danny.cz/scsi/lsscsi.html

lsscsi 命令语法:
lsscsi[选项][H:C:T:L]
lsscsi 命令选项:
选项含义-g显示SCSI通用设备文件名称-k显示内核名称而不是设备节点名-d显示设备节点的主要号码和次要号码-H列出当前连接到系统的SCSI主机而不是SCSI设备-l显示每一个SCSI设备(主机)的附加信息-c相对于执行 cat /proc/scsi/scsi 命令的输出-p显示额外的数据完整性(保护)的信息-t显示传输信息-L以“属性名=值”的方式显示附加信息-v当信息找到时输出目录名-y<路径>假设sysfs挂载在指定路径而不是默认的 “/sys”-s显示容量大小。-c用全称显示默认的信息。-d显示设备主,次设备号。-g显示对应的sg设备名。-H显示主机控制器列表,-Hl,-Hlv。-l显示相关属性,-ll,-lll=-L。-v显示设备属性所在目录。-x以16进制显示lun号。-p输出DIF,DIX 保护类型。-P输出有效的保护模式信息。-i显示udev相关的属性-w显示WWN-t显示相应传输信息(ATA,FC,SBP,ISCSI,SPI,SAS,SATA,USB),-Ht,-tl.(包括sas地址)
lsscsi 列出所有 SCSI 设备:
peng@ubuntu:~$lsscsi
[3:0:0:0]cd/dvdNECVMWarVMwareSATACD011.00/dev/sr0
[32:0:0:0]diskVMware,VMwareVirtualS1.0/dev/sda
lsscsi -L列出所有具有详细属性的 SCSI 设备:
peng@ubuntu:~$lsscsi-L
[3:0:0:0]cd/dvdNECVMWarVMwareSATACD011.00/dev/sr0
device_blocked=0
iocounterbits=32
iodone_cnt=0x229
ioerr_cnt=0x4
iorequest_cnt=0x23a
queue_depth=1
queue_type=none
scsi_level=6
state=running
timeout=30
type=5
[32:0:0:0]diskVMware,VMwareVirtualS1.0/dev/sda
device_blocked=0
iocounterbits=32
iodone_cnt=0x37370
ioerr_cnt=0x3
iorequest_cnt=0x37370
queue_depth=32
queue_type=simple
scsi_level=3
state=running
timeout=180
type=0
lsscsi -s列出所有具有人类可读磁盘容量的 SCSI 设备:
peng@ubuntu:~$lsscsi-s
[3:0:0:0]cd/dvdNECVMWarVMwareSATACD011.00/dev/sr0-
[32:0:0:0]diskVMware,VMwareVirtualS1.0/dev/sda536GB
/proc/scsi/
peng@ubuntu:~$cd/proc/scsi/
peng@ubuntu:/proc/scsi$ls
device_infomptspiscsisg
peng@ubuntu:/proc/scsi$catscsi
Attacheddevices:
Host:scsi32Channel:00Id:00Lun:00
Vendor:VMware,Model:VMwareVirtualSRev:1.0
Type:Direct-AccessANSISCSIrevision:02
Host:scsi3Channel:00Id:00Lun:00
Vendor:NECVMWarModel:VMwareSATACD01Rev:1.00
Type:CD-ROMANSISCSIrevision:05
/sys/class/scsi_host
peng@ubuntu:/sys/class/scsi_host$ls
host0host12host16host2host23host27host30host5host9
host1host13host17host20host24host28host31host6
host10host14host18host21host25host29host32host7
host11host15host19host22host26host3host4host8
/sys/class/scsi_device
peng@ubuntu:/sys/class/scsi_device$ls
3:0:0:032:0:0:0
/sys/class/scsi_disk
peng@ubuntu:/sys/class/scsi_disk$ls
32:0:0:0
/sys/class/scsi_generic
peng@ubuntu:/sys/class/scsi_generic$ls
sg0sg1
/sys/bus/scsi
peng@ubuntu:/sys/bus/scsi$ls
devicesdriversdrivers_autoprobedrivers_probeuevent
peng@ubuntu:/sys/bus/scsi/devices$ls
3:0:0:0host11host16host20host25host3host5target3:0:0
32:0:0:0host12host17host21host26host30host6target32:0:0
host0host13host18host22host27host31host7
host1host14host19host23host28host32host8
host10host15host2host24host29host4host9
其中target3:0:0
对应
host:bus:id:lun

drivers/scsi/Kconfig:213
configSCSI_LOGGING
bool"SCSIloggingfacility"
dependsonSCSI
---help---
Thisturnsonaloggingfacilitythatcanbeusedtodebuganumber
ofSCSIrelatedproblems.
IfyousayYhere,nologgingoutputwillappearbydefault,butyou
canenableloggingbysayingYto"/procfilesystemsupport"and
"Sysctlsupport"belowandexecutingthecommand
echo<bitmask>>/proc/sys/dev/scsi/logging_level
where<bitmask>isafourbytevaluerepresentingtheloggingtype
andlogginglevelforeachtypeofloggingselected.
Thereareanumberofloggingtypesandyoucanfindtheminthe
sourceat<file:drivers/scsi/scsi_logging.h>.Thelogginglevels
arealsodescribedinthatfileandtheydeterminetheverbosityof
theloggingforeachloggingtype.
IfyousayNhere,itmaybehardertotrackdownsometypesofSCSI
problems.IfyousayYhereyourkernelwillbesomewhatlarger,but
thereshouldbenonoticeableperformanceimpactaslongasyouhave
loggingturnedoff.
->drivers\scsi\scsi_logging.h
/*
*Note-theinitiallogginglevelcanbesetheretologeventsatboottime.
*Afterthesystemisup,youmayenableloggingviathe/procinterface.
*/
unsignedintscsi_logging_level;
#ifdefined(CONFIG_SCSI_LOGGING)
EXPORT_SYMBOL(scsi_logging_level);
#endif
scsi_logging_level 被定义成int类型(32bit),该机制使用了30个bit,从低位到高位每3bit为一个logging level从SCSI_LOG_ERROR_SHIFT到SCSI_LOG_IOCTL_SHIFT(SCSI_LOG_XXX_SHIFT为不同level的移位数),每个level使用的bit数都是3,所以 SCSI_LOG_XXX_BITS 均为3
-1-Enablescsieventstosyslog.//开启所有scsilog
0-Disablescsieventstosyslog.//关闭所有scsilog
命令:
echo0/-1>/proc/sys/dev/scsi/logging_level新闻来源:一口Linux,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2 天前

2026-06-04
2026-07-22