¿Cómo averiguo qué discos duros hay en el sistema?

Necesito saber qué discos duros están disponibles, incluidos los que no están montados y posiblemente no están formateados. No puedo encontrarlos en dmesg o /var/log/messages (demasiado para desplazarse). Espero que haya una forma de usar /dev o /proc para descubrir esta información, pero no sé cómo. Estoy usando Linux.

Related of "¿Cómo averiguo qué discos duros hay en el sistema?"

Esto es altamente dependiente de la plataforma. También diferentes methods pueden tratar los casos de borde de forma diferente (discos "falsos" de varios types, volúmenes RAID, …).

En las instalaciones modernas de udev, hay enlaces simbólicos a medios de almacenamiento en subdirectorys de /dev/disk , que le permiten search un disco o una partición por número de serie ( /dev/disk/by-id/ ), por UUID ( /dev/disk/by-uuid ), por la label del sistema de files ( /dev/disk/by-label/ ) o por la conectividad del hardware ( /dev/disk/by-path/ ).

En Linux 2.6, cada disco y dispositivo tipo disco tiene una input en /sys/block . Bajo Linux desde el principio de los times, los discos y las particiones se enumeran en /proc/partitions . Alternativamente, puede usar lshw : lshw -class disk .

Linux también proporciona la utilidad lsblk que muestra una buena vista de tree de los volúmenes de almacenamiento (desde util-linux 2.19, no presente en dispositivos integrados con BusyBox).

Si tiene una utilidad fdisk o disklabel , es posible que le diga en qué dispositivos puede trabajar.

Encontrará nombres de utilidades para muchas variantes de Unix en Rosetta Stone para Unix , en particular las líneas "enumerar configuration de hardware" y "leer una label de disco".

lsblk todos los dispositivos de bloque. Se presta bien a las secuencias de commands:

 $ lsblk -io KNAME,TYPE,SIZE,MODEL KNAME TYPE SIZE MODEL sda disk 149.1G TOSHIBA MK1637GS sda1 part 23.3G sda2 part 28G sda3 part 93.6G sda4 part 4.3G sr0 rom 1024M CD/DVDW TS-L632M 

lsblk está presente en el package util-linux y, por lo tanto, es mucho más universal que las alternativas propuestas.

Qué tal si

 lshw -class disk 

hwinfo ayuda:

 > hwinfo --disk 21: IDE 00.0: 10600 Disk [Created at block.245] Unique ID: 3OOL.8MZXfAWnuH8 Parent ID: w7Y8.1T_0outZkp6 SysFS ID: /class/block/sda SysFS BusID: 0:0:0:0 SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0 Hardware Class: disk Model: "Hitachi HTS54322" Vendor: "Hitachi" Device: "HTS54322" Revision: "ESBO" Driver: "ahci", "sd" Driver Modules: "ahci" Device File: /dev/sda Device Files: /dev/sda, /dev/disk/by-id/ata-Hitachi_HTS543225A7A384_E2021342GEPG4J, /dev/disk/by-id/scsi-SATA_Hitachi_HTS5432_E2021342GEPG4J, /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x5000cca614c6395e Device Number: block 8:0-8:15 BIOS id: 0x80 Geometry (BIOS EDD): CHS 484521/16/63 Size (BIOS EDD): 488397168 sectors Geometry (BIOS Legacy): CHS 1023/255/63 Drive status: no medium Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #17 (SATA controller) > hwinfo --block --short disk: /dev/sda Hitachi HTS54322 partition: /dev/sda1 Partition /dev/sda2 Partition /dev/sda3 Partition /dev/sda4 Partition /dev/sda5 Partition 

@Giles dice que esto depende mucho de la plataforma. Aquí hay uno de esos ejemplos.

Estoy ejecutando un sistema CentOS 5.5. Este sistema tiene 4 discos y un controller de 3ware RAID.

En mi caso, lshw -class disk , cat /proc/scsi/scsi y parted --list muestra el controller RAID (3ware 9650SE-4LP). Esto no muestra los discos reales:

solo muestra el controller 3ware RAID que proporciona el volumen / dev / sda:

 # lshw -class disk *-disk description: SCSI Disk product: 9650SE-4LP DISK vendor: AMCC physical id: 0.0.0 bus info: scsi@0:0.0.0 logical name: /dev/sda # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: AMCC Model: 9650SE-4LP DISK Rev: 4.06 Type: Direct-Access ANSI SCSI revision: 05 # parted --list Model: AMCC 9650SE-4LP DISK (scsi) Disk /dev/sda: 2000GB 

