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