Solch ein Ansatz ist sehr kompliziert und es ist unwahrscheinlich, dass alle Ihre Pakete die amd64
Version anstelle der i386
Version sind. Nur Pakete, die tatsächlich Upgrades erhalten, werden wahrscheinlich in der Architektur geändert, und wahrscheinlich nur, wenn keine anderen Pakete, die nicht aktualisiert werden, von ihrer i386
Architektur abhängen. Da einige Pakete während des gesamten Support-Zyklus Ihrer Ubuntu-Version keine Updates erhalten , werden Sie wahrscheinlich nie ein vollständiges amd64
System haben, das eine solche Technik verwendet. Darüber hinaus gibt es sicherlich keine offizielle Unterstützung für einen solchen Ansatz.
Sie sollten stattdessen Ihr bestehendes Ubuntu-System durch eine neue 64-Bit-Installation ersetzen.
Wenn Sie diese Technik jedoch ausprobieren möchten, müssen Sie die Dateien für und manuell herunterladen . Sie finden sie auf den Seiten in Ubuntu und in Ubuntu im Launchpad. Erweitern Sie die neueste Version unter "The Oneiric Ocelot", die als Release, Sicherheit und / oder Updates gekennzeichnet ist (aber Sie möchten wahrscheinlich nicht, dass nur eine Version markiert ist vorgeschlagenen und / oder Backports (falls es jemals einen gibt). Laden Sie dann die markierten Dateien herunter . Im Einzelnen sind die gewünschten Dateien: Diese für (und die anderen, die ebenfalls aufgeführt sind, wenn Sie diese Pakete installiert haben) und dies und das und das und das.deb
dpkg
apt
dpkg
apt
.deb
amd64
dpkg
und das für apt
.
Bevor Sie mit diesen Dateien etwas anfangen, sollten Sie sicherstellen, dass Sie alle wichtigen Dokumente in Ihrem installierten Ubuntu-System und alle anderen wichtigen Dateien (z. B. Musik, E-Books, Videos) sichern, da es sehr wahrscheinlich ist, dass diese Technik nicht funktioniert und lassen Sie Ihr Ubuntu-System völlig unbrauchbar.
Sie können alle diese Pakete installieren, indem Sie sie in einem Ordner ablegen, der nichts anderes enthält (angenommen, der Ordner heißt debs
und befindet sich in Ihrem Downloads
Verzeichnis) und dann den folgenden Befehl ausführen:
sudo dpkg -Ri ~/Downloads/debs
Sobald Sie sie installiert haben, werden sie natürlich nicht mehr ausgeführt, da ihre ausführbaren Dateien 64-Bit sind und auf Ihrem 32-Bit-Ubuntu-System ein 32-Bit-Kernel ausgeführt wird (auf dem nur 32-Bit-ausführbare Dateien ausgeführt werden). Tatsächlich sind sie möglicherweise noch nicht fertig mit der Installation, da sie möglicherweise Skripts nach der Installation haben, die ihre nicht ausführbaren 64-Bit-Programme aufrufen.
Es gibt verschiedene Möglichkeiten, einen 64-Bit-Kernel auf einem 32-Bit-System zu installieren, aber alle sind äußerst kompliziert. Daher empfehle ich stattdessen, von einer 64-Bit-Oneiric-Live-CD zu booten (auf der selbst eine 64-Bit-CD ausgeführt wird) Kernel), chrooten Sie in das installierte Ubuntu-System und verwenden Sie das kürzlich installierte 64-Bit apt
und dpkg
, um einen 64-Bit-Kernel zu installieren.
Hier sind spezifische Anweisungen dafür ... aber bitte nehmen Sie das nicht so, dass ich sage, dass es funktionieren wird. Ich habe das nicht versucht. (Ich habe von Live-CDs auf installierten Ubuntu-Systemen chrooted und Paketverwaltung und andere Vorgänge ausgeführt, aber die hier vorgeschlagenen architekturübergreifenden Vorgänge nicht ausgeführt.)
Öffnen Sie in Ihrem installierten Ubuntu-System ein Terminal-Fenster ( Ctrl+ Alt+ T) und führen Sie es aus mount | grep ' on / '
(indem Sie es in das Terminal einfügen und die Eingabetaste drücken). Du solltest sowas sehen /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. Der Teil, den Sie interessieren, ist der Gerätename zuvor on
(in diesem Beispiel ist es /dev/sda2
). Denken Sie daran oder schreiben Sie es auf.
Schritt 1 gab Ihnen den Gerätenamen der /
Partition. Wenn Sie eine separate /boot
Partition haben, müssen Sie auch den Gerätenamen kennen. Also in diesem Fall laufen mount | grep ' on /boot '
. Du wirst so etwas sehen /dev/sda1 on /boot type ext2 (rw)
. Denken Sie daran oder schreiben Sie dies auch auf.
Booten Sie von einer Oneiric amd64 (dh 64-Bit) -Live-CD und wählen Sie "Ubuntu testen" anstelle von "Ubuntu installieren".
Rufen Sie einen Webbrowser auf und stellen Sie sicher, dass die Internetverbindung voll funktionsfähig ist. Wenn nicht, richten Sie es ein.
Öffnen Sie ein Terminal-Fenster und führen Sie es aus sudo mount /dev/sda2 /mnt
(ersetzen Sie es /dev/sda2
durch den Gerätenamen, den Sie in Schritt 1 erhalten haben, falls dieser nicht identisch ist).
Wenn Ihr installiertes System über eine separate /boot
Partition verfügt, führen Sie diese aus sudo mount /dev/sda1 /mnt/boot
(ersetzen Sie sie /dev/sda1
durch den Gerätenamen, den Sie in Schritt 2 erhalten haben, falls dieser nicht identisch ist).
Führen Sie nun die folgenden Befehle aus, um in Ihrem installierten System zu chrooten:
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
Führen Sie ping -c 4 launchpad.net
den Befehl aus, um zu überprüfen, ob die Internetverbindung innerhalb der Chroot vollständig funktioniert. Sie hoffen auf so etwas:
PING launchpad.net (91.189.89.223) 56(84) bytes of data.
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=1 ttl=41 time=141 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=2 ttl=41 time=143 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=3 ttl=41 time=142 ms
64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=4 ttl=41 time=140 ms
--- launchpad.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Wenn Sie stattdessen keine Pakete senden oder empfangen konnten, müssen Sie die Internetverbindung in der Chroot einrichten. Führen Sie dazu die folgenden Befehle aus (um die Chroot zu verlassen, kopieren Sie die entsprechenden Konfigurationsdateien vom Live-CD-System in die Chroot und geben Sie die Chroot erneut ein):
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
sudo cp /etc/hosts /mnt/etc/hosts
Normalerweise sollten Sie diesen Vorgang im Fehlerfall abbrechen. Machen Sie sich jedoch keine Sorgen, wenn der erste und / oder der zweite dieser vier Befehle fehlschlagen, vorausgesetzt, dass der Fehler dadurch verursacht wird, dass Sie darüber informiert werden, dass /mnt/etc/resolv.conf
(oder /mnt/etc/hosts
) nicht vorhanden ist .
Die Chroot ist wieder da und versucht es erneut:
sudo chroot /mnt
ping -c 4 launchpad.net
Führen Sie diese Befehle aus, um Ihre Chroot-Umgebung voll einsatzbereit zu machen:
export HOME=/root
export LC_ALL=C
Wenn Sie die .deb
Dateien für die 64-Bit-Versionen von dpkg
und nicht installiert haben apt
, tun Sie dies jetzt. Wenn Sie sie installiert haben, aber Konfigurationsfehler aufgetreten sind, führen Sie sie aus dpkg --configure -a
, um sie zu beheben. (Hoffentlich funktioniert das ... es ist möglicherweise besser zu warten, bis Sie versuchen, sie zu installieren, bis Sie sich in der Live-CD-Umgebung befinden, falls die 64-Bit-Installation dpkg
beim Booten in das installierte System dpkg
unbrauchbar wird.)
Wenn die 64-Bit-Versionen von dpkg
und apt
installiert sind und davon ausgegangen wird, dass sie automatisch 64-Bit-Pakete installieren, können Sie jetzt alle Ihre 32-Bit-Kernel entfernen und einen 64-Bit-Kernel installieren. Führen Sie den folgenden Befehl aus, um Ihre 32-Bit-Kernel zu entfernen dpkg -l | grep linux-
. Hier werden installierte Pakete aufgelistet, die mit beginnen linux-
. Sie sind insbesondere interessiert an Paketen , die wie beginnen linux-generic
, linux-image
, linux-server
, und / oder linux-headers
. Entfernen Sie diese Dateien, apt-get purge ...
indem Sie " where" ...
durch eine durch Leerzeichen getrennte Liste der zu entfernenden Pakete ersetzen.
Installieren Sie nun die entfernten Pakete neu. (Tatsächlich müssen Sie für Pakete, die Versionsnummern im Paketnamen enthalten, wie zum Beispiel linux-image-3.0.0-13-generic
nur die neuesten versionierten Paketnamen installieren.) Führen Sie dazu apt-get install ...
where aus, und ...
ersetzen Sie diese durch eine durch Leerzeichen getrennte Liste der Pakete, die Sie installieren .
Aktualisieren Sie die Bootloader-Konfiguration, entfernen Sie einige Geräte und verlassen Sie die Chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
Wenn Sie gelaufen sind sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
und es nicht fehlgeschlagen ist, dann laufen Sie jetzt sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.
Wenn Sie gelaufen sind sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
und es nicht fehlgeschlagen ist, dann laufen Sie jetzt sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.
Wenn Ihr installiertes System über eine separate /boot
Partition verfügt, heben Sie Folgendes auf:sudo umount /mnt/boot
Hängen Sie die /
Partition Ihres installierten Systems aus :sudo umount /mnt
Verlassen Sie das Terminal-Fenster (Ausführen exit
), starten Sie das Live-CD-System neu (oder fahren Sie es herunter) und starten Sie das installierte System.
Prüfen Sie, ob das System verwendbar ist und einen 64-Bit-Kernel ausführt ( uname -m
sollte sagen, dass dies die Architektur ist x86_64
).
Möglicherweise müssen Sie zusätzliche Pakete installieren, z. B. ia32_libs
und / oder die 64-Bit-Version von libc6
, damit dies funktioniert. Bei einigen von ihnen werden Sie möglicherweise darüber informiert, dass Sie sie benötigen, wenn Sie versuchen, die 64-Bit-Version von dpkg
und / oder zu installieren apt
. Bei anderen werden Sie möglicherweise nicht informiert.
(Die obigen Anweisungen zum Chrooten und Arbeiten in der Chroot-Umgebung basieren zu einem erheblichen Teil auf diesem verwandten, aber unterschiedlichen Verfahren und auch auf einigen meiner Launchpad Answers- Posts, insbesondere # 6 hier und # 6 hier . Ein besonderer Dank geht an Caesium für den Hinweis dass die 64-Bit- dpkg
und apt
ausführbaren Dateien nicht auf einem System mit einem 32-Bit-Kernel ausgeführt werden.)