Как я могу переключить 32-разрядную установку на 64-разрядную?

Такой подход очень сложен и вряд ли когда-либо приведет к тому, что все ваши пакеты будут одинаковыми amd64 версия вместо i386 версия. Только пакеты, которые фактически получают обновления, скорее всего, будут изменены в архитектуре, и, вероятно, только в том случае, если никакие другие пакеты, которые не обновляются, не зависят от их принадлежности к i386 архитектура. Поскольку некоторые пакеты не будут получать какой-нибудь обновления на протяжении всего цикла поддержки вашего выпуска Ubuntu, скорее всего, у вас никогда не будет полностью amd64 система, использующая такую технику. Более того, такой подход, безусловно, не пользуется официальной поддержкой.

Вам было бы разумно вместо этого заменить существующую систему Ubuntu новой 64-разрядной установкой.

Однако, если вы действительно хотите попробовать эту технику, вам придется вручную загрузите .deb файлы для dpkg и apt. Вы можете найти их в dpkg в Ubuntu и apt в Ubuntu страницы на панели запуска - разверните последнюю версию в разделе "Oneiric Ocelot", которая помечена как релиз, безопасность и / или обновления (но вы, вероятно, не хотите, чтобы версия была помечена только как предлагаемая и / или бэкпорты, если таковая вообще существует). Затем загрузите .deb файлы, помеченные amd64. В частности, файлы, которые вам понадобятся, это: этот для dpkg (и другие перечисленные тоже, если у вас установлены эти пакеты) и этот и этот и этот и этот и этот для apt.

Прежде чем что-либо делать с этими файлами, вы должны убедиться, что создали резервные копии всех важных документов в вашей установленной системе Ubuntu и любых других важных файлов (например, музыки, электронных книг, видео), поскольку весьма вероятно, что попытка этого метода приведет к неприятным последствиям и сделает вашу систему Ubuntu полностью непригодной для использования.

Вы можете установить все эти пакеты, поместив их в папку, которая больше ничего не содержит (предположим, что папка называется debs и находится внутри вашего Downloads каталог), а затем выполните эту команду:

sudo dpkg -Ri ~/Downloads/debs

Конечно, после того, как вы их установили, они фактически не будут запускаться, потому что их исполняемые файлы 64-разрядные, а ваша 32-разрядная система Ubuntu работает под управлением 32-разрядного ядра (которое будет запускать только 32-разрядные исполняемые файлы). Фактически, они могут даже не завершить установку, поскольку у них могут быть сценарии после установки, которые вызывают их неуправляемые 64-разрядные исполняемые файлы.

Существуют различные способы установки 64-разрядного ядра на 32-разрядную систему, но все они чрезвычайно сложны, поэтому вместо этого я рекомендую вам загрузиться с 64-разрядного компакт-диска Oneiric live CD (который сам запускает 64-разрядное ядро)., chroot в установленную систему Ubuntu и используйте недавно установленную 64-разрядную apt и dpkg для установки 64-разрядного ядра.

