Fondo
Tenía un sistema nuevo en el que había pasado mucho tiempo configurando el software para realizar todo tipo de servicios y luego descubrí que la unidad era potencialmente defectuosa. Entonces decidí reemplazar el disco y conservar el contenido del nuevo disco.
El disco del sistema también tuvo un problema al iniciar correctamente kernel
que parecía que no pude solucionar (seguí todas las grub
instrucciones pero simplemente no arrancaba correctamente kernel
de forma predeterminada, solo si elegías manualmente la correcta). Entonces, pensé que la mejor manera era simplemente hacer una nueva instalación en Fedora Server
el nuevo disco y eso solucionaría el problema de arranque en el camino.
Qué pasó
El nuevo disco era mucho más grande, así que lo particioné de forma un poco diferente durante el proceso de instalación. Luego quité la unidad y puse el disco del sistema nuevo y el antiguo en otro servidor que tenía cerca. Por precaución, guardé el fstab
disco del nuevo sistema, sabiendo que tenía la partición UUIDs
.
Hay muchas formas de mover cosas y decidí que quería una partición raíz limpia en el nuevo disco del sistema. Pensé dd
que podría hacer esto, pero estoy acostumbrado a usarlo donde las particiones son del mismo tamaño y estaba un poco inseguro, así que simplemente reformateé la partición raíz ("/") con gparted
. Luego moví los archivos usando herramientas normales del sistema operativo. Luego corté y pegué el UUID
material de la nueva instalación y lo inserté en el servidor que no estaba en stock fstab
que estaba reparando.
Eso salió bien.
Luego intenté iniciar el sistema. Publicó, luego llegó al grub
cargador de arranque, seleccionó automáticamente el kernel correcto y ¡listo! ... ¡Hasta que no fue así!
Llegó a "mostrar la pantalla de inicio de Plymouth" o algo así, se detuvo y luego dio muchas advertencias de tiempo de espera de algo que se llamaba a sí mismo dracut
. Desde aquí, tomé una captura de pantalla con mi teléfono. Dice:
Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-uuid/<a uuid> does not exist
Generating "/run/initramfs/rdsosreport.txt"
seguido de una sugerencia para utilizarlo journalctl
y quizás guardarlo rdsosreport.txt
para informar de errores.
¡ACK! ¿Qué hacer? Busqué por todas partes esto Warning [...] does not exist
y dracut emergency shell
las cosas citadas anteriormente. ¡Nada!
Respuesta1
Actualizar fstab
Es necesario actualizar /etc/fstab
los archivos con el UUID adecuado de la partición.
Actualizar crypttab
Si su partición anterior estaba cifrada, deberá eliminar la entrada de/etc/crypttab
Si su nueva partición está cifrada, deberá agregar la entrada correspondiente en el/etc/crypttab
Regenerar initramfs
Después de actualizar el archivo /etc/fstab
and /etc/crypttab
, debe actualizar la imagen initramfs usando dracut.
Puede actualizar la imagen de dracut desde el shell de emergencia de dracut ejecutando
# dracut --hostonly --regenerate-all --force
Referencias
Respuesta2
El mensaje:
Warning: /dev/disk/by-uuid/<uuid> does not exist
es una pista importante.
Resulta que la partición raíz UUID
está almacenada en dos lugares en la grub2
parte de la partición del servidor Fedora moderno /boot
. Pero en este escenario, en realidad hay tres UUID
problemas.
El reformateo de la partición raíz ("/") en realidad cambió el archivo UUID
.UUID
Por lo tanto, primero hay que descubrir lo nuevo y luego colocarlo en los lugares correctos. Hay muchas maneras de encontrarlo, UUIDs
pero una herramienta de línea de comandos para hacerlo es blkid
, como en este ejemplo:
# blkid
/dev/sda1: UUID="64bbac09-1a12-4bea-8873-212ffb56f2a8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8a09913a-fdb2-42a0-98e3-6b89e16374d2"
Tenga en cuenta que para cada partición, UUIDs
esta herramienta muestra dos; quieres el primero de estos. Tenga en cuenta también que los usuarios sin privilegios no pueden ejecutar blkid
.
UUID
Estos son los tres lugares donde debe estar la partición raíz :
- En
/etc/fstab
la línea donde se describe el montaje de la partición raíz y; - En
/boot/grub2.cfg
la línea configurando las opciones del kernel. La forma más rápida de encontrarlo es buscar el primeroUUID
si aún lo tienes. O busque"set kernelopts="root=UUID="
y; - En
/boot/grub2/grubenv
una línea que se parece a la línea citada en el/boot/grub2.cfg
archivo. Buscar:kernelopts=root=UUID=
Recuerde cambiar solo el UUID que sea nuevo y dejar todo lo demás como estaba. Tal vez haga una copia de seguridad del archivo antes de editarlo, ¡por si acaso!