Un tale approccio è molto complicato ed è improbabile che tutti i pacchetti siano la amd64
versione anziché la i386
versione. Solo i pacchetti che effettivamente ricevono gli aggiornamenti verranno probabilmente modificati nell'architettura, e probabilmente solo se nessun altro pacchetto non aggiornato si affida al loro essere i386
dell'architettura. Poiché alcuni pacchetti non riceveranno alcun aggiornamento durante l'intero ciclo di supporto della tua versione di Ubuntu, probabilmente non avrai mai un amd64
sistema completo che utilizza tale tecnica. Inoltre, non esiste certamente alcun supporto ufficiale per tale approccio.
Si consiglia invece di sostituire il sistema Ubuntu esistente con una nuova installazione a 64 bit.
Tuttavia, se si desidera provare questa tecnica, è necessario scaricare manualmente i .deb
file per dpkg
e apt
. Puoi trovarli nelle pagine dpkg
Ubuntu e apt
Ubuntu su Launchpad: espandi l'ultima versione in "The Oneiric Ocelot" che è contrassegnata come versione, sicurezza e / o aggiornamenti (ma probabilmente non vuoi una versione contrassegnata solo proposti e / o backport, se mai ce n'è uno). Quindi scaricare i .deb
file contrassegnati amd64
. In particolare, i file che desideri sono: questo perdpkg
(e anche gli altri elencati, se hai quei pacchetti installati) e questo e questo e questo e questoe questo per apt
.
Prima di fare qualsiasi cosa con questi file, è necessario assicurarsi di eseguire il backup di tutti i documenti importanti nel sistema Ubuntu installato e di qualsiasi altro file importante (ad esempio musica, ebook, video), perché è piuttosto probabile che tentare questa tecnica si ritorcerà contro e lascia il tuo sistema Ubuntu completamente inutilizzabile.
Puoi installare tutti questi pacchetti inserendoli in una cartella che non contiene nient'altro (supponiamo che la cartella sia chiamata debs
e si trovi all'interno della tua Downloads
directory), e quindi eseguendo questo comando:
sudo dpkg -Ri ~/Downloads/debs
Naturalmente, una volta installati, non verranno effettivamente eseguiti, poiché i loro eseguibili sono a 64 bit e il sistema Ubuntu a 32 bit esegue un kernel a 32 bit (che eseguirà solo eseguibili a 32 bit). In effetti, potrebbero non finire nemmeno l'installazione, poiché potrebbero avere script post-installazione che invocano i loro eseguibili a 64 bit non eseguibili.
Esistono vari modi per tentare di installare un kernel a 64 bit su un sistema a 32 bit, ma sono tutti estremamente complicati, quindi raccomando invece di eseguire l'avvio da un CD live Oneiric a 64 bit (che a sua volta esegue un 64 bit kernel), chroot nel sistema Ubuntu installato e utilizzare il 64-bit recentemente installato apt
e dpkg
per installare un kernel a 64-bit.
Ecco le istruzioni specifiche per farlo ... ma per favore non prendere questo per significare che sto dicendo che funzionerà. Non ci ho provato. (Ho eseguito il chroot nei sistemi Ubuntu installati da CD live e ho eseguito la gestione dei pacchetti e altre operazioni, ma non ho tentato le operazioni di architettura incrociata suggerite qui.)
Nel tuo sistema Ubuntu installato, apri una finestra Terminale ( Ctrl+ Alt+ T) ed esegui mount | grep ' on / '
(incollandolo nel Terminale e premendo invio). Dovresti vedere qualcosa del genere /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. La parte che ti interessa è il nome del dispositivo prima on
(in questo esempio, è /dev/sda2
). Ricordalo o scrivilo.
Il passaggio 1 ti ha dato il nome del dispositivo della /
partizione. Se hai una /boot
partizione separata , dovrai conoscere anche il nome del dispositivo. Quindi, in quel caso, corri mount | grep ' on /boot '
. Vedrai qualcosa del genere /dev/sda1 on /boot type ext2 (rw)
. Ricorda o scrivi anche questo.
Eseguire l'avvio da un CD live di Oneiric amd64 (ovvero 64 bit) e selezionare "Prova Ubuntu" anziché "Installa Ubuntu".
Accedi a un browser Web e assicurati che la connettività Internet sia perfettamente funzionante. In caso contrario, impostalo.
Apri una finestra Terminale ed esegui sudo mount /dev/sda2 /mnt
(sostituisci /dev/sda2
con il nome del dispositivo ottenuto nel passaggio 1, se diverso).
Se il tuo sistema installato ha una /boot
partizione separata , esegui sudo mount /dev/sda1 /mnt/boot
(sostituisci /dev/sda1
con il nome del dispositivo ottenuto al passaggio 2, se diverso).
Ora, esegui questi comandi per chroot nel tuo sistema installato:
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
Esegui ping -c 4 launchpad.net
per vedere se la connettività Internet funziona completamente dall'interno del chroot. Stai sperando in qualcosa del genere:
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
Se, invece, non sei stato in grado di trasmettere o ricevere pacchetti, dovrai impostare la connettività Internet nel chroot. Per fare ciò, eseguire questi comandi (per lasciare il chroot, copiare i file di configurazione rilevanti dal sistema di live CD nel chroot e immettere nuovamente il 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
Mentre in genere dovresti interrompere questo processo in caso di errore, non preoccuparti se il primo e / o il secondo di questi quattro comandi falliscono, a condizione che il modo specifico in cui fallisce sia dirti che /mnt/etc/resolv.conf
(o /mnt/etc/hosts
) non esiste .
Il chroot torna e riprova:
sudo chroot /mnt
ping -c 4 launchpad.net
Esegui questi comandi per rendere l'ambiente chroot completamente pronto per l'uso:
export HOME=/root
export LC_ALL=C
Se non hai installato i .deb
file per le versioni a 64 bit di dpkg
e apt
, fallo ora. Se li hai installati ma ci sono stati errori di configurazione, esegui dpkg --configure -a
per risolverli. (Speriamo che funzioni ... potrebbe essere meglio aspettare di tentare di installarli fino a quando non ci si trova nell'ambiente CD live, nel caso in cui l'installazione del 64-bit dpkg
durante l'avvio nel sistema installato lasci dpkg
uno stato inutilizzabile.)
Con le versioni a 64 bit dpkg
e apt
installate, supponendo che installeranno automaticamente pacchetti a 64 bit, ora puoi rimuovere tutti i tuoi kernel a 32 bit e installare un kernel a 64 bit. Per rimuovere i kernel a 32 bit, esegui dpkg -l | grep linux-
. Questo elenca i pacchetti installati che iniziano con linux-
. Sei più specificamente interessati a pacchetti che partono come linux-generic
, linux-image
, linux-server
, e / o linux-headers
. Rimuovi questi file apt-get purge ...
dove ...
viene sostituito con un elenco separato da spazi dei pacchetti che stai rimuovendo.
Ora reinstalla i pacchetti che hai rimosso. (In realtà, per i pacchetti che contengono numeri di versione nel nome del pacchetto, come ad esempio linux-image-3.0.0-13-generic
, è necessario installare solo i nomi dei pacchetti con versione più recente.) Eseguire eseguendo apt-get install ...
dove ...
viene sostituito con un elenco separato da spazi dei pacchetti che si stanno installando .
Aggiorna la configurazione del boot loader, smonta alcuni dispositivi e lascia il chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
Se hai eseguito sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
e non ha funzionato, ora esegui sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.
Se hai eseguito sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
e non ha funzionato, ora esegui sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.
Se il tuo sistema installato ha una /boot
partizione separata , smonta che:sudo umount /mnt/boot
Smonta la /
partizione del sistema installato :sudo umount /mnt
Lasciare la finestra del Terminale (eseguire exit
), quindi riavviare (o arrestare) il sistema di live CD e avviare il sistema installato.
Verifica se il sistema è utilizzabile e esegue un kernel a 64 bit ( uname -m
dovresti dire che l'architettura lo è x86_64
).
Potrebbero esserci dei pacchetti aggiuntivi che devi installare, come ia32_libs
e / o la versione a 64 bit di libc6
, per farlo funzionare. Per alcuni di essi, potresti essere informato di averne bisogno quando tenti di installare la versione a 64 bit di dpkg
e / o apt
. Per altri, potresti non essere informato.
(Le istruzioni di cui sopra per il chrooting e il funzionamento nell'ambiente chrooted si basano in parte significativa su questa procedura correlata ma diversa e anche su alcuni miei post di Launchpad Answers , in particolare il numero 6 qui e il numero 6. Qui . E un ringraziamento speciale a Cesio per la segnalazione che il 64 bit dpkg
e gli apt
eseguibili non funzioneranno su un sistema che esegue un kernel a 32 bit.)