Zum Inhalt springen

Migration Ubuntu nach Debian

Der einfache Weg ohne Schmerzen ist – mach ein Backup von allem was dir wichtig ist. formatier die Festplatte. Installiere Debian. Fertig. Spiel die Daten wieder ein, die dir wichtig sind.

Nun zum komplizierten Weg, den der geneigte Leser vielleicht nur dann beschreiten will, wenn er viel Zeit hat oder aber schon die Paketauswahl bei der Installation von Debian aufgrund der Komplexität der funktionierenden Paketzusammenstellung ein Problem ist. In meinem Fall war es ein 10 Jahre altes System von der Hardware her und von der Software her wohl so 20 bis 30 Jahre alt.

Von den Daten her ist das System wohl älter als 30 Jahre.  Monkey Island erschien 1990 und funktioniert immer noch. Die Disketten sind irgendwann auf die Festplatte gewandert und selbst wenn die Hardware keine Diskettenlaufwerke mehr hat funktioniert das Spiel immer noch unter Linux. Wie welche Software dann noch funktioniert, ist eine Frage der Paketauswahl und die ist halt historisch gewachsen. Es lief unter Novelldos ebenso wie unter OS/2 und SuSE wanderte zu Gentoo und landete vor 10 Jahren bei Ubuntu. 

So alle zehn Jahre eine Migration zu einem anderen Betriebssystem macht natürlich schmerzen, aber das mit dem Festplatte formatieren und wieder einspielen, ist für ein Arbeitsystem ganz nett, aber nicht für so eine gewachsene Geschichte und dann ist da noch der Nerd in mir, ob das überhaupt geht.

Im Nachhinein ist man immer schlauer und nachdem ich die Migration durchgezogen habe, würde ich sagen es geht einfacher:

cd /var/lib/dpkg 

for i in `grep ^Version: status | cut -d‘:‘ -f2 | sort -u`; do sed -i s/Version: $i/Version: 0.1ubuntu1/g status; done

apt –fix-broken dist-upgrade

Zwar gibt es berichte im Internet, dass Sourcen eintragen und apt upgrade und apt dist-upgrade genügen würden, das was da hinterher rauskommt ist aber ein Fakeupgrade mit diversen Problemen. 

Es funktionert zwar aber es werden genügend Ubuntupakete auf der Festplatte bleiben, die mit dieser Methode nicht migriert werden. Unter anderem der Kernel wenn der Versionsunterschied nicht zu gross ist. Der Ubuntukernel ist daber kein Debiankernel, was auch andere kleine Schwierigkeiten mit sich bringt. Larry Finger schreibt zum Ubuntukernel:

„This code will build on any kernel 4.2 and newer as long as the distro has not modified any of the kernel APIs. IF YOU RUN UBUNTU, YOU CAN BE ASSURED THAT THE APIs HAVE CHANGED. NO, I WILL NOT MODIFY THE SOURCE FOR YOU. YOU ARE ON YOUR OWN!!!!!“

Da ich bei meinen Gehversuchen Ubuntu zu Debian zu migrieren, nicht bemerkt habe, dass der Kernel nicht migriert wurde – das System lief zunächst scheinbar normal – kann ich das nur bestätigen. 

Auf die Idee gebracht hatte mich:

https://www.glasen-hardt.de/2017/06/24/upgrade-von-ubuntu-16-04-auf-debian-9/

das funktioniert scheinbar, aber eben nur scheinbar. Danach hat man ein Mischsystem aus Debian und Ubuntu Paketen. Die Quelle der Updates ist zwar dann Debian, aber eigentlich läuft dann immer noch der Ubuntukernel und viel Ubuntusoftware, die nicht aktualisiert wurde. Die Ubuntupakete werden dann bis zum Sanktnimmerleinstag in der Ubuntuversion bestehen bleiben zum beispiel linux-kernel – welches es in Debeian nicht gibt.

Mein Weg nachdem die Migration scheinbar geklappt hatte, war mit Einzelpaketen etwas komplizierter und schmerzvoller. Letztlich aber um das System zu bereinigen kam nach Wochen 

for i in `grep ^Version: status | cut -d‘:‘ -f2 | sort -u`; do sed -i s/Version: $i/Version: 0.1ubuntu1/g status; done

ins Spiel. Möglicherweise muss ich 0.1ubuntu1 noch niedriger setzen um alle Ubuntupakete los zu werden, aber letztlich scheint es mir die einzige Möglichkeit um von A nach B zu gehen.