Servidores Linux

¿El servidor no arranca? Use el modo rescate para montar discos, reparar fstab y GRUB y copiar sus datos

10 pasos 17 min de lectura 38 vistas 0
Contenido

Un servidor que no arranca normalmente conserva todos sus datos. La causa suele ser pequeña: una línea incorrecta en /etc/fstab, una actualización del kernel que dañó el gestor de arranque, un disco lleno, un sistema de archivos que necesita comprobación o una regla de firewall que lo dejó sin acceso. Un sistema de rescate arranca desde la red en lugar de sus discos, así que puede montar los discos, corregir el problema y volver a arrancar con normalidad, o poner antes sus datos a salvo. Esta guía cubre las reparaciones más comunes en servidores Linux.

En los servidores dedicados de IMIDC, inicie el sistema de rescate con el botón Rescue Mode (modo rescate) del área de clientes y trabaje en él a través de la VNC Console (consola VNC). Consulte la guía del panel de control del servidor dedicado. Con otros proveedores, los pasos dentro del sistema de rescate son los mismos.

Paso 1: averigüe por qué no arranca

Antes de cambiar nada, abra la consola y mire los últimos mensajes en pantalla:

  • "You are in emergency mode" o "Dependency failed for /data": normalmente se trata de una entrada de fstab incorrecta o de un disco que falta. Corrija fstab (paso 4).
  • "grub rescue>", "no such partition" o "Reboot and select proper boot device": el gestor de arranque está dañado. Reinstale GRUB (paso 6).
  • Kernel panic después de una actualización: arranque el kernel anterior desde el menú de GRUB si aparece; si no, regenere el initramfs desde el sistema de rescate (paso 6).
  • El sistema arranca pero no puede conectarse: revise primero la red y el firewall desde la consola; puede que ni siquiera necesite el modo rescate (paso 7).

Paso 2: identifique los discos

En el sistema de rescate, liste los discos y las particiones:

lsblk -f
fdisk -l

Busque la partición raíz (a menudo la partición ext4 o xfs más grande) y, en servidores UEFI, una pequeña partición vfat (la partición del sistema EFI). Si ve linux_raid_member o LVM2_member, ensámblelos primero:

# Software RAID (mdadm)
mdadm --assemble --scan
cat /proc/mdstat

# LVM
vgscan
vgchange -ay
lvs

Paso 3: compruebe el sistema de archivos

Ejecute la comprobación del sistema de archivos mientras la partición no esté montada. Sustituya los nombres de dispositivo por los suyos:

# ext4
fsck -f /dev/sda2

# XFS: try a normal mount first, use xfs_repair only if mounting fails
xfs_repair /dev/mapper/vg0-root
Nunca ejecute fsck ni xfs_repair sobre un sistema de archivos montado. Evite xfs_repair -L salvo que una reparación normal sea imposible: descarta el registro (log) y puede perder escrituras recientes. Si los datos son importantes, cópielos primero (paso 8).

Paso 4: monte el sistema y corrija fstab

mkdir -p /mnt/sys
mount /dev/sda2 /mnt/sys          # your root partition or LV
ls /mnt/sys                       # you should see etc, home, var ...
nano /mnt/sys/etc/fstab

Comente la línea del disco que ya no existe añadiendo # delante, y añada nofail a los discos de datos opcionales para que un disco ausente no pueda volver a impedir el arranque:

UUID=1234-abcd  /data  ext4  defaults,nofail  0  2

Use los UUID de blkid en lugar de nombres como /dev/sdb1, que pueden cambiar entre arranques. Cómo montar discos correctamente se explica en particionar y montar un disco de datos.

Disco lleno

Si el sistema de archivos raíz está lleno al 100 %, los servicios fallan y algunos sistemas dejan de arrancar. Con el disco montado, busque y elimine archivos grandes, normalmente registros o copias de seguridad antiguos:

du -xh /mnt/sys --max-depth=2 2>/dev/null | sort -h | tail -20

