Journal Migration CoreOS vers Debian in situ

Posté par  . Licence CC By‑SA.
Étiquettes :
25
9
fév.
2026

Sommaire

Ce journal raconte comment j'ai migré une machine depuis un système CoreOS4 vers système Debian 13 Trixie sans réinstallation et en conservant les données.

contexte

Je loue depuis quelques années une petite machine dans un centre de données OVH. J'avais opté à l'époque pour le système d'exploitation CoreOS car il présentait plusieurs avantages :

  • image proposée par OVH pour initialiser le système
  • système minimaliste : noyau Linux + Docker/containerd
  • système orienté container (docker) ce qui correspond à la façon dont je gère mes services
  • système à double partitions système permettant la mise en jour en arrière-plan et le rollback

Pour expliciter ce dernier point : Il y a deux partitions système, de 1GB chacune. Chaque partition stocke l'image noyau à démarrer et le dossier /usr (/bin pointant sur /usr/bin et /lib sur /usr/lib). Ces partitions sont lecture seule. Le système démarre sur l'une des partition, dite active. Quand une mise à jour système (eg: nouvelle version du noyau) est disponible, la mise à jour est faite sur la partition inactive (ie, celle qui n'a pas servie au boot). Et au reboot, le système démarre sur cette partition mise à jour. Si tout se passe bien, on repart pour un cycle (le rôle des partitions s'étant inversé) sinon, le système effectue un retour arrière sur la partition qui n'a pas la mise à jour défaillante.

Seulement depuis quelque temps, les mises à jour ne se font plus. Je suis coincé sur un vieux noyau 4x et sur un vieux docker. Ça craint. Le projet n'est pourtant pas mort puisqu'une release a été faite début février. Mais il y a eu une rupture des mise à jour quand CoreOS Inc a été racheté par RedHat et je n'ai trouvé aucune documentation pour faire la migration.

Mon besoin est donc de migrer sur un OS à jour. Je pourrais louer une autre machine, faire une installation propre et migrer les données. Seulement la machine que j'ai actuellement est 1/ vraiment pas chère, il est très difficile d'en trouver une à ce prix, 2/ possède un disque de 2TB quasi plein alors qu'elle correspond à une offre 1TB (erreur de la banque en ma faveur). Je veux donc faire une migration in situ et sans abîmer les données.

Je décris la procédure que j'ai suivie à titre pédagogique. N'ayant fait l'opération qu'une fois et par essai erreurs, je ne peux pas certifier que toutes les étapes sont nécessaires, exactes, exhaustives, dans l'ordre, les plus optimales.

Globalement, la procédure repose sur deboostrap et chroot.

procédure détaillée

rescue mode

Comme tout bon hébergeur, OVH fourni un mode "rescue" qui permet de démarrer la machine sur le réseau avec un accès root ssh. Les disques sont alors visibles, mais non montés. Le système rescue de OVH est une Debian 12.

montage des partitions

  • partitions de l'ancien système :
Device       Start        End    Sectors  Size Type
/dev/sda1     4096     266239     262144  128M EFI System         <= vfat, mouted as /boot
/dev/sda2   266240     270335       4096    2M BIOS boot
/dev/sda3   270336    2367487    2097152    1G unknown            <= ext4, mouted as /usr overlay alternatively
/dev/sda4  2367488    4464639    2097152    1G unknown            <= ext4, mouted as /usr overlay alternatively
/dev/sda6  4464640    4726783     262144  128M Linux filesystem
/dev/sda7  4726784    4857855     131072   64M unknown
/dev/sda9  4857856 3907029134 3902171279  1.8T unknown            <= ext4, mouted as /

sda1 va rester notre /boot EFI, sda9 va rester notre /, sda2 sda3 sda4 sda6 et sda7 ne nous servirons plus.

alias ll='ls -al'  # required by my muscle memory

mount /dev/sda9 /mnt
mount /dev/sda1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run

debootstrap et chroot

apt-get install debootstrap
#debootstrap trixie /mnt http://deb.debian.org/debian  # takes several minutes and fails
# because of : E: Tried to extract package, but file already exists. Exit...
debootstrap trixie /altroot http://deb.debian.org/debian  # takes several minutes
tar c -C /altroot . | tar x -C /mnt/

chroot /mnt

À partir de là, nous ne sommes plus sur le système rescue en RAM, mais dans le futur système de la machine, sur son disque dur.

locales et packages

On installe les paquets logiciels supplémentaires que l'on veut, on pourra toujours en installer plus tard. Par contre locales est nécessaire pour … fixer la locale et éviter plein de warnings.

echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
apt-get update
apt-get install -y \
  locales \
  zip sudo ssh net-tools bash-completion rsync \
  screen mosh htop iotop file

serveur ssh et user d'admin

