Erfolgreich Ubuntu i386 nach amd64 migrieren

Wenn es nicht möglich ist, Ubuntu (oder Debian) über CD oder USB zu installieren/aktualisieren weil z.B. der Installer nicht korrekt funktioniert, dann ist die installation über bootstrap ein gangbarer Weg. Mit dieser Methode habe ich sogar ein Ubuntu i386 ohne viel Mühe auf ein amd64 umgezogen welches ich hier als Beispiel darstellen möchte.

Die Vorraussetzung für die Installation ist der Zugriff auf ein Ubuntu/Debian Repository. Entweder lokal oder wie hier im Beispiel übers Internet.

Als erstens bitte ein Backup vom System erstellen. Erst wenn das abgeschlossen ist, kann es weiter gehen.

Auf dem zu Migriedenden System erstellen wir nun unser Ziel Verzeichnis und erzeugen ein minimal linux.

mkdir /chroot63
debootstrap --arch=amd64 bionic /chroot64 http://de.archive.ubuntu.com/ubuntu

Als nächstes mounten wir die benötigten System Verzeichnisse.

mount -o bind /dev /chroot64/dev
mount -o bind /dev/pts /chroot64/dev/pts
mount -t sysfs /sys /chroot64/sys
mount -t proc /proc /chroot64/proc
cp /proc/mounts /chroot64/etc/mtab  

cp /etc/resolv.conf /chroot64/etc/resolv.conf
cp /etc/sudoers /chroot64/etc/sudoers
cp /etc/apt/sources.list /chroot64/etc/apt/sources.list.orig

/etc/apt/sources.list Wechseln wir nun mit chroot in die neue Umgebung.

chroot /chroot64

In meinem Fall passen wir zusätzlich die locale an.

localedef -i de_DE -c -f UTF-8 de_DE.UTF-8

Installieren wir nun den Kernel, den Bootloader und einen Editor des Vertrauens.

apt install linux-generic vi

Ist das geschehen passen wir die fstab an. In meinem Fall verwende ich nicht die UUID. Darüber hinaus muss dies natürlich den vorliegenden dem Layout angepasst werden. Daher, bitte keine Copy ‘n paste verwenden.

/dev/sda1 / ext4 defaults 0 1

Ist dies geschehen, können wir nun ein Update durchführen, einen Benutzer anlegen und wenn man möchte, auch noch die Zeitzone anpassen. Wichtig ist!

apt update
adduser <USERERNAME>
usermod -U <USERNAME> -G sudo
dpkg-reconfigure tzdata

Erstellen wir nun den Bootloader.

update-grub

Funktioniert dies nicht korrekt, kann man sich mit folgenden Trick behelfen.

apt purge grub-pc
apt install grub-pc

In der aufkommende UI die entsprechende Festplatte auswählen.

Wenn nun alle erledigt ist gehen wir mit exit aus der chroot Umgebung raus und unmounten alles was wir in den obigen schritten gemountet haben. Anschliessend kopieren wir das gesamte System um. Das ist quasi der Moment der Wahrheit! Nervosität ist angesagt und wenn man sich vorher kein Backup angelegt hat, nun ja….

cd /chroot64
cp -R * /

Jetzt reboten wir das System. Es sollte nun die amd64 Variante starten. Prüfen wir dieses.

dpkg --print-architecture #sollte amd64 ausgeben
uname -a #sollte x86_64 enthalten

Ist das der Fall, entfernen wir nun die i386 Variante und aktualisieren das System.

dpkg --remove-architecture i386
cp /etc/apt/sources.list.orig /etc/apt/sources.list
apt update
apt upgrade

Unsere amd64 Installation ist nun ein Minimal-System. D.h. alle Services, wie z.B. openssh-server, Entwicklungs Umgebungen usw. müssen nachinstalliert werden. Da dies abhängig des Systems ist, werde ich dies hier nicht weiter aufführen.