Encontrará más ideas de limpieza en liberar espacio en disco en Linux.

Paso 5: entre en el sistema instalado con chroot

Para las reparaciones que necesitan las herramientas del propio sistema (GRUB, gestor de paquetes, passwd), haga chroot en él:

mount /dev/sda1 /mnt/sys/boot            # only if /boot is a separate partition
mount /dev/sda15 /mnt/sys/boot/efi       # UEFI only: the vfat EFI partition
for d in dev proc sys run; do mount --bind /$d /mnt/sys/$d; done
chroot /mnt/sys /bin/bash

Ahora está trabajando dentro de su sistema instalado. Para restablecer aquí una contraseña de root olvidada, basta con ejecutar passwd root; encontrará otros métodos en restablecer la contraseña de root en Linux.

Paso 6: reinstale GRUB y regenere el initramfs

Dentro del chroot:

# Debian / Ubuntu, legacy BIOS boot
grub-install /dev/sda
update-grub
update-initramfs -u -k all

# Debian / Ubuntu, UEFI boot
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian
update-grub

# Rocky / AlmaLinux / CentOS
grub2-mkconfig -o /boot/grub2/grub.cfg
dracut -f --regenerate-all

Con RAID por software, ejecute grub-install en cada disco miembro (por ejemplo /dev/sda y /dev/sdb) para que el servidor pueda arrancar desde cualquiera de ellos.

Paso 7: deshaga un bloqueo de firewall o de SSH

Si el servidor arranca pero no puede conectarse después de cambiar la configuración del firewall o de SSH, corríjalo desde el chroot (o directamente en la consola VNC si el sistema todavía arranca):

# Check the SSH configuration for errors
sshd -t

# Temporarily disable the firewall at next boot
systemctl disable ufw 2>/dev/null; systemctl disable firewalld 2>/dev/null

Cuando haya recuperado el acceso, vuelva a activar el firewall con el puerto correcto abierto, como se indica en abrir puertos con firewalld y ufw.

Paso 8: copie sus datos

Si la reparación falla o piensa reinstalar, copie primero los datos importantes a otro servidor. Desde el sistema de rescate:

# Copy a directory to a backup server over SSH
rsync -aHAX --info=progress2 /mnt/sys/var/www/ user@backup-server:/backup/www/

# Stream a compressed archive without needing local space
tar -C /mnt/sys -czf - home etc var/lib/mysql | ssh user@backup-server "cat > /backup/server.tar.gz"

En el caso de las bases de datos, copiar los archivos en bruto de un servidor detenido funciona si los restaura en la misma versión de la base de datos. En caso contrario, arranque el sistema una vez reparado y use mysqldump.

Paso 9: salga del modo rescate

exit                                     # leave the chroot
for d in run sys proc dev; do umount /mnt/sys/$d; done
umount -R /mnt/sys
sync

Después salga del modo rescate (en IMIDC: Current Task → Exit Rescue, tarea actual → salir del modo rescate) para que el servidor arranque desde sus propios discos, y observe el arranque en la consola VNC.

Servidores Windows

Elija el tipo de rescate Windows para iniciar un entorno Windows desde el que puede copiar archivos de la unidad del sistema, o ejecutar chkdsk C: /f y bcdboot C:\Windows para reparar los archivos de arranque.

Preguntas frecuentes

lsblk no muestra ningún disco

Es posible que la controladora RAID necesite un driver que el sistema de rescate no incluye, o que un disco haya fallado. Abra un ticket para que nuestros ingenieros revisen el hardware.

¿Debería simplemente reinstalar?

Solo cuando sus datos estén a salvo. Una reinstalación borra los discos; el sistema de rescate le permite hacer antes una copia.

¿Sigue con problemas después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico 24/7 de IMIDC le ayudará. Incluya la IP del servidor, una captura de pantalla del error de arranque en la consola y la salida de lsblk -f para que podamos localizar el problema más rápido.

¿Fue útil la respuesta?

Tutoriales relacionados