Вот конкретные инструкции для этого ... но, пожалуйста, не воспринимайте это как то, что я говорю, что это сработает. Я не пытался этого сделать. (Я подключался к установленным системам Ubuntu с live CD и выполнял управление пакетами и другие операции, но я не пытался выполнять операции с перекрестной архитектурой, предложенные здесь.)

  1. В установленной системе Ubuntu откройте окно терминала (Ctrl+Alt+T) и запустить mount | grep ' on / ' (вставив его в терминал и нажав enter). Вы должны увидеть что-то вроде /dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0). Часть, которая вас интересует, - это имя устройства перед on (в этом примере это /dev/sda2). Запомните это или запишите.

  2. Шаг 1 дал вам имя устройства для / раздел. Если у вас есть отдельный /boot раздел, тогда вам также нужно будет знать имя устройства для этого. Так что в таком случае запускайте mount | grep ' on /boot '. Вы увидите что-то вроде /dev/sda1 on /boot type ext2 (rw) Запомните или запишите и это тоже.

  3. Загрузитесь с Oneiric amd64 (т.е. 64-разрядного) live CD и выберите "Попробовать Ubuntu", а не "Установить Ubuntu".

  4. Зайдите в веб-браузер и убедитесь, что подключение к Интернету полностью функционально. Если это не так, настройте его.

  5. Откройте окно терминала и запустите sudo mount /dev/sda2 /mnt (заменить /dev/sda2 с именем устройства, которое вы получили на шаге 1, если оно отличается).

  6. Если ваша установленная система имеет отдельный /boot раздел, запустите sudo mount /dev/sda1 /mnt/boot (заменить /dev/sda1 с именем устройства, которое вы получили на шаге 2, если оно отличается).

  7. Теперь выполните эти команды, чтобы выполнить 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  
  8. Бежать 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 ms64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=2 ttl=41 time=143 ms64 bytes from launchpad-net.banana.canonical.com (91.189.89.223): icmp_req=3 ttl=41 time=142 ms64 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
  9. Если вместо этого вы не смогли передавать или получать пакеты, вам придется настроить подключение к Интернету в 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  
  10. Выполните эти команды, чтобы сделать вашу chrooted среду полностью готовой к использованию:

    export HOME=/root  export LC_ALL=C  
  11. Если вы еще не установили .deb файлы для 64-разрядных версий dpkg и apt, так и поступай сейчас. Если вы установили их, но возникли ошибки конфигурации, запустите dpkg --configure -a чтобы исправить их. (Надеюсь, это поможет work...it возможно, было бы лучше подождать с попыткой их установки, пока вы не окажетесь в среде live CD, в случае установки 64-разрядной версии dpkg при загрузке в установленную систему оставляет dpkg в непригодном для использования состоянии.)

  12. С 64-разрядными версиями dpkg и apt установленные, предполагая, что они автоматически установят 64-разрядные пакеты, теперь вы можете удалить все свои 32-разрядные ядра и установить 64-разрядное ядро. Чтобы удалить 32-разрядные ядра, запустите dpkg -l | grep linux-. Здесь перечислены установленные пакеты, которые начинаются с linux-. Вас более конкретно интересуют пакеты, которые начинаются как linux-generic, linux-image, linux-server, и/или linux-headers. Удалите эти файлы с помощью apt-get purge ... где ... заменяется списком удаляемых пакетов, разделенных пробелами.

  13. Теперь переустановите удаленные пакеты. (На самом деле, для пакетов, которые содержат номера версий в имени пакета, например linux-image-3.0.0-13-generic, вам нужно только установить имена пакетов с последними версиями.) Сделайте это, выполнив apt-get install ... где ... заменяется списком устанавливаемых пакетов, разделенных пробелами.

  14. Обновите конфигурацию загрузчика, отключите некоторые устройства и оставьте chroot:

    update-grub  umount /proc || umount -lf /proc  umount /sys  umount /dev/pts  exit  sudo umount mnt/dev  
  15. Если бы ты убежал sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old и это не подвело, тогда теперь запускайте sudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf.

  16. Если бы ты убежал sudo cp /mnt/etc/hosts /mnt/etc/hosts.old и это не подвело, тогда теперь запускайте sudo cp /mnt/etc/hosts.old /mnt/etc/hosts.

  17. Если ваша установленная система имеет отдельный /boot раздел, размонтируйте этот: sudo umount /mnt/boot

  18. Отключите установленную систему от / раздел: sudo umount /mnt

  19. Выйдите из окна терминала (запустите exit), затем перезагрузите (или выключите) систему live CD и загрузитесь в установленную систему.

  20. Проверьте, пригодна ли система для использования и работает ли 64-разрядное ядро (uname -m должен сказать, что архитектура является x86_64).

Вполне возможно, что вам потребуется установить дополнительные пакеты, такие как ia32_libs и/или 64-разрядная версия libc6, чтобы это сработало. Для некоторых из них вам может быть сообщено, что они вам понадобятся при попытке установить 64-разрядную версию dpkg и/или apt. Что касается других, то вы можете быть не проинформированы.

(Приведенные выше инструкции по укоренению и работе в среде с укоренением в значительной степени основаны на это связанная, но иная процедура а также на некоторых Ответы на панели запуска мои посты, особенно #6 здесь и №6 здесь. И особая благодарность Цезий за указание на то, что 64-разрядная dpkg и apt исполняемые файлы не будут запускаться в системе с 32-разрядным ядром.)