Para ver los discos que se encuentran debajo, tuve que instalar la utilidad tw_cli de 3ware y preguntarle al controller.

 # tw_cli info c0 ... VPort Status Unit Size Type Phy Encl-Slot Model ------------------------------------------------------------------------------ p0 OK u0 931.51 GB SATA 0 - WDC WD1002FBYS-02A6 p1 OK u0 931.51 GB SATA 1 - WDC WD1002FBYS-02A6 

Estoy ejecutando fedora 14 y lshw no está disponible aquí (al less no de forma pnetworkingeterminada). Sin embargo, en mi caso, utilicé el command fdisk -l (como usuario root) para get el siguiente resultado:

 Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0006a697 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 16777215 7875584 8e Linux LVM Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/dm-0: 6509 MB, 6509559808 bytes 255 heads, 63 sectors/track, 791 cylinders, total 12713984 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-0 doesn't contain a valid partition table Disk /dev/dm-1: 1543 MB, 1543503872 bytes 255 heads, 63 sectors/track, 187 cylinders, total 3014656 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-1 doesn't contain a valid partition table 

Dado que tanto " ¿Puedo ver qué HDD he instalado? " Como " ¿Cómo puedo determinar la marca y el model de mis dispositivos de almacenamiento? " Están marcados como duplicates de esta pregunta, me sorprende que nadie haya mencionado hdparm y smartctl . Echando un vistazo a algunas máquinas, parece que cualquiera de ellas (cuando no son ambas) a menudo se encuentra ya instalado en distribuciones estándar (incluso antiguas) de Linux.

 # smartctl -i /dev/sda smartctl 6.1 2013-03-16 r3800 [i686-linux-3.9.9-301.fc19.i686.PAE] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Toshiba 2.5" HDD MK..56GSY Device Model: TOSHIBA MK1656GSY Serial Number: 60PKT43CT LU WWN Device Id: 5 000039 2919874b6 Firmware Version: LH013D User Capacity: 160 041 885 696 bytes [160 GB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 2.6, 3.0 Gb/s Local Time is: Mon Jul 22 11:13:37 2013 CEST SMART support is: Available - device has SMART capability. SMART support is: Enabled # hdparm -i /dev/sda /dev/sda: Model=TOSHIBA MK1656GSY, FwRev=LH013D, SerialNo=60PKT43CT Config={ Fixed } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7 * signifies the current active mode 

Como de costumbre, revise la página de manual para más opciones.

Muchos de los commands enumerados lo ayudarán a search discos que ya hayan sido reconocidos por el sistema al arrancar. Con unidades modernas, puede que busque algo que haya insertado mientras la máquina estaba funcionando (lo hice). Me gusta el consejo de http://fnetworkingericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/ :

Intente hacer una nueva búsqueda de los hosts SCSI (cada puerto SATA aparece como un bus SCSI):

echo "0 0 0"> / sys / class / scsi_host / host / scan

… Entonces puede usar sus utilidades de Linux como fdisk para mostrarle información sobre los discos que se encontraron.

 sfdisk -l 

le dará información detallada sobre hardware / discos físicos, incluso si no están montados.

el progtwig está preinstalado en todas las variantes de Linux que he usado, pero debe ser root para usarlo.

Encontré en otra respuesta SE , herramienta inxi muy conveniente:

 inxi -Dxx Drives: HDD Total Size: 810.2GB (42.9% used) ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6 ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926 ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX 

Esto funcionó para mí:

 fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g' 

sudo gparted mostrará todo esto en una GUI.

(No especificó que necesita hacerlo dentro de un terminal, así que me pregunto por qué falta esta solución).

Para devolver la cantidad de dispositivos de bloques , sin herramientas sofisticadas ni syntax o parameters oscuros:

  ls /sys/block/* | grep block | grep sd | wc -l 

En mis casos de testing locales, 47 en mi máquina de guerra más grande y 1 en mi computadora portátil.

En mi humilde opinión, lsblk es el command que está más ampliamente disponible en el mundo de Linux (funciona incluso en puertos como Raspbian). No es mi intención ofender a nadie, pero hay algunos commands que necesitan que conozcas explícitamente el nombre del dispositivo para searchlo. Por ejemplo, debe conocer la existencia de sdc para ejecutar smartctl. Dicho esto, lsblk no es universal, sí en Solaris, pero no hpux. Gracias.

Si haces una

'más / etc / mtab'

Verá lo que el sistema ha montado actualmente con todos los attributes de assembly. El kernel mantiene este file con la ayuda de "/ etc / fstab" y los autofs.