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 udev
para crear un enlace simbólico a tus dispositivos. Si nos fijamos /etc/udev/rules.d
, hay un archivo llamado 70-persistent-cd.rules
cuyo 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/cdrom
al 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 udev
reglas puede resultar útil:
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/bay1
y /dev/bay2
y tiene el disco duro A en el compartimento 1 y el disco duro B en el compartimento 2, entonces /dev/bay1
se refiere al disco A y /dev/bay2
al disco B. Si, por alguna razón, intercambia los discos A y B, te /dev/bay1
refieres al disco B y /dev/bay2
al 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/sda
pero, por ejemplo, /dev/sda
está 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 c
comando 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 blkid
comando.
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"