Todos os dispositivos de discos em minhas máquinas HW começam com - sd?

3

no meu script bash eu uso a sintaxe lsblk | grep sd para capturar todo o disco em minhas máquinas HW (não inclui flash card ou rom)

Eu apenas me preocupo que algum nome de dispositivo de disco será diff de sd, e eu vou perder esses discos

é possível?

lsblk | grep sd
sda                8:0    0   150G  0 disk
├─sda1             8:1    0   500M  0 part /boot
└─sda2             8:2    0 149.5G  0 part
sdb                8:16   0    20G  0 disk /id/sdb
sdc                8:32   0    20G  0 disk /id/sdc
sdd                8:48   0    20G  0 disk /id/sdd
sde                8:64   0    20G  0 disk /id/sde
sdf                8:80   0    20G  0 disk /id/sdf
sdg                8:96   0    20G  0 disk
sdh                8:112  0    20G  0 disk
sdi                8:128  0    20G  0 disk
sdj                8:144  0    20G  0 disk
sdk                8:160  0    20G  0 disk
    
por yael 23.12.2017 / 23:08

3 respostas

2

A maioria dos drivers de disco usa o prefixo sd , mas não todos. Historicamente, sd significava "disco SCSI", mas a maioria dos discos usa um protocolo próximo a SCSI e a maioria deles Os drivers de disco do Linux usam a camada sd genérica mais uma parte específica do controlador. No entanto, isso não é uma obrigação, então você precisa verificar com o seu hardware. Por exemplo, os dispositivos eMMC têm o prefixo mmcblk . Alguns drivers RAID de hardware usam um prefixo diferente. Os discos da máquina virtual podem ou não ser /dev/sd* , dependendo da tecnologia de virtualização.

Observe que sd inclui drivers removíveis também. Por exemplo, todas as unidades USB têm o prefixo sd , independentemente de serem discos rígidos, chaves USB, leitores de cartão SD, etc.

Observe também que grep sd é muito frágil, pois corresponde a sd em qualquer lugar da linha, por exemplo, em um disco ou rótulo de partição. grep '^sd' seria menos frágil.

Em suma, grep '^sd' faz algo que não é muito útil, mas pode funcionar para você, dependendo do seu hardware. Se você migrar sua instalação para um hardware diferente, ela poderá parar de funcionar. Então você deve tentar encontrar outra coisa. O que mais usar depende do que você entende por “todo o disco (…) (não inclui flash card ou rom)”. O Flash é uma tecnologia de disco, afinal de contas, e não há razão para distingui-lo dos discos rotativos. E geralmente é uma má ideia confiar no fato de que uma máquina é ou não virtualizada. E se você começar a usar o RAID, não fica claro se você está interessado no hardware subjacente ou nas partições disponíveis para o software.

Se você deseja ver apenas unidades não removíveis, procure em /sys/block/* e verifique quais contêm 0 no arquivo removable . Isso inclui dispositivos de bloco "não hardware", como suportes de RAID / LVM e dispositivos de loop.

No Linux, recomendo usar o LVM para mídia não removível. Isso torna a administração muito mais fácil. Se você usar o LVM, então pvdisplay ou lvdisplay provavelmente mostrará as informações que você está procurando (mas é claro que não tenho certeza se você não disse o que quer).

    
por 24.12.2017 / 20:36
1

Pelo menos (P) as unidades ATA, SATA e USB são exibidas como /dev/sdX . Se você tiver outro hardware, talvez queira verificar como eles aparecem. /proc/partitions deve mostrar uma lista legível de todos os dispositivos de armazenamento em massa que o sistema detectou.

/dev/sd* era originalmente apenas para unidades SCSI, mas expandiu-se um pouco no escopo. O driver IDE / ATA usado em tempos passados nomeou os discos /dev/hd* , mas "levou os desenvolvedores à loucura" e a atual o driver faz com que eles apareçam como discos SCSI, como /dev/sd* .

Alguns controladores RAID de hardware têm seu próprio esquema de nomenclatura, como /dev/cciss/c0d0p1 etc. para controladores HP RAID, e discos em algumas máquinas virtuais podem aparecer como /dev/xvd* (Xen) ou /dev/vd* (Unidades virtioKVM ).

Além disso, os mais comuns são provavelmente discos RAM, /dev/ram* ; disquetes /dev/fd* ; e dispositivos RAID de software (discos multidispositivos), /dev/md*

    
por 24.12.2017 / 17:36
0

Somente dispositivos gerenciados pelo sistema psuedo scsi são listados como sdX. Os dispositivos de blocos mais antigos seriam mostrados como / dev / hda, / dev / hdb etc. Os cartões SD aparecem como / dev / mmcblk0, / dev / mmcblk1 etc.

    
por 04.09.2018 / 14:22