Problema al iniciar / pantalla de initramfs
Lee
-
drom -
drom -
Hola,
Quise lanzarme de lleno en el mundo de Linux hace un mes. Instalé Zorin OS en mi disco duro. Todo iba bien hasta esta mañana.
Desde esta mañana, mi pantalla muestra el siguiente mensaje:
Así que, queriendo encontrar la solución por mi cuenta y sin querer perder mis datos, leí un poco sobre el tema y encontré que el problema es que
1/no debí forzar el cierre (mantener apretado 3s+) (pero, ¿qué hacer cuando se bloquea mi computadora? y también, ¿por qué se bloquea de repente?)
2/ es un problema de arranque, si puedo expresarlo así. Sin embargo, leí que podría intentar el comando
Afortunadamente, tengo mi USB booteable que me permite probar Zorin OS antes de instalarlo / instalarlo.
También leí que desde mi USB podría reparar mi SO con el comando
Sin embargo, para hacer las cosas bien, encrypté mi disco duro (una opción que Zorin ofrece / no sé si todas las distribuciones de Linux lo proponen) y creo (no estoy seguro ya que soy principiante en Linux) que eso bloquea, entre otras cosas.
Intenté este comando
También intenté el comando
Así que finalmente opté por boot repair siguiendo las líneas de código para instalarlo y actualizarlo // lo lancé y me dio un informe que está aquí. http://paste.ubuntu.com/p/8x3pSzjQSj/
Así que dos preguntas: según el informe de boot repair, ¿mi problema está solucionado? Si no, ¿qué más puedo hacer, por favor, sabiendo que me gustaría no perder mis datos?
Configuración: Linux / Firefox 73.0
Quise lanzarme de lleno en el mundo de Linux hace un mes. Instalé Zorin OS en mi disco duro. Todo iba bien hasta esta mañana.
Desde esta mañana, mi pantalla muestra el siguiente mensaje:
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell a(ash)
Enter 'help' for a list of built-in commands.
(initramfs)
Así que, queriendo encontrar la solución por mi cuenta y sin querer perder mis datos, leí un poco sobre el tema y encontré que el problema es que
1/no debí forzar el cierre (mantener apretado 3s+) (pero, ¿qué hacer cuando se bloquea mi computadora? y también, ¿por qué se bloquea de repente?)
2/ es un problema de arranque, si puedo expresarlo así. Sin embargo, leí que podría intentar el comando
fsck. Aunque no aparece cuando escribo
helpal inicio.
Afortunadamente, tengo mi USB booteable que me permite probar Zorin OS antes de instalarlo / instalarlo.
También leí que desde mi USB podría reparar mi SO con el comando
fsck -y /dev/sdb1(concluí que era el
sdbporque
sdaparece ser la USB booteable)
Sin embargo, para hacer las cosas bien, encrypté mi disco duro (una opción que Zorin ofrece / no sé si todas las distribuciones de Linux lo proponen) y creo (no estoy seguro ya que soy principiante en Linux) que eso bloquea, entre otras cosas.
Intenté este comando
sudo fdisk -l mountpara intentar una reparación o incluso una reinstalación sin pérdida de datos, si es posible, pero no da resultados.
También intenté el comando
sudo fsck /dev/sdb1, una vez más sin éxito.
Así que finalmente opté por boot repair siguiendo las líneas de código para instalarlo y actualizarlo // lo lancé y me dio un informe que está aquí. http://paste.ubuntu.com/p/8x3pSzjQSj/
Así que dos preguntas: según el informe de boot repair, ¿mi problema está solucionado? Si no, ¿qué más puedo hacer, por favor, sabiendo que me gustaría no perder mis datos?
Configuración: Linux / Firefox 73.0
2 respuestas
-
Hola,
Varios elementos de respuesta.
Explicación del error
Respecto al error de busybox: grub es el menú que permite elegir en qué sistema (y para Linux, con qué núcleos y qué opciones) se inicia. Cuando grub falla, típicamente ves un terminal "busybox". Puede fallar por múltiples razones (típicamente, un disco duro faltante, un núcleo no encontrado, particiones incoherentes con respecto a su configuración, etc).
En la práctica, busybox no permite hacer gran cosa. La mayoría de las veces, hay que pasar por una reparación utilizando una llave USB booteable. Desde esta debe lanzarse un Linux permitiendo iniciar un "verdadero" terminal, desde el cual se podrá llevar a cabo la reparación. En sí, un disco (USB o CD) de instalación de Linux es suficiente. Pero no es obvio cuando uno es principiante.
Por eso se creó boot-repair. Es un Linux booteable en una llave USB, pero este ha sido personalizado para que un principiante pueda realizar la reparación. Así que estás en el buen camino :)
Luego no sé quién te dijo que hicieras unfsck
(verificación del sistema de archivos) pero dudo mucho que eso te desbloquee. En terminología de Windows, esto corresponde a un scandisk, pero no es eso lo que corregirá tu configuración de grub para hacerla coherente con tu(s) discos duros. Comandos comosudo update-grub
, lanzados desde tu Linux "chrooted" tienen mucho más sentido.
Algunos requisitos previos
Entonces, ¿qué es unchroot
?
Bajo Linux, no hay noción de unidades como en Windows. No hay C: u otra. Hay una estructura jerárquica, cuya raíz es/
que contiene todo. La noción más cercana es lo que se llama en Linux los "devices" (ver /dev). En los Linux modernos, los discos típicamente tienen un nombre que sigue esta nomenclatura:-
/dev/sda
identifica el primer disco (USB, disco duro, otro...) -
/dev/sdb
identifica el segundo disco (USB, disco duro, otro...) -
/dev/sda1
identifica la primera partición del disco sda. -
/dev/md0
designa un disco RAID
Los devices en sí mismos no son directamente legibles. Hay que montar un device para ver el contenido de la partición que representa. Eso es lo que hace el comandomount
.
En particular, algunos de estos devices serán montados (como muñecas rusas) de modo que constituyan el contenido expuesto en la jerarquía/
. Típicamente:-
/
contiene (si omites los elementos que siguen) la partición del sistema Linux en el que has iniciado -
/home
contiene la partición de Linux con tus documentos - los posibles periféricos, particiones de Windows, comparticiones remotas, etc. generalmente se montan en un subdirectorio de
/media
o de/mnt
.
En resumen, dado que/
corresponde al sistema Linux en el que has iniciado, no tiene el mismo significado cuando inicias en un Linux USB o en el Linux de tu disco duro./
corresponde al sistema en el que has iniciado. Pero, si inicias desde tu Linux USB, puedes montar la partición de Linux del disco duro en un directorio (digamos/media/linux
).
Por lo tanto, si inicias desde tu Linux USB y montas tu Linux del disco duro en/media/linux
, la configuración de grub estará en ese momento en/media/linux/etc/default/grub
y no en/etc/default/grub
.
Sin embargo, Linux permite "mover"/
(bajo ciertas condiciones), en mi ejemplo, a nivel de/media/linux
. Eso es lo que se llama hacer unchroot
. Así que si te aseguras de que en este directorio esté todo lo necesario y te chrootes dentro, entonces todo sucederá en este terminal "como si" hubieses iniciado en el Linux del disco duro. Y desde allí, en particular, podrás reinstalar/reconfigurar todo lo que esté roto.
Reparar grub (en condiciones normales)
La esencia del procedimiento indicado en boot-repair consiste en realizar estechroot
. Dado que has logrado hacer un informe de boot repair, significa que lo has conseguido.
Idealmente, basta con lanzar en el entorno chrootedsudo update-grub
lo que debería parecerse a esto:
(mando@aldur) (~) $ sudo update-grub
[sudo] Contraseña de mando:
Generando archivo de configuración de grub ...
Imagen de fondo encontraday: /usr/share/images/desktop-base/desktop-grub.png
Imagen de Linux encontrada: /boot/vmlinuz-5.4.0-4-amd64
Imagen initrd encontrada: /boot/initrd.img-5.4.0-4-amd64
Imagen de Linux encontrada: /boot/vmlinuz-5.4.0-3-amd64
Imagen initrd encontrada: /boot/initrd.img-5.4.0-3-amd64
Imagen de Linux encontrada: /boot/vmlinuz-5.3.0-3-amd64
Imagen initrd encontrada: /boot/initrd.img-5.3.0-3-amd64
Imagen de Linux encontrada: /boot/vmlinuz-4.19.0-6-amd64
Imagen initrd encontrada: /boot/initrd.img-4.19.0-6-amd64
Gestor de arranque de Windows encontrado en /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Agregando entrada de menú de arranque para configuración de firmware EFI
hecho
Primera pregunta, ¿qué sucede en tu caso? (copia y pega el resultado)
En tu caso
Si observamos tu informe de boot repair, tienes errores extraños:
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
Eso no es bueno, significa que un disco RAID (¿software?) está dañado. No sé si te divertiste configurando RAID, pero este tipo de error es una mala señal.
Además, mencionas que has cifrado tu disco. Lo que significa quemount
solo no es suficiente, primero hay que descifrar la partición. La idea sigue siendo la misma, pero se complica ligeramente porque hay LVM y LUKS que se involucran. Y en tu caso, probablemente RAID también...
Método 1: el más simple
Reinstalas, olvidas el cifrado y el RAID a menos que sepas lo que haces.
Método 2: si tienes valor
Particionado supuesto (a adaptar en tu caso)-
/dev/sda1
es/boot
-
/dev/sda5
está cifrado con LUKS que contiene una partición LVM, donde reside/
y la swap.
Paso 1: Montar el sistema
sudo -s mkdir -p /mnt/linux cryptsetup luksOpen /dev/sda5 sda5_crypt # Esto crea /dev/mapper/sda5_crypt # Ingresa la contraseña LUKS apt-get install lvm2 modprobe dm-mod vgchange -ay lvscan # En este punto deberíamos ver /dev/Ubuntu/{root, swap_1} ACTIVO
Ahora montamos todo.
mount /dev/mapper/Ubuntu-root /mnt/linux mount /dev/sda1 /mnt/linux/boot mount --bind /dev /mnt/linux/dev chroot /mnt/linux mount -t proc proc /proc mount -t sysfs sys /sys mount -t devpts devpts /dev/pts /etc/init.d/lvm2 start /etc/init.d/lvm2-lvmetad start /etc/init.d/lvm2-lvmpolld start
Desde ahí podemos lanzarupdate-grub
(uf).
Paso 2: Reparargrub
Verificamos los parámetros decryptsetup
basándonos en este tutorial.
1) Verificar que la línea sobresda5
esté presente en/etc/crypttab
(puedes abrir este archivo connano /etc/crypttab
, ctrl x para guardar y salir).
Ejemplo: (atención, estos valores dependen de tu sistema):
sda5_crypt UUID=8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4 none luks,retry=1,lvm=Ubuntu
storage_crypt UUID=f4e689ec-fda1-450e-8787-61c081c0bee7 none luks
2) Verificar también/etc/initramfs-tools/conf.d/cryptroot
.
Ejemplo: (atención, estos valores dependen de tu sistema):
CRYPTROOT=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4
3) Si todo está referenciado, entonces podemos lanzar:
update-initramfs -k all -c
4) Ahora, revisamos/etc/default/grub
.
Ejemplo: (atención, estos valores dependen de tu sistema):
GRUB_CMDLINE_LINUX="cryptopts=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4,lvm=Ubuntu"
5) Finalmente, reinstalamos grub
update-grub
6) ... y salimos correctamente
/etc/init.d/lvm2 stop
/etc/init.d/lvm2-lvmetad stop
/etc/init.d/lvm2-lvmpolld stop
umount /sys
umount /proc
umount /dev/pts
exit
umount /mnt/linux/boot
umount /mnt/linux/dev
umount /mnt/linux
reboot
Buena suerte :-) -