Takie podejście jest bardzo skomplikowane i jest mało prawdopodobne, aby wszystkie pakiety były amd64
wersjami zamiast i386
wersji. Tylko pakiety, które faktycznie otrzymują uaktualnienia, prawdopodobnie zostaną zmienione w architekturze i prawdopodobnie tylko wtedy, gdy żadne inne pakiety, które nie zostaną uaktualnione, będą polegać na swojej i386
architekturze. Ponieważ niektóre pakiety nie otrzymają żadnych aktualizacji przez cały cykl wsparcia twojej wersji Ubuntu, prawdopodobnie nigdy nie będziesz mieć w pełni amd64
systemu używającego takiej techniki. Co więcej, z pewnością nie ma oficjalnego poparcia dla takiego podejścia.
Zaleca się zastąpienie istniejącego systemu Ubuntu nową, 64-bitową instalacją.
Jeśli jednak chcesz wypróbować tę technikę, musisz ręcznie pobrać .deb
pliki dla dpkg
i apt
. Można je znaleźć na stronach dpkg
Ubuntu i apt
Ubuntu na Launchpad - rozwiń najnowszą wersję w „Oneiric Ocelot” oznaczonym jako wydanie, bezpieczeństwo i / lub aktualizacje (ale prawdopodobnie nie chcesz wersji oznaczonej tylko proponowane i / lub backporty, jeśli takie istnieją). Następnie pobierz .deb
pliki oznaczone amd64
. W szczególności pliki, które chcesz, to: ten dladpkg
(i inne też wymienione, jeśli masz zainstalowane te pakiety) oraz ten i ten i ten i teni to dla apt
.
Zanim cokolwiek zrobisz z tymi plikami, powinieneś wykonać kopię zapasową wszystkich ważnych dokumentów w zainstalowanym systemie Ubuntu i wszelkich innych ważnych plikach (np. Muzyka, ebooki, filmy), ponieważ jest prawdopodobne, że próba zastosowania tej techniki źle się przydarzy i pozostaw swój system Ubuntu całkowicie bezużyteczny.
Możesz zainstalować wszystkie te pakiety, umieszczając je w folderze, który nie zawiera nic innego (załóżmy, że folder jest wywoływany debs
i znajduje się w Downloads
katalogu), a następnie uruchom następujące polecenie:
sudo dpkg -Ri ~/Downloads/debs
Oczywiście, po ich zainstalowaniu, tak naprawdę nie będą działać, ponieważ ich pliki wykonywalne są 64-bitowe, a na twoim 32-bitowym systemie Ubuntu działa jądro 32-bitowe (które będzie uruchamiać tylko 32-bitowe pliki wykonywalne). W rzeczywistości mogą nawet nie kończyć instalacji, ponieważ mogą mieć skrypty poinstalacyjne, które wywołują ich niemożliwe do uruchomienia 64-bitowe pliki wykonywalne.
Istnieją różne sposoby próby zainstalowania 64-bitowego jądra w systemie 32-bitowym, ale wszystkie są bardzo skomplikowane, dlatego zamiast tego zalecam uruchomienie z 64-bitowego dysku CD Live Oneiric (który sam uruchamia 64-bitowy kernel), chroot do zainstalowanym systemem Ubuntu i użyć niedawno zainstalowany 64-bitowy apt
i dpkg
zainstalowanie jądra 64-bitowego.
Oto szczegółowe instrukcje, jak to zrobić ... ale proszę nie brać tego pod uwagę, że mówię, że zadziała. Nie próbowałem tego. (Zrobiłem chrootowanie do zainstalowanych systemów Ubuntu z Live CD i wykonałem zarządzanie pakietami i inne operacje, ale nie próbowałem sugerowanych tutaj operacji między architekturami.)
W zainstalowanym systemie Ubuntu otwórz okno Terminal ( Ctrl+ Alt+ T) i uruchom mount | grep ' on / '
(wklejając je do Terminalu i naciskając Enter). Powinieneś zobaczyć coś takiego /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. Interesuje Cię wcześniej nazwa urządzenia on
(w tym przykładzie to /dev/sda2
). Pamiętaj o tym lub zapisz to.
Krok 1 dał nazwę urządzenia /
partycji. Jeśli masz oddzielną /boot
partycję, musisz również znać nazwę tego urządzenia. W takim razie uruchom mount | grep ' on /boot '
. Zobaczysz coś takiego /dev/sda1 on /boot type ext2 (rw)
. Pamiętaj też lub zapisz to.
Uruchom komputer z Oneiric amd64 (tj. 64-bitowego) live CD i wybierz „Wypróbuj Ubuntu” zamiast „Zainstaluj Ubuntu”.
Przejdź do przeglądarki internetowej i upewnij się, że łączność internetowa jest w pełni funkcjonalna. Jeśli nie jest, skonfiguruj go.
Otwórz okno terminala i uruchom sudo mount /dev/sda2 /mnt
(zamień /dev/sda2
na nazwę urządzenia otrzymaną w kroku 1, jeśli jest inna).
Jeśli zainstalowany system ma osobną /boot
partycję, uruchom sudo mount /dev/sda1 /mnt/boot
(zamień /dev/sda1
na nazwę urządzenia otrzymaną w kroku 2, jeśli jest inna).
Teraz uruchom następujące polecenia, aby wykonać chroot w zainstalowanym systemie:
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
Uruchom, ping -c 4 launchpad.net
aby sprawdzić, czy połączenie internetowe działa w pełni z chroot. Masz nadzieję na coś takiego:
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
Jeśli zamiast tego nie możesz przesyłać ani odbierać pakietów, musisz skonfigurować połączenie internetowe w chroot. Aby to zrobić, uruchom następujące polecenia (aby wyjść z chroot, skopiuj odpowiednie pliki konfiguracyjne z systemu Live CD do chroot i ponownie wprowadź chroot):
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
Chociaż ogólnie powinieneś zatrzymać ten proces, jeśli wystąpi błąd, nie martw się, jeśli pierwsze i / lub drugie z tych czterech poleceń zawiodą, pod warunkiem, że konkretny sposób, w jaki zawodzi, to informowanie, że /mnt/etc/resolv.conf
(lub /mnt/etc/hosts
) nie istnieje .
Chroot z powrotem i spróbuj ponownie:
sudo chroot /mnt
ping -c 4 launchpad.net
Uruchom następujące polecenia, aby przygotować środowisko chrootowane do użycia:
export HOME=/root
export LC_ALL=C
Jeśli nie zainstalowałeś .deb
plików dla 64-bitowych wersji dpkg
i apt
, zrób to teraz. Jeśli je zainstalowałeś, ale wystąpiły błędy konfiguracji, uruchom dpkg --configure -a
je , aby je naprawić. (Mam nadzieję, że to zadziała ... może być lepiej poczekać, aby spróbować je zainstalować, dopóki nie znajdziesz się w środowisku Live CD, na wypadek gdyby instalacja 64-bitowego dpkg
systemu podczas rozruchu w zainstalowanym systemie dpkg
pozostała bezużyteczna).
Po zainstalowaniu 64-bitowych wersji dpkg
i apt
przy założeniu, że będą one automatycznie instalować pakiety 64-bitowe, możesz teraz usunąć wszystkie swoje 32-bitowe jądra i zainstalować 64-bitowe jądro. Aby usunąć 32-bitowe jądra, uruchom dpkg -l | grep linux-
. Zawiera listę zainstalowanych pakietów zaczynających się od linux-
. Jesteś zainteresowany dokładniej w pakietach, które rozpoczynają się jak linux-generic
, linux-image
, linux-server
i / lub linux-headers
. Usuń te pliki, apt-get purge ...
gdzie gdzie ...
jest zastąpione rozdzieloną spacjami listą usuwanych pakietów.
Teraz ponownie zainstaluj usunięte pakiety. (W rzeczywistości, w przypadku pakietów zawierających numery wersji w nazwie pakietu, na przykład linux-image-3.0.0-13-generic
wystarczy zainstalować tylko najnowsze wersje wersji pakietu.) Zrób to, uruchamiając program, apt-get install ...
gdzie ...
jest zastąpiony rozdzielaną spacjami listą instalowanych pakietów .
Zaktualizuj konfigurację modułu ładującego, odmontuj niektóre urządzenia i opuść chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
Jeśli uciekłeś, sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
a to nie zawiodło, to teraz uruchom sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.
Jeśli uciekłeś, sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
a to nie zawiodło, to teraz uruchom sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.
Jeśli zainstalowany system ma osobną /boot
partycję, odmontuj:sudo umount /mnt/boot
Odmontuj zainstalowaną /
partycję systemową :sudo umount /mnt
Opuść okno Terminala (uruchom exit
), a następnie uruchom ponownie (lub zamknij) system Live CD i uruchom system.
Sprawdź, czy system jest użyteczny i działa na 64-bitowym jądrze ( uname -m
należy powiedzieć, że architektura jest x86_64
).
Mogą się przydać dodatkowe pakiety, takie jak ia32_libs
wersja 64-bitowa libc6
, aby to działało. W przypadku niektórych z nich możesz zostać poinformowany, że potrzebujesz ich podczas próby zainstalowania 64-bitowej wersji dpkg
i / lub apt
. W przypadku innych możesz nie zostać poinformowany.
(Powyższe instrukcje dotyczące chrootowania i działania w środowisku chroot oparte są w znacznej części na tej pokrewnej, ale odmiennej procedurze, a także na niektórych moich postach Launchpad Answers , szczególnie tutaj # 6 i tutaj 6. Specjalne podziękowania dla Cesium za wskazanie że 64-bitowe dpkg
i apt
pliki wykonywalne nie będą działać w systemie z 32-bitowym jądrem.)