Transformer Debian en Devuan (remplacer systemd par sysvinit)

Introduction

Devuan est beaucoup plus stable que Debian à forte charge (grâce à l'absence de systemd !).

Pour passer de Debian à Devuan, un certain nombre d'opérations sont nécessaires.
Ce qui suit est la méthode recommandée.

Sur un système Debian 12, passez en root ! (et restez en root tout du long !)


Méthode détaillée

Télécharger le paquet debuan-keyring

wget --no-check-certificate https://deb.devuan.org/merged/pool/DEVUAN/main/d/devuan-keyring/devuan-keyring_2023.05.28_all.deb

Installer le paquet devuan-keyring

dpkg -i devuan-keyring_2023.05.28_all.deb

apt-get install -f -y

Remplacer les dépôts de Debian par ceux de Devuan :

cp /etc/apt/sources.list{,.backup}

cat >/etc/apt/sources.list <<EOF
deb http://deb.devuan.org/merged daedalus main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus main non-free-firmware
deb http://deb.devuan.org/merged daedalus-security main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-security main non-free-firmware
deb http://deb.devuan.org/merged daedalus-updates main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-updates main non-free-firmware
EOF

Actualiser le catalogue et vérifier la validité des clés :

apt update

Continuer normalement la migration vers Devuan :

apt install --reinstall insserv

apt install sysvinit-core eudev -y

ATTENTION : la carte réseau va changer de nom suite au passage à sysVinit !
Si vous ne reconfigurez pas votre carte réseau dès maintenant, vous perdrez la connexion au redémarrage.
Faîtes la configuration dans /etc/network/interfaces (remplacez enp0s3 par eth0 par exemple).

sed -i 's/enp0s3/eth0/' /etc/network/interfaces

Une fois la configuration réseau faîte. Redémarrer

reboot

Vérifier que le système d'init est bien sysvinit :

ps -p 1 -o comm=

Nettoyer systemd, mettre le grub à jour et mettre le système à jour, supprimer le délai au démarrage et virer les messages de sysVinit :

apt-get purge systemd libpam-systemd systemd-sysv -y

apt-get autoremove --purge -y

update-initramfs -u

sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/' /etc/default/grub

sed -i 's|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0 console=tty3"|' /etc/default/grub

update-grub

apt-get dist-upgrade -y

Redémarrer :

reboot

Changer le hostname :

sed -i 's/debian/devuan/' /etc/hosts

sed -i 's/debian/devuan/' /etc/hostname

reboot

En accéléré, ça donne

1ère partie

wget --no-check-certificate https://deb.devuan.org/merged/pool/DEVUAN/main/d/devuan-keyring/devuan-keyring_2023.05.28_all.deb

dpkg -i devuan-keyring_2023.05.28_all.deb

apt-get install -f -y

cp /etc/apt/sources.list{,.backup}

cat >/etc/apt/sources.list <<EOF
deb http://deb.devuan.org/merged daedalus main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus main non-free-firmware
deb http://deb.devuan.org/merged daedalus-security main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-security main non-free-firmware
deb http://deb.devuan.org/merged daedalus-updates main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-updates main non-free-firmware
EOF

apt update

apt install --reinstall insserv

apt install sysvinit-core eudev -y

sed -i 's/enp0s3/eth0/' /etc/network/interfaces # ATTENTION ICI !!

reboot

Seconde partie

apt-get purge systemd libpam-systemd systemd-sysv -y

apt-get autoremove --purge -y

sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/' /etc/default/grub

sed -i 's|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0 console=tty3"|' /etc/default/grub

update-initramfs -u

update-grub

apt-get dist-upgrade -y

sed -i 's/debian/devuan/' /etc/hosts

sed -i 's/debian/devuan/' /etc/hostname

reboot

Autre méthode (mais toujours valable !)

Pour ces opérations, il vous faudra 2 VM, une Debian 12.x (hébergée dans le cloud par exemple) et une Devuan Daedalus 5.0.1 (sur VirtualBox).
Nous avons besoin d'une Devuan sous le coude pour envoyer les clefs des dépôts de Devuan sur la VM Debian.

### Sur le serveur debian :

# Autoriser la connexion à root via ssh sur le serveur debian (temporairement).. ou faîtes par clefs.. au choix !

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

systemctl restart sshd

### Sur le serveur devuan :

# Envoyer les clefs GPG d'un système Devuan à la VM Debian :

scp /etc/apt/trusted.gpg.d/*.gpg root@IP-DEBIAN:/etc/apt/trusted.gpg.d/

### Sur le serveur debian :

# Remplacer le dépôt de debian par celui de devuan

cp /etc/apt/sources.list /etc/apt/sources.list.BAK

cat > /etc/apt/sources.list << EOF
#deb cdrom:[Devuan GNU/Linux 5.0.1 daedalus amd64 - netinstall 20230914]/ daedalus contrib main non-free non-free-firmware
deb http://deb.devuan.org/merged daedalus main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus main non-free-firmware
deb http://deb.devuan.org/merged daedalus-security main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-security main non-free-firmware
# daedalus-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.devuan.org/merged daedalus-updates main non-free-firmware
deb-src http://deb.devuan.org/merged daedalus-updates main non-free-firmware
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
EOF

# Mettre les catalogues à jour :

apt update

# Installer sysvinit et réinstaller insserv

apt-get install --reinstall insserv

apt install sysvinit-core -y

# Remettre à jour le grub et l'init

update-initramfs -u

update-grub

# Redémarrer

reboot

# Vérifier si init a bien pris le relais :

ps -p 1 -o comm=

# Désinstaller systemd et purger entièrement.

apt remove --purge systemd -y

# Mettez le système à jour :

apt update

apt dist-upgrade -y

# Attention ici !! Votre carte réseau enp0s3 a de grandes chances de devenir eth0 !!
Vous devez impérativement propulser le changement avant de redémarrer une nouvelle fois le serveur ou vous ne pourrez plus vous connecter !!
Faîte un snapshot avant et plusieurs essais !

sed -i 's/enp0s3/eth0/' /etc/network/interfaces

# Redémarrer une dernière fois :

reboot


↑ Haut de page