¿Puedo etiquetar un dispositivo de disco en lugar de una partición?

¿Puedo etiquetar un dispositivo de disco en lugar de una partición?

Conozco el programa e2label y sus amigos para adjuntar una etiqueta a una partición de disco, por ejemplo

e2label /dev/sda1 bla

Lo que quiero hacer es algo diferente: quiero crear una etiqueta para un disco duro, es decir para /dev/sda, no para una partición.

¿Es eso posible y, en caso afirmativo, cómo?

EDITAR: Antecedentes: en un caso con varias bahías HD, me gustaría colocar etiquetas (de papel) en la puerta de la bahía física y colocar la misma etiqueta lógicamente en el disco que puse allí.

EDITAR2: Se trata del servidor Ubuntu Linux 12.04.

EDITAR3: En las particiones GPT también existe la etiqueta parcial, que se puede configurar, por ejemplo, con parted. Verhttps://serverfault.com/q/681088/76442

Respuesta1

Su pregunta inicial ya tiene algunas buenas respuestas, por lo que me centraré en los antecedentes de su pregunta: el etiquetado de discos.

Utilizo el número de serie de la unidad para imprimir etiquetas para bahías de intercambio en caliente; es la mejor manera de identificar la unidad de forma única y consistente. No cambiará independientemente de en qué bahía o en qué controlador esté conectado.

No mencionas si estás usando Linux u otro Unix, pero en Linux puedes obtener una lista de discos (y particiones, que queremos excluir) con su marca, modelo y número de serie buscando en / directorio dev/disk/by-id/. El siguiente alias de bash me parece útil para esto:

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'

(La búsqueda de coincidencias scsi-*busca todas las unidades "similares a scsi", incluidas las unidades SATA y SAS. En sistemas con solo unidades SATA, ata-*también funcionaría)

por ejemplo, en uno de mis sistemas de servidor ZFS, produce un resultado como este:

# lista_discos | clasificar
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 puede ver, el listado /dev/disk/by-id incluye la marca y el número de modelo de cada unidad, así como el número de serie. Todas son unidades SATA conectadas a puertos SATA o SAS en un controlador LSI SAS-2008.

Si tuviera una impresora de etiquetas conectada, sería bastante fácil imprimir etiquetas según la salida de list_disks. En su lugar, usé una vieja rotuladora manual porque eso era lo que tenía. Las etiquetas impresas contienen solo el número de serie sin la marca/modelo (eso es suficiente para identificar la unidad cuando lo necesito). Las etiquetas resultan muy útiles cuando falla una unidad y es necesario reemplazarla.

Respuesta2

Si estamos hablando de Linux, entonces creo que puedes lograr lo que deseas usando udevpara crear un enlace simbólico a tus dispositivos. Si nos fijamos /etc/udev/rules.d, hay un archivo llamado 70-persistent-cd.rulescuyo contenido tiene líneas como:

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

Lo que esto hace es crear el enlace simbólico /dev/cdromal dispositivo identificado por su dirección de bus PCI. Debería poder lograr lo que desea identificando el disco duro usando su (¿número de bahía? Lo siento, no tengo experiencia allí) y usando una sintaxis similar a la anterior para agregar un enlace simbólico como /dev/bay1, por ejemplo. El siguiente artículo sobre cómo escribir udevreglas puede resultar útil:

Escribir reglas de udev

Nota

Gracias a la respuesta de slm, tenga en cuenta que esta solución hace que las etiquetas sean específicas de las bahías de HDD en lugar de los discos dentro de ellas. Por lo tanto, si usa las etiquetas /dev/bay1y /dev/bay2y tiene el disco duro A en el compartimento 1 y el disco duro B en el compartimento 2, entonces /dev/bay1se refiere al disco A y /dev/bay2al disco B. Si, por alguna razón, intercambia los discos A y B, te /dev/bay1refieres al disco B y /dev/bay2al disco A. Según tu pregunta, creo que esta es tu intención. Por favor corrígeme si estoy equivocado.

Respuesta3

No e2label particiones, sino sistemas de archivos e2label. Esos sistemas de archivos pueden estar en particiones de archivos, en discos completos, en dispositivos de bloques de red... no importa.

Entonces, sí, si hay un sistema de archivos ext2/3/4 directamente en /dev/sda, puedes etiquetarlo igual que uno que estaría en /dev/sda1.

Ahora, si no hay un sistema de archivos directamente /dev/sdapero, por ejemplo, /dev/sdaestá particionado (usando GPT, MBR, LVM...) en varias particiones, entonces obviamente no, no puedes usar e2label /dev/sda.

En la partición GPT, puede dar nombres a las particiones, por lo que podría crear una partición grande de un sector con un nombre que ayude a identificar su disco. Puedes hacerlo con el ccomando en gdisk.

Respuesta4

Para responder a su pregunta sobre si es posible etiquetar un disco en lugar de una partición, la respuesta es no. No conozco ningún método para hacerlo.

Puede utilizar el método descrito por @JosephR, pero tenga en cuenta que esta configuración depende del sistema, por lo que si llevara ese HDD a otro sistema, el "etiquetado" que propuso se perdería. No está vinculado al disco de ninguna manera significativa.

Por cierto, puedes ver las etiquetas y los UUID configurados para diferentes unidades usando el blkidcomando.

Ejemplo

$ 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" 

información relacionada