apt-get install openssh-server
sed -i.bak /etc/ssh/sshd_config << EEE
92c
X11Forwarding no
.
33c
PermitRootLogin no
.
14c
Port 26549
.
EEE

adduser --disabled-password --shell /bin/bash admin
usermod -aG sudo admin
su - admin
echo 'ecdsa-sha2-nistp521 AAAA.....== user@host' >> ~/.ssh/authorized_keys
exit

noyau et grub

apt install linux-image-amd64 firmware-linux-free grub-pc network-manager
update-grub  ## UNSURE if necessary, should not hurt

fstab

cat << EEE > /etc/fstab
# <file system>        <mount point>         <type>  <options>          <dump>  <pass>
UUID=0759a5ae-05da-11f1-8250-8f4b18f15fdb       /       ext4    defaults        0       1
UUID=9876-7FAB       /boot   vfat    umask=0077        0       0
EEE

réseau

echo lamachine > /etc/hostname
echo '127.0.1.1       lamachine.ip-1-23-45.eu lamachine' >> /etc/hosts
systemctl enable systemd-networkd

profit !

Configurer le boot disque chez l'hébergeur puis :

reboot

À partir de là, j'ai une machine sous Debian Trixie accessible en SSH avec mes clés. Je n'aurais pas forcément parié dessus au départ.

J'ai ensuite installé docker tel que recommandé par l'éditeur.

Et j'ai relancé les services un par un à coup de docker compose up -d qui ont retrouvé leurs données stockées dans les volumes. Je n'aurais pas forcément parié dessus non plus.

Back to business.

