¿Cómo manejar asignaciones de discos duros no determinantes?

¿Cómo manejar asignaciones de discos duros no determinantes?

Recientemente instalé otro disco duro en mi computadora Arch Linux. La primera vez que inicié todo funcionó bien. La próxima vez que reinicié mi computadora, apareció un /dev/sda2 not founderror.

Mira, básicamente a veces mi disco duro de arranque es sday otras veces es sdb. Parece ser completamente aleatorio y no veo ninguna opción para hacerlo no aleatorio en el BIOS. ¿Cómo puedo solucionar esto?

Respuesta1

Si sus dos discos duros están en interfaces diferentes y controlados por controladores diferentes, Linux los nombrará en el orden en que se inicializan los controladores. Si las inicializaciones se realizan en paralelo, esto puede causar que varíen las asignaciones de nombres de dispositivos.

Los nombres de los dispositivos son asignados porudev. Su problema se menciona en la wiki de Arch, pero no parece haber una solución allí.

No estoy familiarizado con Arch, así que explicaré cómo se soluciona este problema en Ubuntu; Las funciones subyacentes las proporciona el kernel de Linux, que es el mismo, pero puede haber ajustes de configuración que hagan que estas funciones funcionen de manera diferente en Arch.

En lugar de utilizar la configuración /dev/sda2del dispositivo raíz (el root=) en el gestor de arranque, puede utilizar un UUID o una etiqueta, con la siguiente sintaxis:

… /boot/vmlinuz root=UUID=01234567-89ab-cdef-0123-456789abcdef ro …
… /boot/vmlinuz root=LABEL=mylabel ro …

El UUID identifica un sistema de archivos de forma única, por lo que desea obtener el UUID del sistema de archivos que está en /dev/sda2. En Ubuntu, /dev/disk/by-uuid/01234567-89ab-cdef-0123-456789abcdefhay un enlace simbólico a /dev/sda2. Si su sistema de archivos tiene una etiqueta (establecida manualmente, depende de usted imponer la unicidad), hay un enlace simbólico debajo /dev/disk/by-label. Las etiquetas y los enlaces UUID se generan mediante las siguientes reglas de udev:

ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"

Respuesta2

Echa un vistazo aNomenclatura de dispositivos de bloqueo persistente.

Personalmente, creo que las etiquetas son las mejores, ya que brindan la singularidad de los UUID, pero son legibles por humanos.

Terminarás con un fstab similar a este:

LABEL=boot /boot ext2 defaults 0 1
LABEL=swap swap swap defaults 0 0
LABEL=root / ext4 defaults 0 1

información relacionada