Такой подход очень сложен и вряд ли когда-нибудь приведет к тому, что все ваши пакеты будут amd64
версией, а не i386
версией. Только пакеты, которые фактически получают обновления, вероятно, будут изменены в архитектуре, и, вероятно, только если никакие другие пакеты, которые не обновляются, не полагаются на их i386
архитектуру. Поскольку некоторые пакеты не будут получать никаких обновлений в течение всего цикла поддержки вашего выпуска Ubuntu, вы, вероятно, никогда не будете иметь полностью amd64
систему, использующую такую технику. Кроме того, такой подход, безусловно, не получил официальной поддержки.
Рекомендуется заменить существующую систему Ubuntu новой 64-битной установкой.
Однако, если вы хотите попробовать эту технику, вам придется вручную загрузить .deb
файлы для dpkg
и apt
. Вы можете найти их dpkg
в Ubuntu и apt
на страницах Ubuntu на Launchpad - разверните последнюю версию в разделе «The Oneiric Ocelot», который помечен как выпуск, безопасность и / или обновления (но вы, вероятно, не хотите, чтобы версия отмечалась только предлагаемые и / или обратные порты, если таковые имеются). Затем загрузите .deb
файлы с пометкой amd64
. В частности, вам понадобятся следующие файлы: этот дляdpkg
(и другие, перечисленные тоже, если у вас установлены эти пакеты), и это, и это, и это, и этои это для apt
.
Прежде чем что-либо делать с этими файлами, вы должны обязательно сделать резервную копию всех важных документов в установленной вами системе Ubuntu и любых других важных файлов (например, музыки, электронных книг, видео), потому что весьма вероятно, что попытка этого метода будет иметь неприятные последствия и оставьте вашу систему Ubuntu полностью непригодной для использования.
Вы можете установить все эти пакеты, поместив их в папку, которая больше ничего не содержит (предположим, что папка вызывается debs
и находится внутри вашего Downloads
каталога), а затем выполните следующую команду:
sudo dpkg -Ri ~/Downloads/debs
Конечно, после того, как вы их установили, они фактически не будут работать, потому что их исполняемые файлы являются 64-битными, а ваша 32-битная система Ubuntu работает с 32-битным ядром (которое будет запускать только 32-битные исполняемые файлы). На самом деле, они могут даже не завершить установку, поскольку у них могут быть сценарии после установки, которые вызывают их неуправляемые 64-разрядные исполняемые файлы.
Существуют различные способы установки 64-разрядного ядра на 32-разрядную систему, но все они чрезвычайно сложны, поэтому вместо этого я рекомендую загружаться с 64-разрядного Live CD Oneiric (который сам работает на 64-разрядной версии). ядро), загрузитесь в установленную систему Ubuntu и используйте недавно установленную 64-разрядную версию apt
и dpkg
установите 64-разрядное ядро.
Вот конкретные инструкции для этого ... но, пожалуйста, не принимайте это, чтобы означать, что я говорю, что это будет работать. Я не пытался это сделать. (Я подключился к установленным системам Ubuntu с живых компакт-дисков и выполнил управление пакетами и другие операции, но я не пытался выполнять операции меж архитектурой, предложенные здесь.)
В установленной вами системе Ubuntu откройте окно терминала ( Ctrl+ Alt+ T) и запустите mount | grep ' on / '
(вставив его в терминал и нажав клавишу ввода). Вы должны увидеть что-то вроде /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. Интересующая вас часть - это имя устройства ранее on
(в данном примере это /dev/sda2
). Помните это или запишите это.
Шаг 1 дал вам имя устройства /
раздела. Если у вас есть отдельный /boot
раздел, вам также необходимо знать имя устройства для этого. Так что в таком случае беги mount | grep ' on /boot '
. Вы увидите что-то подобное /dev/sda1 on /boot type ext2 (rw)
. Запомните или запишите это.
Загрузитесь с живого компакт-диска Oneiric amd64 (т.е. 64-разрядного) и выберите «Try Ubuntu», а не «Install Ubuntu».
Зайдите в веб-браузер и убедитесь, что подключение к Интернету полностью функционально. Если это не так, настройте его.
Откройте окно терминала и запустите sudo mount /dev/sda2 /mnt
(замените /dev/sda2
на имя устройства, полученное на шаге 1, если оно отличается).
Если ваша установленная система имеет отдельный /boot
раздел, запустите sudo mount /dev/sda1 /mnt/boot
(замените /dev/sda1
на имя устройства, которое вы получили в шаге 2, если оно отличается).
Теперь, запустите эти команды для chroot в вашей установленной системе:
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
Запустите, ping -c 4 launchpad.net
чтобы увидеть, работает ли интернет-соединение полностью из chroot. Вы надеетесь на что-то вроде этого:
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
Если вместо этого вы не можете передавать или получать пакеты, то вам придется настроить подключение к Интернету в chroot. Для этого выполните следующие команды (чтобы выйти из chroot, скопируйте соответствующие файлы конфигурации из системы live CD в chroot и заново введите 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
Хотя обычно вы должны остановить этот процесс при возникновении ошибки, не беспокойтесь, если первая и / или вторая из этих четырех команд потерпят неудачу, при условии, что конкретный способ, которым она не работает, - это сказать вам, что /mnt/etc/resolv.conf
(или /mnt/etc/hosts
) не существует ,
Вернитесь к chroot и попробуйте снова:
sudo chroot /mnt
ping -c 4 launchpad.net
Запустите эти команды, чтобы ваша среда chroot была полностью готова к использованию:
export HOME=/root
export LC_ALL=C
Если вы не установили .deb
файлы для 64-битных версий dpkg
и apt
, сделайте это сейчас. Если вы установили их, но были ошибки конфигурации, запустите их, dpkg --configure -a
чтобы исправить. (Надеюсь, это сработает ... может быть лучше подождать, чтобы попытаться установить их, пока вы не окажетесь в среде live CD, в случае, если установка 64-разрядной dpkg
версии при загрузке в установленную систему оставляет dpkg
в непригодном для использования состоянии.)
Установив 64-разрядные версии dpkg
и apt
установив, что они автоматически установят 64-разрядные пакеты, вы теперь можете удалить все 32-разрядные ядра и установить 64-разрядное ядро. Чтобы удалить 32-битные ядра, запустите dpkg -l | grep linux-
. Это список установленных пакетов, которые начинаются с linux-
. Вы более конкретно заинтересованы в пакеты , которые начинаются , как linux-generic
, linux-image
, linux-server
и / или linux-headers
. Удалите эти файлы, apt-get purge ...
где ...
вместо них будет указан разделенный пробелами список удаляемых пакетов.
Теперь переустановите пакеты, которые вы удалили. ( На самом деле, для пакетов , которые содержат номер версии в имени пакета, как, например linux-image-3.0.0-13-generic
, вам нужно только установить последние версированы имена пакетов.) Сделайте это работает , apt-get install ...
где ...
заменяется разделенных пробелами список пакетов вы устанавливаете ,
Обновите конфигурацию загрузчика, размонтируйте некоторые устройства и оставьте chroot:
update-grub
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount mnt/dev
Если ты побежал sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
и он не подвел, то теперь беги sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.
Если ты побежал sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
и он не подвел, то теперь беги sudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.
Если ваша установленная система имеет отдельный /boot
раздел, размонтируйте, что:sudo umount /mnt/boot
Размонтируйте /
раздел установленной системы :sudo umount /mnt
Выйдите из окна терминала (запустите exit
), затем перезагрузите (или выключите) систему live CD и загрузитесь в установленную систему.
Посмотрите, работоспособна ли система и работает ли она на 64-битном ядре ( uname -m
следует сказать, что это архитектура x86_64
).
Для этого могут потребоваться дополнительные пакеты, такие как ia32_libs
и / или 64-разрядная версия libc6
. Для некоторых из них вам может быть сообщено, что они вам нужны при попытке установить 64-разрядную версию dpkg
и / или apt
. Для других вас могут не проинформировать.
(Вышеприведенные инструкции для chroot и работы в среде chrooted в значительной степени основаны на этой связанной, но другой процедуре, а также на некоторых моих постах Ответов на Launchpad , особенно на № 6 здесь и № 6 здесь . И особая благодарность Cesium за указание что 64-битные dpkg
и apt
исполняемые файлы не будут работать в системе с 32-битным ядром.)