Sé sobre el programa e2label y 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, que es para / dev / sda, no para una partición.
¿Es eso posible y si es así, cómo?
EDITAR: Antecedentes: en un caso con múltiples bahías HD, me gustaría poner etiquetas (de papel) en la puerta de la bahía física y colocar la misma etiqueta lógicamente en el disco que he colocado allí.
EDIT2: se trata del servidor Ubuntu Linux 12.04.
EDITAR3: En las particiones GPT también está la etiqueta de partícula, que se puede configurar con, por ejemplo, parted. Ver /server//q/681088/76442
Respuestas:
Su pregunta inicial ya tiene algunas buenas respuestas, por lo que me centraré en el fondo de su pregunta, etiquetando los 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 manera única y consistente. No cambiará independientemente de qué bahía o qué controlador esté enchufado.
No menciona si está utilizando Linux o algún otro Unix, pero en Linux puede obtener una lista de discos (y particiones, que queremos excluir) con su marca, modelo y número de serie al buscar en el / directorio dev / disk / by-id /. Me parece útil el siguiente alias bash para esto:
(la coincidencia para
scsi-*
encuentra 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 resultados como este:
Como puede ver, la lista / dev / disk / by-id incluye la marca y el número de modelo de cada unidad, así como el número de serie. Son todas las unidades SATA conectadas a puertos SATA o puertos SAS en un controlador LSI SAS-2008.
Si tuviera una impresora de etiquetas conectada, sería bastante fácil imprimir etiquetas en función de la salida de
list_disks
. En su lugar, utilicé una antigua grabadora de etiquetas 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 el disco cuando lo necesito). Las etiquetas son muy útiles cuando falla una unidad y necesita ser reemplazada.fuente
alias list_disks='find /dev/disk/by-id/ -iname scsi-* -o -iname usb-* | grep -v -- -part | while read disk ; do echo $(basename $(readlink $disk)) $(basename $disk); done | sed -re "s/(usb|scsi)-// ; s/(SATA|Generic)_//" | sort'
. también encuentra discos usb y elimina datos extraños en la salida.Si estamos hablando de Linux, entonces creo que puede lograr lo que quiere usando
udev
para crear un enlace simbólico a sus dispositivos. Si nos fijamos/etc/udev/rules.d
, hay un archivo llamado70-persistent-cd.rules
cuyo contenido tiene líneas como:Lo que esto hace es que crea el enlace simbólico
/dev/cdrom
al dispositivo identificado por su dirección de bus PCI. Debería ser capaz de lograr lo que quiere identificando el HDD usando su (número de compartimiento? Lo siento, no hay 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 sobreudev
reglas de escritura puede ser ú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 para las bahías de HDD en lugar de los discos dentro de ellas. Por lo tanto, si utiliza las etiquetas
/dev/bay1
y/dev/bay2
tiene el disco duro A en el compartimento 1 y el disco B en el compartimento 2, se/dev/bay1
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. De tu pregunta, creo que esta es tu intención. Por favor corrígeme si estoy equivocado.fuente
No e2label particiones, e2label sistemas de archivos. Esos sistemas de archivos pueden estar en particiones en archivos, en discos completos, en dispositivos de bloqueo de red ... no importa.
Entonces, sí, si hay un sistema de archivos ext2 / 3/4 directamente activado
/dev/sda
, puede etiquetarlo de la misma manera que uno que estaría activado/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 puedes usarloe2label /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 para ayudar a identificar su disco. Puedes hacerlo con el
c
comando ingdisk
.fuente
Para responder a su pregunta 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 usar 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, se perdería el "etiquetado" que propuso. No está vinculado al disco de ninguna manera significativa.
Por cierto, puede ver las etiquetas y los UUID establecidos para diferentes unidades usando el
blkid
comando.Ejemplo
fuente
blkid
parece que solo enumera particiones, no dispositivos, que no es lo que le interesa al OP./dev/disk/by-id
y usted puede hacerloudev
al estilo de como se muestra en esta respuesta .Supongo que su objetivo principal es identificar inequívocamente un disco físico. Desafortunadamente, no creo que haya una forma estándar de etiquetar un disco de la misma manera que se puede etiquetar un sistema de archivos.
Una forma es usar el modelo y el número de serie del disco. En Linux, puede recuperar esos identificadores con
hdparm -i /dev/sdX
. Lo bueno del número de serie es que podría estar ya impreso en la etiqueta del fabricante. (Supongo que te importa más Linux desde que lo mencionastee2label
en tu pregunta. Si es así, edita tu pregunta y agrega la etiqueta de Linux ).Si está utilizando un controlador RAID de hardware, es
hdparm
posible que no funcione para usted, en cuyo caso deberá consultar las herramientas de línea de comandos de su controlador RAID.Si desea identificarlo por algo en el contenido del disco, puede usar el GUID del disco, que se almacena en el encabezado de la tabla de partición GPT ( bytes 56-71 de LBA 1 ). Es una cadena aleatoria arbitraria en lugar de una etiqueta de su elección, pero es como una etiqueta en el sentido de que es persistente hasta que decida golpear la tabla de particiones. En Linux, puede ver el GUID del disco usando
gdisk -l /dev/sdX
.fuente
Según las respuestas que obtuve (¡Gracias, muchachos!), Parece que no hay forma de etiquetar los discos, sino solo particiones. Entonces la respuesta probablemente es "NO".
Seguiré las sugerencias propuestas por @cas y @ 200_success: pegaré los números de serie de los discos con una pegatina en las puertas de la bahía.
Crear una pequeña partición en cada disco solo para poder etiquetar esta partición (como lo sugiere @Stephane Chazelas) también es una opción, pero creo que sería demasiado confuso para alguien más que podría tener que mantener el sistema más adelante. .
fuente
Cree una
udev
regla usando el WWN exclusivo garantizado del disco (si tiene uno), de lo contrario, use las ID de proveedor y de serie combinadas:Obtenga los valores requeridos:
Masajee estos valores
udev
rules
como:udevadm trigger
Para nombrar automáticamente el enlace simbólico usando los valores dados por
udevadm info -q all /dev/<YOUR-DEVICE>
, puede usar:También es posible crear
ENV
variables a partir deATTRS
valores para obtener una identificación única más corta.fuente
Si tu
ls /dev/disk-by-path/pci*
...Definitivamente verá una ruta PCI para cada bahía de unidad. Solo necesita usar 1 disco conocido para asegurarse de obtener las etiquetas correctas.
Use
blkid /dev/disk-by-path/pci*
para ver qué particiones de disco están en la ruta PCI.Puedes montar usando esa ruta también.
fuente
Me gusta la solución @cas, pero aquí está mi 2 ¢
fuente
El disco ya está etiquetada como
sda
,sdb
,sdc
... Las particiones se marcaron a continuación, por ejemplo, ensda
:sda1
,sda2
...Puede enumerar todas las etiquetas para discos y particiones con
ls /dev/sd*
fuente