Heim > Artikel > System-Tutorial > Detaillierte Erklärung des Linux-Befehls lsscsi
Um den Befehl lsscsi
zu verstehen, müssen wir zunächst verstehen, was SCSI ist und gängige Festplattenschnittstellen und gängige Festplattenparameter kennen.
SCSI (Small Computer System Interface) ist ein vollständiges Datenübertragungsprotokoll, das hauptsächlich zur Übertragung von Befehlen, Status- und Blockdaten zwischen dem Host und den Speichergeräten verwendet wird. Unter den verschiedenen Speichertechnologien ist die SCSI-Technologie die wichtigste Säule.
Das SCSI-Protokoll liegt zwischen dem Betriebssystem und externen Ressourcen und verfügt über eine Reihe funktionaler Komponenten. Die E/A-Vorgänge des Betriebssystems auf externen Geräten (z. B. Festplatten, Bänder, optische Datenträger, Drucker usw.) können über das SCSI-Protokoll implementiert werden. Typischerweise ist das SCSI-Protokoll in den Gerätetreiber oder die integrierte Logik des Host-Adapters eingebettet.
IDE stellt eine Art Festplatte dar, aber in tatsächlichen Anwendungen ist es auch üblich, dass sich die Verwendung von IDE auf die früheste IDE-Festplatte, ATA-1, bezieht. Diese Art von Schnittstelle wurde mit der Entwicklung der Schnittstellentechnologie eliminiert Später weitete sich die Entwicklung auf weitere Arten von Festplattenschnittstellen aus, wie z. B. ATA, Ultra ATA, DMA, Ultra DMA und andere Schnittstellen, bei denen es sich allesamt um IDE-Festplatten handelt.
Seine Eigenschaften sind: niedriger Preis, starke Kompatibilität, hohe Kostenleistung, langsame Datenübertragung, unterstützt kein Hot-Swapping usw.
2. Festplatte mit SCSI-SchnittstelleDie SCSI-Schnittstelle bietet die Vorteile eines breiten Anwendungsbereichs, Multitasking, großer Bandbreite, geringer CPU-Auslastung und Hot-Swap-Fähigkeit. Der höhere Preis macht es jedoch schwierig, so beliebt zu sein wie IDE-Festplatten, also sind es SCSI-Festplatten Wird hauptsächlich im mittleren bis oberen Preissegment in Servern und High-End-Workstations verwendet.
Seine Eigenschaften sind: hohe Übertragungsrate, gute Lese- und Schreibleistung, kann an mehrere Geräte angeschlossen werden und unterstützt Hot-Swapping, aber der Preis ist relativ hoch.
3. SATA-SchnittstellentypSerial ATA verwendet eine serielle Verbindungsmethode und verfügt über stärkere Fehlerkorrekturfunktionen. Im Vergleich zur Vergangenheit besteht der größte Unterschied darin, dass er die Übertragungsanweisungen (nicht nur Daten) überprüfen kann Wird ein Fehler gefunden, wird er automatisch korrigiert, was die Zuverlässigkeit der Datenübertragung erheblich verbessert.
Die serielle Schnittstelle bietet außerdem die Vorteile einer einfachen Struktur und der Unterstützung von Hot-Swapping.
-bash: lsscsi command not found #Debian apt-get install lsscsi #Ubuntu apt-get install lsscsi #Alpine apk add lsscsi #Arch Linux pacman -S lsscsi #Kali Linux apt-get install lsscsi #CentOS yum install lsscsi #Fedora dnf install lsscsi #Raspbian apt-get install lsscsi #Docker docker run cmd.cat/lsscsi lsscsi
Detaillierte Befehlsbeschreibungsadresse
https://sg.danny.cz/scsi/lsscsi.html
lsscsi-Befehlssyntax:
lsscsi [选项] [H:C:T:L]
lsscsi-Befehlsoptionen:
Optionen | Bedeutung |
---|---|
-g | SCSI-Gemeinsamer Gerätedateiname anzeigen |
-k | Kernel-Namen anstelle des Geräteknotennamens anzeigen |
-d | Zeigt die primären und sekundären Nummern der Geräteknoten an |
-H | Listen Sie SCSI-Hosts auf, die derzeit mit dem System verbunden sind, anstelle von SCSI-Geräten |
-l | Zeigen Sie zusätzliche Informationen für jedes SCSI-Gerät (Host) an |
-c | Relativ zur Ausgabe der Ausführung des Befehls cat /proc/scsi/scsi |
-p | Zusätzliche Informationen zur Datenintegrität (Schutz) anzeigen |
-t | Übertragungsinformationen anzeigen |
-L | Zeigen Sie zusätzliche Informationen in der Form „Attributname=Wert“ an |
-v | Verzeichnisnamen ausgeben, wenn Informationen gefunden werden |
-y | Gehen Sie davon aus, dass sysfs im angegebenen Pfad und nicht im Standardpfad „/sys“ gemountet ist |
-s | Kapazitätsgröße anzeigen. |
-c | Standardinformationen mit vollständigem Namen anzeigen. |
-d | Zeigen Sie die primären und sekundären Gerätenummern des Geräts an. |
-g | Zeigen Sie den entsprechenden SG-Gerätenamen an. |
-H | Host-Controller-Liste anzeigen, -Hl, -Hlv. |
-l | Zugehörige Attribute anzeigen, -ll,-llll=-L. |
-v | Zeigen Sie das Verzeichnis an, in dem sich die Geräteeigenschaften befinden. |
-x | Zeigen Sie die LUN-Nummer im Hexadezimalformat an. |
-p | Ausgang DIF, DIX-Schutzart. |
-P | Gültige Schutzmodusinformationen ausgeben. |
-ich | Udev-bezogene Attribute anzeigen |
-w | WWN anzeigen |
-t | Entsprechende Übertragungsinformationen anzeigen (ATA, FC, SBP, ISCSI, SPI, SAS, SATA, USB), -Ht, -tl (einschließlich SAS-Adresse) |
lsscsi 列出所有 SCSI 设备:
peng@ubuntu:~$ lsscsi [3:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0 [32:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
lsscsi -L列出所有具有详细属性的 SCSI 设备:
peng@ubuntu:~$ lsscsi -L [3:0:0:0] cd/dvd NECVMWar VMware SATA CD01 1.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] disk VMware, VMware Virtual S 1.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/dvd NECVMWar VMware SATA CD01 1.00 /dev/sr0 - [32:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda 536GB
/proc/scsi/
peng@ubuntu:~$ cd /proc/scsi/ peng@ubuntu:/proc/scsi$ ls device_info mptspi scsi sg peng@ubuntu:/proc/scsi$ cat scsi Attached devices: Host: scsi32 Channel: 00 Id: 00 Lun: 00 Vendor: VMware, Model: VMware Virtual S Rev: 1.0 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: NECVMWar Model: VMware SATA CD01 Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 05
/sys/class/scsi_host
peng@ubuntu:/sys/class/scsi_host$ ls host0 host12 host16 host2 host23 host27 host30 host5 host9 host1 host13 host17 host20 host24 host28 host31 host6 host10 host14 host18 host21 host25 host29 host32 host7 host11 host15 host19 host22 host26 host3 host4 host8
/sys/class/scsi_device
peng@ubuntu:/sys/class/scsi_device$ ls 3:0:0:0 32: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 sg0 sg1
/sys/bus/scsi
peng@ubuntu:/sys/bus/scsi$ ls devices drivers drivers_autoprobe drivers_probe uevent peng@ubuntu:/sys/bus/scsi/devices$ ls 3:0:0:0 host11 host16 host20 host25 host3 host5 target3:0:0 32:0:0:0 host12 host17 host21 host26 host30 host6 target32:0:0 host0 host13 host18 host22 host27 host31 host7 host1 host14 host19 host23 host28 host32 host8 host10 host15 host2 host24 host29 host4 host9
其中target3:0:0
对应
host:bus:id:lun
drivers/scsi/Kconfig:213 config SCSI_LOGGING bool "SCSI logging facility" depends on SCSI ---help--- This turns on a logging facility that can be used to debug a number of SCSI related problems. If you say Y here, no logging output will appear by default, but you can enable logging by saying Y to "/proc file system support" and "Sysctl support" below and executing the command echo > /proc/sys/dev/scsi/logging_level where is a four byte value representing the logging type and logging level for each type of logging selected. There are a number of logging types and you can find them in the source at . The logging levels are also described in that file and they determine the verbosity of the logging for each logging type. If you say N here, it may be harder to track down some types of SCSI problems. If you say Y here your kernel will be somewhat larger, but there should be no noticeable performance impact as long as you have logging turned off.
-> drivers\scsi\scsi_logging.h
/* * Note - the initial logging level can be set here to log events at boot time. * After the system is up, you may enable logging via the /proc interface. */ unsigned int scsi_logging_level; #if defined(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 - Enable scsi events to syslog. // 开启所有scsi log 0 - Disable scsi events to syslog. // 关闭所有scsi log
命令:
echo 0/-1 > /proc/sys/dev/scsi/logging_level
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Linux-Befehls lsscsi. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!