GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se intercambia /dev/sda con /dev/sdb?

Tengo el mismo problema para cambiar el sda y sdb nombre del disco Traté de escribir algunas reglas udev similares con la publicación anterior en mis propios servidores HP. Pero usé el tamaño del disco en /etc/udev/rules.d/00-corrections.rules

KERNEL=="sd?", ATTR{size}=="781357232", NAME="sda"
KERNEL=="sd??", ATTRS{size}=="781357232", NAME="sda%n"
KERNEL=="sda", ATTR{size}=="3125515952", NAME="sdb"
KERNEL=="sda?", ATTRS{size}=="3125515952", NAME="sdb%n"

Antes de esta regla encuentro el tamaño de los dispositivos por cat /sys/block/sda/size y cat /sys/block/sdb/size que se describe aquí:Búsqueda de información de sysfs.

Pero cuando trato de probar la regla udev por udevadm test /sys/block/sdb Veo esta línea en la salida:

NAME="sda" ignorado, no se puede cambiar el nombre de los nodos del dispositivo del kernel; corríjalo en /etc/udev/rules.d/00-corrections.rules:1

Tengo ubuntu 18.04 y descubrí que esto es imposible (al menos en ubuntu 18.04) basado en esta publicación:¿Hay alguna forma de cambiar los nombres de los dispositivos en el directorio /dev?


En estos días, el kernel de Linux llena dinámicamente /dev/ de acuerdo con las reglas de UDEV.

Permítanme explicar primero cómo funcionan los archivos del dispositivo. Cada archivo de dispositivo, normalmente un archivo de dispositivo de bloque, tiene un número mayor y menor. Estos números en realidad describen a qué dispositivo apunta el archivo. El nombre no juega ningún papel en esto. Echemos un vistazo a nuestro caso específico de discos:

# ls -l sd*
brw-rw---- 1 root disk 8, 0 Aug 22 15:45 sda
brw-rw---- 1 root disk 8, 1 Aug 22 15:45 sda1
brw-rw---- 1 root disk 8, 2 Aug 22 15:45 sda2
brw-rw---- 1 root disk 8, 3 Aug 22 15:45 sda3
brw-rw---- 1 root disk 8, 5 Aug 22 15:45 sda5
brw-rw---- 1 root disk 8, 6 Aug 22 15:45 sda6

Aquí puede ver que mi primer disco tiene varias particiones y que arranqué el 22 de agosto a las 3:00 p. m., que es cuando el núcleo creó los archivos de acuerdo con las reglas. También puede ver que el número mayor es 8 y los números menores se usan para acceder a las particiones (el 0 apunta a todo el disco). La 'b' al comienzo de cada línea indica que cada uno de estos es un archivo especial de "dispositivo de bloque".

Como dije, el kernel crea los archivos dinámicamente "en estos días". No siempre fue así y no es así en otros sistemas Unix. Allí, los archivos se crearían estáticamente y el usuario crearía o manipularía estos archivos.

Es perfectamente posible crear sus propios archivos de dispositivo, con su propio nombre y números mayores/menores. Ver mknod (man mknod ) para eso. Sin embargo, después de iniciar de nuevo, sus archivos personalizados desaparecerán.

La segunda posibilidad es cambiar las reglas de la UDEV. Las reglas se procesarán durante el arranque del sistema y le garantizan un comportamiento constante de forma permanente. Puede encontrar una buena guía sobre estas reglas aquí:http://www.reactivated.net/writing_udev_rules.html

Verá que es posible definir una regla que cree "sda*" dada la información de hardware específica que coincida con su dispositivo. Deberá reemplazar las reglas originales que crearían sda con las suyas. Cómo funciona esto depende de su distribución.

Como creo que este es un negocio peligroso para el novato, no le explicaré los pasos específicos; el documento que vinculé arriba le brindará toda la información que necesita y, de hecho, debería leerlo todo.


Linux
  1. Cómo generar una contraseña aleatoria en Linux usando /dev/random

  2. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  3. ¿Qué tan portátiles son /dev/stdin, /dev/stdout y /dev/stderr?

  4. ¿Cuándo usar /dev/random Vs /dev/urandom?

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

tty (/dev/tty) vs pts (/dev/pts) en Linux

DD de /dev/zero a /dev/null... lo que realmente sucede

/dev/sdb:No existe tal archivo o directorio (pero /dev/sdb1, etc. existe)

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

kernel:deshabilitar /dev/kmem y /dev/mem

¿Está mal vincular /dev/random a /dev/urandom en Linux?