conclusion

  • on n'est jamais à l'abri d'une bonne surprise
  • sysadmin c'est quand même plus facile que neurochirurgien
  • ne pas rester avec un vieux système
  • accepter le risque de perdre une machine, les sauvegardes sont là pour ça
  • si tu installes autre chose que 💕Debian💕 sur une machine, tu fais sûrement une connerie
  • # Et finalement quid des autres partitions ?

    Posté par  (site web personnel) . Évalué à 3 (+2/-0).

    Je suppose que les partitions sda3 et sda4 étaient tes partitions en lecture-seule sur lesquels étaient placés à la fois le noyau et /usr. Ils ont chacun 1Go, je suppose que tu ne les a réutilisé dans ton nouveau système, non ? Si oui, qu'est ce que tu en as fais ?

  • # LinuxFr.org

    Posté par  (site web personnel) . Évalué à 9 (+6/-0).

    Faut que je fasse ça sur un serveur LinuxFr pour changer de distrib à distance sans aller au datacenter… Faut juste croiser les doigts et ne pas faire de faute de frappe quoi.

    • [^] # Re: LinuxFr.org

      Posté par  . Évalué à 2 (+0/-0).

      YMMV comme disent les anglais mais j'ai été agréablement surpris de ne rien péter alors que j'ai migré entre deux systèmes quand même bien différents.

      Avant de reboot, j'ai vérifier que le sshd de mon chroot était bien accessible avec les clés de mon user admin depuis chez moi (il écoute sur un port différent): /usr/bin/sshd -D.

      Dans la pratique j'ai fait deux aller-retours vers le rescue car j'avais oublié d'abord le fstab -> ça démarrait pas, puis le networking -> ça se connectait pas. D'où ce journal si ça peut aider.

      Dans le doute, et en plus de mes données, j'avais sauvegardé le /etc et le /boot. Mais je n'en ai pas eu besoin.

      Si c'est monter de version de Debian, ça se fait sans problème à coup de dist-upgrade, à condition de bien les faire dans l'ordre sans sauter de version.

      Bonne chance Mr Phelps.

      • [^] # Re: LinuxFr.org

        Posté par  (site web personnel) . Évalué à 5 (+2/-0). Dernière modification le 10 février 2026 à 14:46.

        dist-upgrade a beau exister sur les deux, je doute que ça suffise pour convertir une Ubuntu en Debian, dans mon cas :).

        • [^] # Re: LinuxFr.org

          Posté par  . Évalué à 2 (+0/-0).

          Je me rends pas compte de la "surcouche" Ubuntu sur une Debian. Est-ce qu'en nettoyant les "apt sources.list" n'est pas suffisant ?

          Bon tu nous racontera :)

          • [^] # Re: LinuxFr.org

            Posté par  . Évalué à 3 (+2/-1).

            Non c'est quasi impossible, le delta entre Ubuntu et Debian et bien trop important.

            • [^] # Re: LinuxFr.org

              Posté par  . Évalué à 4 (+2/-0). Dernière modification le 12 février 2026 à 16:32.

              Ah pas si sûr, avec de l'apt pinning bien paramétré cela doit pouvoir se jouer. A ne pas tenter en prod et à ne pas prendre pour une solution de facilité bien entendu xD.

              Peut être une idée de nourjal quand je vais migrer la neon (base ubuntu avec encore une autre surcouche de la team kde) de ma station de travail vers debian. A noter je n'ai pas de snaps installés, c'est plus facile. Les snaps sont d'ailleurs la raison principale de la future migration. Dans quelques mois si je trouve le temps.

              Ps: le -1 c'est pas moi, y'a effectivement un vrai challenge

              • [^] # Re: LinuxFr.org

                Posté par  (site web personnel) . Évalué à 2 (+1/-0).

                Les snaps sont d'ailleurs la raison principale de la future migration.

                Il ne serait pas plus simple de bloquer l’usage de snap ?

                • [^] # Re: LinuxFr.org

                  Posté par  . Évalué à 2 (+0/-0).

                  Oui c'est déjà fait. Mais cela ne règle pas le problème, certains paquets dans la base apt sont des package "de transition" vers du snap et donc le logiciel en question a beau être dans la base apt, il n'est plus fourni. Pour le moment ça va je gère cela à la main mais une Debian stable ou testing avec un KDE récent sera plus adapté à mon usage.

                  • [^] # Re: LinuxFr.org

                    Posté par  (site web personnel) . Évalué à 1 (+0/-0). Dernière modification le 14 février 2026 à 18:10.

                    Combien de paquets ça concerne ? Firefox, chromium et thunderbird ? D’autres ?

                    • [^] # Re: LinuxFr.org

                      Posté par  . Évalué à 3 (+1/-0).

                      Oui puis Thunderbird et la tendance qui est à la hausse. J'ai aucune envie de m'emmerder avec cela. Debian a tout ce dont j'ai besoin.

              • [^] # Re: LinuxFr.org

                Posté par  . Évalué à 2 (+0/-0).

                Je serais intéressée par ton retour. Il est possible que d'une base Ubuntu 22.04 vers Debian 13 cela fonctionne plus ou moins, avec un gros ménage à faire dans les paquets obsolètes et les résidus de configuration.

                Je suis moi même passée de KDE Neon à Debian 13 sur mon poste de travail en réinstallant et en conservant la partition sur laquelle est monté /home. AMHA, c'est la solution la plus rapide et la plus propre.

                • [^] # Re: LinuxFr.org

                  Posté par  . Évalué à 4 (+2/-0). Dernière modification le 13 février 2026 à 10:13.

                  Avec un bon paramétrage de l'apt pinning, apt fera le ménage lui même. L'astuce consiste à mettre une priorité sous un certain seuil sur les sources ubuntu pour permettre un éventuel downgrade des packages et éviter à tout prix les mélanges. Bref il faut muscler son jeu sinon on risque de graves déconvenues.

                  Ce sera pas pour tout de suite malheureusement j'ai beaucoup à faire dans les prochains temps, mais promis dès que je tente l'op je garde les configs et je vous fais un retour en journal car il y aura forcément d'autres points qui vont poser des soucis.

                  PS: oui raisonnablement une réinstallation est la voie à suivre et la plus simple mais c'est moins drôle aussi xD

    • [^] # Re: LinuxFr.org

      Posté par  (Mastodon) . Évalué à 3 (+0/-0).

      L'autre option c'est de réinstaller et restaurer un backup. Cette option fonctionne toujours.

      • [^] # Re: LinuxFr.org

        Posté par  . Évalué à 2 (+0/-0). Dernière modification le 10 février 2026 à 15:47.

        Oui mais en fonction du volume à restaurer, elle peut prendre beaucoup beaucoup plus de temps.

    • [^] # Re: LinuxFr.org

      Posté par  . Évalué à 2 (+0/-0).

      En tout cas, c'est pas moi qui viendrais pleurer si jamais il devait y avoir du "downtime" ou du "qos" un peu dégradée pendant quelque temps.

      "Si tous les cons volaient, il ferait nuit" F. Dard

  • # CoreOS

    Posté par  (site web personnel) . Évalué à 3 (+2/-1).

    C'etait encore un CoreOS d'avant le rachat par Redhat?

    Avant c'etait buildé avec un overlay Gentoo, après le rachat ils ont tout mis a la poubelle.

    Je me rappelle d'un meetup k8s le vendredi juste avant le fosdem, ou les devs CoreOS avaient recu leurs parts lors du rachat par RedHat, on peut dire que les bières belges entre chaque présentation avaient fait leur effet :-)

    • [^] # Re: CoreOS

      Posté par  . Évalué à 3 (+1/-0).

      C'etait encore un CoreOS d'avant le rachat par Redhat?

      Et oui 😕, version 4.14.96-coreos-r1 (Gentoo 2.26-r7 p7)

      on peut dire que les bières belges entre chaque présentation avaient fait leur effet :-)

      C'est l'exit parfait pour une startup, se faire racheter par un gros. Demande à l'équipe de Bun :)

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.