Este artículo lo escribo para un lector que me pidió ayuda para quitar a systemd y todos sus componentes de un servidor Debian Buster (Debian GNU/Linux versión 10). Mi recomendación es migrar a Devuan GNU+Linux, pero si esto no fuera posible (por cuestiones de licencias, soportes, etc.) es posible cambiar systemd por SysVInit exitosamente.

Para remover systemd y todos sus componentes de un sistema Debian Buster, tenemos dos opciones:

  1. Migrar a Devuan Beowulf: anteriormente demostré cuáles son los pasos necesarios para migrar Debian Buster a Devuan Beowulf.
  2. Reemplazar systemd por SysVInit: proceso que se explica a continuación.



Antes de comenzar cabe aclarar que, en caso de optar por continuar utilizando Debian y cambiar systemd por SysVInit en un sistema en producción, se deberá probar primero sobre una copia o clon de la máquina en cuestión para asegurarse que todo funcione correctamente antes de planificar una migración sobre el sistema (teniendo en cuenta que el proceso requiere dos reinicios).

Cabe destacar que en la infraestructura de la organización para la cual me desempeño como SysAdmin, estamos utilizando servidor Debian Buster sin systemd. Con lo cual, al menos al día de hoy, es posible seguir utilizando Debian en servidores en producción sin systemd.

Lo conveniente siempre es crear una máquina virtual plantilla con Debian Buster ya sin systemd para trabajar a partir de la misma cada vez que se requiere desplegar un nuevo servidor.

No hace falta decir que, a pesar de haber probado con éxito el procedimiento en una copia o clon de la máquina, es necesario crear una copia de respaldo fresca de todos los datos en el servidor antes de proceder.

Reemplazar systemd por SysVInit en Debian Buster

Para comenzar, instalar los paquetes de sysvinit:

# apt-get install sysvinit-core

Instalar el archivo inittab:

# cp /usr/share/sysvinit/inittab /etc/inittab

Reiniciar el sistema:

# reboot

Una vez iniciado el sistema con SysVInit es posible eliminar systemd del sistema:

# apt-get remove --purge --auto-remove systemd

Para prevenir que systemd o alguno de sus paquetes relacionados sean instalados nuevamente en el futuro (ya sea directamente o como dependencia de nuevos paquetes a instalar) es posible definir la siguiente configuración de pinning:

# echo -e 'Package: libsystemd0\nPin: release *\nPin-Priority: 1\n\n' > /etc/apt/preferences.d/systemd
# echo -e 'Package: *systemd*\nPin: release *\nPin-Priority: -1\n\n' >> /etc/apt/preferences.d/systemd

Luego es necesario actualizar la base de datos de paquetes:

# apt-get update

Para finalizar, marcar el kernel Linux y sus cabeceras como instaladas manualmente y realizar una limpieza de paquetes dependientes de systemd:

# apt-get install linux-image-amd64 linux-headers-amd64
# apt-get autoremove
# apt-get clean

Reiniciar el sistema por última vez:

# reboot

Esta configuración aplica para un sistema sin entorno gráfico (un servidor) y no fue probada en sistemas de escritorio (al menos por mí). Para el caso de sistemas de escritorio es recomendable migrar a Devuan.


Tal vez pueda interesarte


Compartí este artículo