Posso rotular um dispositivo de disco em vez de uma partição?

Posso rotular um dispositivo de disco em vez de uma partição?

Eu conheço o programa e2label and friends para anexar um rótulo a uma partição de disco, por exemplo

e2label /dev/sda1 bla

O que eu quero fazer é algo diferente: quero criar um rótulo para um disco rígido, ou seja, para/dev/sda, não para uma partição.

Isso é possível e se sim, como?

EDIT: Background: Em um caso com múltiplas baias de HD eu gostaria de colocar etiquetas (de papel) na porta da baia física e colocar a mesma etiqueta logicamente no disco que coloquei lá.

EDIT2: Trata-se do servidor Ubuntu Linux 12.04.

EDIT3: Nas partições GPT existe também o partlabel, que pode ser definido com, por exemplo, parted. Verhttps://serverfault.com/q/681088/76442

Responder1

Sua pergunta inicial já tem algumas boas respostas, então vou me concentrar no contexto da sua pergunta, rotulando os discos.

Eu uso o número de série da unidade para imprimir etiquetas para baias hot swap - é a melhor maneira de identificar a unidade de maneira única e consistente. Ele não mudará independentemente de qual compartimento ou controlador estiver conectado.

Você não menciona se está usando Linux ou algum outro Unix, mas no Linux você pode obter uma lista de discos (e partições, que queremos excluir) com sua marca, modelo e número de série olhando no / diretório dev/disk/by-id/. Acho o seguinte alias do bash útil para isso:

alias list_disks='find /dev/disk/by-id/ -iname 'scsi-*' | grep -v -- -part | while read disk ; do echo $(readlink $disk | sed -e s:../../:: ) $(basename $disk); done'

(a correspondência para scsi-*encontrar todas as unidades "semelhantes a scsi", incluindo unidades SATA e SAS. em sistemas apenas com unidades SATA, ata-*também funcionaria)

por exemplo, em um dos meus sistemas de servidor ZFS, ele produz uma saída como esta:

# list_disks | organizar
sdb scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2195141
sdc scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2114122
sdd scsi-SATA_ST31000528AS_9VP4P4LN
sde scsi-SATA_ST31000528AS_6VP3FWAG
sdf scsi-SATA_ST31000528AS_9VP509T5
sdg scsi-SATA_ST31000528AS_9VP4RPXK
sdh scsi-SATA_OCZ-VECTOR_OCZ-0974C023I4P2G1B8
sdi scsi-SATA_OCZ-VECTOR_OCZ-8RL5XW08536INH7R
sdj scsi-SATA_ST31000528AS_9VP18CCV
sdk scsi-SATA_WDC_WD10EARS-00Y_WD-WMAV50933036

Como você pode ver, a listagem /dev/disk/by-id inclui a marca e o número do modelo de cada unidade, bem como o número de série. São todas unidades SATA conectadas a portas SATA ou portas SAS em um controlador LSI SAS-2008.

Se eu tivesse uma impressora de etiquetas conectada, seria fácil imprimir etiquetas com base na saída do arquivo list_disks. Em vez disso, usei um antigo gravador de etiquetas manual porque era o que eu tinha. As etiquetas impressas contêm apenas o número de série sem a marca/modelo (é o suficiente para eu identificar o drive quando preciso). As etiquetas são muito úteis quando uma unidade falha e precisa ser substituída.

Responder2

Se estamos falando de Linux, então acho que você pode conseguir o que deseja usando udevpara criar um link simbólico para seus dispositivos. Se você olhar /etc/udev/rules.d, há um arquivo chamado 70-persistent-cd.rulescujo conteúdo tem linhas como:

SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"

O que isto faz é criar o link simbólico /dev/cdrompara o dispositivo identificado pelo seu endereço de barramento PCI. Você deve ser capaz de realizar o que deseja identificando o HDD usando seu (número do compartimento? Desculpe, não tenho experiência) e usando sintaxe semelhante à acima para adicionar um link simbólico como /dev/bay1, por exemplo. O seguinte artigo sobre udevregras de redação pode ser útil:

Escrevendo regras do udev

Observação

Graças à resposta do slm, observe que esta solução torna as etiquetas específicas para os compartimentos de HDD, e não para os discos dentro deles. Assim, se você usar os rótulos /dev/bay1e /dev/bay2tiver o disco rígido A no compartimento 1 e o disco rígido B no compartimento 2, então /dev/bay1se refere ao disco A e /dev/bay2se refere ao disco B. Se, por algum motivo, você trocar os discos A e B, você /dev/bay1se refere ao disco B e /dev/bay2ao disco A. Pela sua pergunta, acredito que essa seja sua intenção. Por favor me corrija se eu estiver errado.

Responder3

Você não e2label partições, você e2label sistemas de arquivos. Esses sistemas de arquivos podem estar em partições de arquivos, em discos inteiros, em dispositivos de bloco de rede... não importa.

Então, sim, se houver um sistema de arquivos ext2/3/4 diretamente em /dev/sda, você poderá rotulá-lo da mesma forma que estaria em /dev/sda1.

Agora, se não houver nenhum sistema de arquivos diretamente, /dev/sdamas, por exemplo, /dev/sdaestiver particionado (usando GPT, MBR, LVM...) em várias partições, então obviamente não, você não pode usar o e2label /dev/sda.

No particionamento GPT, você pode dar nomes às partições, para poder criar uma partição grande de um setor com um nome para ajudar a identificar seu disco. Você pode fazer isso com o ccomando em gdisk.

Responder4

Para responder à sua pergunta se é possível rotular um disco em vez de uma partição, a resposta é não. Não conheço nenhum método para fazer isso.

Você pode usar o método descrito por @JosephR, mas perceba que essa configuração depende do sistema; portanto, se você levasse esse HDD para outro sistema, a "rotulagem" proposta por ele seria perdida. Não está vinculado ao disco de nenhuma maneira significativa.

Aliás, você pode ver os rótulos e UUIDs definidos para diferentes unidades usando o blkidcomando.

Exemplo

$ blkid
/dev/sda1: LABEL="SYSTEM_DRV" UUID="XXXXXX" TYPE="ntfs" 
/dev/sda2: LABEL="Windows7_OS" UUID="XXXXXX" TYPE="ntfs" 
/dev/sda3: LABEL="Lenovo_Recovery" UUID="XXXX" TYPE="ntfs" 
/dev/sda5: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext4" 
/dev/sda6: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXfG93LA" TYPE="LVM2_member" 
/dev/mapper/vg_grinchy-lv_root: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4" 
/dev/mapper/vg_grinchy-lv_swap: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="swap" 
/dev/mapper/vg_grinchy-lv_home: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4" 

informação relacionada