ansitest/drivemap.sh
2024-05-27 10:15:17 -06:00

249 lines
12 KiB
Bash

#!/bin/bash
# Useful for finding the short name of your disk in a ZFS pool, especially if a device is failing
# For linux; tested with a 104-disk VM (SATA + SAS)
# Author: dave.bechtel kingneutron@gmail.com
# NOTE should be re-run if a disk is physically replaced because the descriptive name may change
# REQUIRES: lsscsi grep sed awk column
# external scripts in /root/bin or $PATH: hd-power-status getdrive-byids
#outf=/tmp/drivemap.txt
outf=/root/drivemap.txt
# Replace ../.. with /dev and reverse columns so shortdev is 1st
# Use 'sort -k 3' if $9 $10 $11
ls -lR /dev/disk |grep -w /sd[a-z] |sed 's^../..^/dev^' |awk 'NF>0 {print $11" "$10" "$9}' |column -t |sort \
>$outf
ls -lR /dev/disk |grep -w /vd[a-z] |sed 's^../..^/dev^' |awk 'NF>0 {print $11" "$10" "$9}' |column -t |sort \
>>$outf
echo '========' >> $outf
ls -lR /dev/disk |grep -w /sd[a-z][a-z] |sed 's^../..^/dev^' |awk 'NF>0 {print $11" "$10" "$9}' |column -t |sort \
>>$outf
ls -lR /dev/disk |grep -w /vd[a-z][a-z] |sed 's^../..^/dev^' |awk 'NF>0 {print $11" "$10" "$9}' |column -t |sort \
>>$outf
ls -lR /dev/disk |grep -w /nvme.n. |sed 's^../..^/dev^' |awk 'NF>0 {print $11" "$10" "$9}' |column -t |sort \
>>$outf
echo '=====' >>$outf
lsscsi -s >>$outf
echo '=====' >>$outf
lsscsi -st >>$outf # sata/sas/usb
echo '=====' >>$outf
lsscsi -sv >>$outf # sata/sas/usb
echo '=====' >>$outf
gbi="getdrive-byids 1 |column -t"
function hdps () {
$gbi |awk 'NF>0'
hd-power-status |awk 'NR%2{printf "%s ",$0;next;}1' |awk 'NF>0'
}
hdps |sort -k 2 >>$outf
cp -v $outf /tmp/
ls -l $outf
# To search outfile:
# grep ata-VBOX_HARDDISK_VB0fffe26a-25e5ad55 /tmp/drivemap.txt
exit;
#1 2 3 4 5 6 7 8 $9 $10 $11
$ ls -al /dev/disk/by-id /dev/disk/by-path |grep -w sda
lrwxrwxrwx 1 root root 9 Jan 26 20:04 ata-VBOX_HARDDISK_VB0fffe26a-25e5ad55 -> ../../sda
lrwxrwxrwx 1 root root 9 Jan 26 20:04 scsi-0ATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55 -> ../../sda
lrwxrwxrwx 1 root root 9 Jan 26 20:04 scsi-1ATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55 -> ../../sda
lrwxrwxrwx 1 root root 9 Jan 26 20:04 scsi-SATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55 -> ../../sda
$ ls -al /dev/disk/by-id /dev/disk/by-path |grep -w sdab
lrwxrwxrwx 1 root root 10 Jan 26 20:04 pci-0000:00:16.0-sas-phy26-lun-0 -> ../../sdab
Example output: (sda is not a typo, it can be addressed 4 different ways)
/dev/sda -> ata-VBOX_HARDDISK_VB0fffe26a-25e5ad55
/dev/sda -> scsi-0ATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55
/dev/sda -> scsi-1ATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55
/dev/sda -> scsi-SATA_VBOX_HARDDISK_VB0fffe26a-25e5ad55
/dev/sdb -> pci-0000:00:16.0-sas-phy0-lun-0
/dev/sdc -> pci-0000:00:16.0-sas-phy1-lun-0
/dev/sdd -> pci-0000:00:16.0-sas-phy2-lun-0
/dev/sde -> pci-0000:00:16.0-sas-phy3-lun-0
/dev/sdf -> pci-0000:00:16.0-sas-phy4-lun-0
/dev/sdg -> pci-0000:00:16.0-sas-phy5-lun-0
/dev/sdh -> pci-0000:00:16.0-sas-phy6-lun-0
/dev/sdi -> pci-0000:00:16.0-sas-phy7-lun-0
/dev/sdj -> pci-0000:00:16.0-sas-phy8-lun-0
/dev/sdk -> pci-0000:00:16.0-sas-phy9-lun-0
/dev/sdl -> pci-0000:00:16.0-sas-phy10-lun-0
/dev/sdm -> pci-0000:00:16.0-sas-phy11-lun-0
/dev/sdn -> pci-0000:00:16.0-sas-phy12-lun-0
/dev/sdo -> pci-0000:00:16.0-sas-phy13-lun-0
/dev/sdp -> pci-0000:00:16.0-sas-phy14-lun-0
/dev/sdq -> pci-0000:00:16.0-sas-phy15-lun-0
/dev/sdr -> pci-0000:00:16.0-sas-phy16-lun-0
/dev/sds -> pci-0000:00:16.0-sas-phy17-lun-0
/dev/sdt -> pci-0000:00:16.0-sas-phy18-lun-0
/dev/sdu -> pci-0000:00:16.0-sas-phy19-lun-0
/dev/sdv -> pci-0000:00:16.0-sas-phy20-lun-0
/dev/sdw -> pci-0000:00:16.0-sas-phy21-lun-0
/dev/sdx -> pci-0000:00:16.0-sas-phy22-lun-0
/dev/sdy -> pci-0000:00:16.0-sas-phy23-lun-0
/dev/sdz -> pci-0000:00:16.0-sas-phy24-lun-0
========
/dev/sdaa -> pci-0000:00:16.0-sas-phy25-lun-0
/dev/sdab -> pci-0000:00:16.0-sas-phy26-lun-0
/dev/sdac -> pci-0000:00:16.0-sas-phy27-lun-0
/dev/sdad -> pci-0000:00:16.0-sas-phy28-lun-0
/dev/sdae -> pci-0000:00:16.0-sas-phy29-lun-0
/dev/sdaf -> pci-0000:00:16.0-sas-phy30-lun-0
/dev/sdag -> pci-0000:00:16.0-sas-phy31-lun-0
/dev/sdah -> pci-0000:00:16.0-sas-phy32-lun-0
/dev/sdai -> pci-0000:00:16.0-sas-phy33-lun-0
/dev/sdaj -> pci-0000:00:16.0-sas-phy34-lun-0
/dev/sdak -> pci-0000:00:16.0-sas-phy35-lun-0
/dev/sdal -> pci-0000:00:16.0-sas-phy36-lun-0
/dev/sdam -> pci-0000:00:16.0-sas-phy37-lun-0
/dev/sdan -> pci-0000:00:16.0-sas-phy38-lun-0
/dev/sdao -> pci-0000:00:16.0-sas-phy39-lun-0
/dev/sdap -> pci-0000:00:16.0-sas-phy40-lun-0
/dev/sdaq -> pci-0000:00:16.0-sas-phy41-lun-0
/dev/sdar -> pci-0000:00:16.0-sas-phy42-lun-0
/dev/sdas -> pci-0000:00:16.0-sas-phy43-lun-0
/dev/sdat -> pci-0000:00:16.0-sas-phy44-lun-0
/dev/sdau -> pci-0000:00:16.0-sas-phy45-lun-0
/dev/sdav -> pci-0000:00:16.0-sas-phy46-lun-0
/dev/sdaw -> pci-0000:00:16.0-sas-phy47-lun-0
/dev/sdax -> pci-0000:00:16.0-sas-phy48-lun-0
/dev/sday -> pci-0000:00:16.0-sas-phy49-lun-0
/dev/sdaz -> pci-0000:00:16.0-sas-phy50-lun-0
/dev/sdba -> pci-0000:00:16.0-sas-phy51-lun-0
/dev/sdbb -> pci-0000:00:16.0-sas-phy52-lun-0
/dev/sdbc -> pci-0000:00:16.0-sas-phy53-lun-0
/dev/sdbd -> pci-0000:00:16.0-sas-phy54-lun-0
/dev/sdbe -> pci-0000:00:16.0-sas-phy55-lun-0
/dev/sdbf -> pci-0000:00:16.0-sas-phy56-lun-0
/dev/sdbg -> pci-0000:00:16.0-sas-phy57-lun-0
/dev/sdbh -> pci-0000:00:16.0-sas-phy58-lun-0
/dev/sdbi -> pci-0000:00:16.0-sas-phy59-lun-0
/dev/sdbj -> pci-0000:00:16.0-sas-phy60-lun-0
/dev/sdbk -> pci-0000:00:16.0-sas-phy61-lun-0
/dev/sdbl -> pci-0000:00:16.0-sas-phy62-lun-0
/dev/sdbm -> pci-0000:00:16.0-sas-phy63-lun-0
/dev/sdbn -> pci-0000:00:16.0-sas-phy64-lun-0
/dev/sdbo -> pci-0000:00:16.0-sas-phy65-lun-0
/dev/sdbp -> pci-0000:00:16.0-sas-phy66-lun-0
/dev/sdbq -> pci-0000:00:16.0-sas-phy67-lun-0
/dev/sdbr -> pci-0000:00:16.0-sas-phy68-lun-0
/dev/sdbs -> pci-0000:00:16.0-sas-phy69-lun-0
/dev/sdbt -> pci-0000:00:16.0-sas-phy70-lun-0
/dev/sdbu -> pci-0000:00:16.0-sas-phy71-lun-0
/dev/sdbv -> pci-0000:00:16.0-sas-phy72-lun-0
/dev/sdbw -> pci-0000:00:16.0-sas-phy73-lun-0
/dev/sdbx -> pci-0000:00:16.0-sas-phy74-lun-0
/dev/sdby -> pci-0000:00:16.0-sas-phy75-lun-0
/dev/sdbz -> pci-0000:00:16.0-sas-phy76-lun-0
/dev/sdca -> pci-0000:00:16.0-sas-phy77-lun-0
/dev/sdcb -> pci-0000:00:16.0-sas-phy78-lun-0
/dev/sdcc -> pci-0000:00:16.0-sas-phy79-lun-0
/dev/sdcd -> ata-VBOX_HARDDISK_VB7c106e2c-6f1ebfbf
/dev/sdcd -> scsi-0ATA_VBOX_HARDDISK_VB7c106e2c-6f1ebfbf
/dev/sdcd -> scsi-1ATA_VBOX_HARDDISK_VB7c106e2c-6f1ebfbf
/dev/sdcd -> scsi-SATA_VBOX_HARDDISK_VB7c106e2c-6f1ebfbf
/dev/sdce -> ata-VBOX_HARDDISK_VBd7f1bb8e-d22e8c8c
/dev/sdce -> scsi-0ATA_VBOX_HARDDISK_VBd7f1bb8e-d22e8c8c
/dev/sdce -> scsi-1ATA_VBOX_HARDDISK_VBd7f1bb8e-d22e8c8c
/dev/sdce -> scsi-SATA_VBOX_HARDDISK_VBd7f1bb8e-d22e8c8c
/dev/sdcf -> ata-VBOX_HARDDISK_VB882c653e-c5bcc371
/dev/sdcf -> scsi-0ATA_VBOX_HARDDISK_VB882c653e-c5bcc371
/dev/sdcf -> scsi-1ATA_VBOX_HARDDISK_VB882c653e-c5bcc371
/dev/sdcf -> scsi-SATA_VBOX_HARDDISK_VB882c653e-c5bcc371
/dev/sdcg -> ata-VBOX_HARDDISK_VB1592b5f3-53ad43a7
/dev/sdcg -> scsi-0ATA_VBOX_HARDDISK_VB1592b5f3-53ad43a7
/dev/sdcg -> scsi-1ATA_VBOX_HARDDISK_VB1592b5f3-53ad43a7
/dev/sdcg -> scsi-SATA_VBOX_HARDDISK_VB1592b5f3-53ad43a7
/dev/sdch -> ata-VBOX_HARDDISK_VB2bf3ef90-ecf2977e
/dev/sdch -> scsi-0ATA_VBOX_HARDDISK_VB2bf3ef90-ecf2977e
/dev/sdch -> scsi-1ATA_VBOX_HARDDISK_VB2bf3ef90-ecf2977e
/dev/sdch -> scsi-SATA_VBOX_HARDDISK_VB2bf3ef90-ecf2977e
/dev/sdci -> ata-VBOX_HARDDISK_VBbec4f4ac-0132a385
/dev/sdci -> scsi-0ATA_VBOX_HARDDISK_VBbec4f4ac-0132a385
/dev/sdci -> scsi-1ATA_VBOX_HARDDISK_VBbec4f4ac-0132a385
/dev/sdci -> scsi-SATA_VBOX_HARDDISK_VBbec4f4ac-0132a385
/dev/sdcj -> ata-VBOX_HARDDISK_VBb5646a7b-0954ef57
/dev/sdcj -> scsi-0ATA_VBOX_HARDDISK_VBb5646a7b-0954ef57
/dev/sdcj -> scsi-1ATA_VBOX_HARDDISK_VBb5646a7b-0954ef57
/dev/sdcj -> scsi-SATA_VBOX_HARDDISK_VBb5646a7b-0954ef57
/dev/sdck -> ata-VBOX_HARDDISK_VB441b5ccb-d12ee119
/dev/sdck -> scsi-0ATA_VBOX_HARDDISK_VB441b5ccb-d12ee119
/dev/sdck -> scsi-1ATA_VBOX_HARDDISK_VB441b5ccb-d12ee119
/dev/sdck -> scsi-SATA_VBOX_HARDDISK_VB441b5ccb-d12ee119
/dev/sdcl -> ata-VBOX_HARDDISK_VBeeb81791-8fedcbbb
/dev/sdcl -> scsi-0ATA_VBOX_HARDDISK_VBeeb81791-8fedcbbb
/dev/sdcl -> scsi-1ATA_VBOX_HARDDISK_VBeeb81791-8fedcbbb
/dev/sdcl -> scsi-SATA_VBOX_HARDDISK_VBeeb81791-8fedcbbb
/dev/sdcm -> ata-VBOX_HARDDISK_VBb1985871-b6a5fb94
/dev/sdcm -> scsi-0ATA_VBOX_HARDDISK_VBb1985871-b6a5fb94
/dev/sdcm -> scsi-1ATA_VBOX_HARDDISK_VBb1985871-b6a5fb94
/dev/sdcm -> scsi-SATA_VBOX_HARDDISK_VBb1985871-b6a5fb94
/dev/sdcn -> ata-VBOX_HARDDISK_VB22ebe1ec-5369661c
/dev/sdcn -> scsi-0ATA_VBOX_HARDDISK_VB22ebe1ec-5369661c
/dev/sdcn -> scsi-1ATA_VBOX_HARDDISK_VB22ebe1ec-5369661c
/dev/sdcn -> scsi-SATA_VBOX_HARDDISK_VB22ebe1ec-5369661c
/dev/sdco -> ata-VBOX_HARDDISK_VBdc670002-8ec73b3d
/dev/sdco -> scsi-0ATA_VBOX_HARDDISK_VBdc670002-8ec73b3d
/dev/sdco -> scsi-1ATA_VBOX_HARDDISK_VBdc670002-8ec73b3d
/dev/sdco -> scsi-SATA_VBOX_HARDDISK_VBdc670002-8ec73b3d
/dev/sdcp -> ata-VBOX_HARDDISK_VB49422d74-cd74822b
/dev/sdcp -> scsi-0ATA_VBOX_HARDDISK_VB49422d74-cd74822b
/dev/sdcp -> scsi-1ATA_VBOX_HARDDISK_VB49422d74-cd74822b
/dev/sdcp -> scsi-SATA_VBOX_HARDDISK_VB49422d74-cd74822b
/dev/sdcq -> ata-VBOX_HARDDISK_VBd062a8b6-4c545fc6
/dev/sdcq -> scsi-0ATA_VBOX_HARDDISK_VBd062a8b6-4c545fc6
/dev/sdcq -> scsi-1ATA_VBOX_HARDDISK_VBd062a8b6-4c545fc6
/dev/sdcq -> scsi-SATA_VBOX_HARDDISK_VBd062a8b6-4c545fc6
/dev/sdcr -> ata-VBOX_HARDDISK_VB99f8848c-fef7709a
/dev/sdcr -> scsi-0ATA_VBOX_HARDDISK_VB99f8848c-fef7709a
/dev/sdcr -> scsi-1ATA_VBOX_HARDDISK_VB99f8848c-fef7709a
/dev/sdcr -> scsi-SATA_VBOX_HARDDISK_VB99f8848c-fef7709a
/dev/sdcs -> ata-VBOX_HARDDISK_VBeb60609c-1eda5172
/dev/sdcs -> scsi-0ATA_VBOX_HARDDISK_VBeb60609c-1eda5172
/dev/sdcs -> scsi-1ATA_VBOX_HARDDISK_VBeb60609c-1eda5172
/dev/sdcs -> scsi-SATA_VBOX_HARDDISK_VBeb60609c-1eda5172
/dev/sdct -> ata-VBOX_HARDDISK_VBca083d5c-c7b498eb
/dev/sdct -> scsi-0ATA_VBOX_HARDDISK_VBca083d5c-c7b498eb
/dev/sdct -> scsi-1ATA_VBOX_HARDDISK_VBca083d5c-c7b498eb
/dev/sdct -> scsi-SATA_VBOX_HARDDISK_VBca083d5c-c7b498eb
/dev/sdcu -> ata-VBOX_HARDDISK_VB96afaef5-9bdf8920
/dev/sdcu -> scsi-0ATA_VBOX_HARDDISK_VB96afaef5-9bdf8920
/dev/sdcu -> scsi-1ATA_VBOX_HARDDISK_VB96afaef5-9bdf8920
/dev/sdcu -> scsi-SATA_VBOX_HARDDISK_VB96afaef5-9bdf8920
/dev/sdcv -> ata-VBOX_HARDDISK_VB72fbebcd-30bf5803
/dev/sdcv -> scsi-0ATA_VBOX_HARDDISK_VB72fbebcd-30bf5803
/dev/sdcv -> scsi-1ATA_VBOX_HARDDISK_VB72fbebcd-30bf5803
/dev/sdcv -> scsi-SATA_VBOX_HARDDISK_VB72fbebcd-30bf5803
/dev/sdcw -> ata-VBOX_HARDDISK_VB57124aad-08886b93
/dev/sdcw -> scsi-0ATA_VBOX_HARDDISK_VB57124aad-08886b93
/dev/sdcw -> scsi-1ATA_VBOX_HARDDISK_VB57124aad-08886b93
/dev/sdcw -> scsi-SATA_VBOX_HARDDISK_VB57124aad-08886b93
/dev/sdcx -> ata-VBOX_HARDDISK_VBa2ce3c9e-3e92f93a
/dev/sdcx -> scsi-0ATA_VBOX_HARDDISK_VBa2ce3c9e-3e92f93a
/dev/sdcx -> scsi-1ATA_VBOX_HARDDISK_VBa2ce3c9e-3e92f93a
/dev/sdcx -> scsi-SATA_VBOX_HARDDISK_VBa2ce3c9e-3e92f93a
/dev/sdcy -> ata-VBOX_HARDDISK_VBb9f369c6-999a56d3
/dev/sdcy -> scsi-0ATA_VBOX_HARDDISK_VBb9f369c6-999a56d3
/dev/sdcy -> scsi-1ATA_VBOX_HARDDISK_VBb9f369c6-999a56d3
/dev/sdcy -> scsi-SATA_VBOX_HARDDISK_VBb9f369c6-999a56d3
/dev/sdcz -> ata-VBOX_HARDDISK_VB144d530e-70b6d420
/dev/sdcz -> scsi-0ATA_VBOX_HARDDISK_VB144d530e-70b6d420
/dev/sdcz -> scsi-1ATA_VBOX_HARDDISK_VB144d530e-70b6d420
/dev/sdcz -> scsi-SATA_VBOX_HARDDISK_VB144d530e-70b6d420
/dev/sdda -> ata-VBOX_HARDDISK_VB105427d5-303f04a5
/dev/sdda -> scsi-0ATA_VBOX_HARDDISK_VB105427d5-303f04a5
/dev/sdda -> scsi-1ATA_VBOX_HARDDISK_VB105427d5-303f04a5
/dev/sdda -> scsi-SATA_VBOX_HARDDISK_VB105427d5-303f04a5