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

Даже мы столкнулись с этой проблемой ... Но нам удалось решить эту проблему, нажав эту команду:

ssh localhost "sudo apt-get install ntp ntpdate ; sudo service ntp stop; sudo ntpdate 0.ubuntu.pool.ntp.org; sudo service ntp start"

Для этого вам нужно установить openssh-server.

[d2 ] Кроме того, удалите ntp и ntpdate (sudo apt-get remove --purge ntp ntpdate) перед тем, как запустить команду ssh.

1
задан 2 December 2013 в 21:01

9 ответов

Как указано выше, я сделал:

echo foreign-architecture amd64 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
sudo apt-get update
sudo apt-get install linux-image:amd64
sudo apt-get install gcc-multilib
sudo update-grub

Это сработало. Я могу запустить свой 32-разрядный пользовательский интерфейс с 64-битным ядром в Ubuntu 12.04.

24
ответ дан 25 May 2018 в 16:35
  • 1
    Этот ответ качается. Я могу подтвердить, что он все еще работает с дерзким. Единственное отличие заключается в том, что процедура добавления архитектуры изменилась: вместо этого используйте sudo dpkg --add-architecture amd64. Он будет кричать на вас, если вы сделаете это по-другому. Мне нужно было сделать это, чтобы я мог вставить 64-битную установку из 32-битного (ранее) 32-го, и он работал точно так, как ожидалось, без зацепов. – Wug 10 January 2014 в 16:22
  • 2
    Я попробовал это на Монетном дворе, но у меня проблемы, вы сделали что-нибудь еще? Подробности: superuser.com/q/927830/150718 – dr Hannibal Lecter 28 June 2015 в 14:16
  • 3
    В дополнение к изменению Wug вам также нужно использовать linux-image-generic:amd64 в Ubuntu 16.04. Он отлично работал, даже без двух последних команд. – qznc 17 March 2017 в 16:24

Хотя вопрос аналогичен вопросу, возможно ли «обновление», от 32-битной до 64-битной установки? (Если вы еще не прочитали его, прежде чем я попрошу вас попробовать, ответ будет предоставлен.) Я также рекомендую прочитать следующие ссылки:

Возможно ли «обновление»? от 32-битной до 64-битной установки?

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

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

Возможно ли: Да

Легко: НЕТ!

Если ваша проблема с памятью, то вы должны знать, что 32-битный Ubuntu может читать более 4 ГБ оперативной памяти (до 64 ГБ). Таким образом, использование последней версии 32-битного Ubuntu с компьютером с архитектурой 32 бит или 64 бит и добавлением большего объема оперативной памяти не будет проблемой. Он будет просто читать дополнительную оперативную память и работать.

6
ответ дан 25 May 2018 в 16:35

Эти инструкции заставляют вашу систему загружаться с 64-битным ядром, но не меняют большинство программ пользовательской программы.

После обновления моей системы с 64-разрядным процессором я также хотел установить 64- битное ядро ​​на моем 32-битном 14.04.2 Ubuntu (кодовое имя: Trusty). Для этого я ввел следующие команды как . Эти инструкции заставляют вашу систему загружаться с 64-битным ядром, но не меняют большинство программ пользовательской программы. :

dpkg --add-architecture amd64   
apt-get update
apt-get install linux-generic-lts-utopic:amd64

Примечания :

Это может удалить ваше 32-битное ядро ​​как надежное - по умолчанию - поставляется с обновленным ядром (ядро из utopic), см. примечания к выпуску 14.04. В этом случае ваше текущее ядро ​​конфликтует с установленным 64-битным ядром и, следовательно, удаляется. Если вам не нравится эта идея, вы можете попробовать старый 64-разрядный пакет ядра «linux-generic-lts-trusty: amd64». Команда «-add-architecure» имеет важное значение. Без него система пакетов не поддерживает пакеты из разных архитектур, см. Multiarch-HowTo. Чтобы увидеть, что apt-get будет делать с вашей системой, запустите ее с параметрами -Vs, которые позволят «режим подробной версии». Это напечатает все пакеты, которые будут установлены и удалены. Независимо от того, загружается ли система с использованием нового ядра, это зависит от конфигурации grub. В качестве пользователя root запустите update-grub, чтобы сделать обновление grub и распечатать текущую конфигурацию загрузки. Первое изображение в списке будет загружено по умолчанию. Чтобы выбрать другое изображение ядра, я удалил строку GRUB_HIDDEN_TIMEOUT=0 с /etc/default/grub и запустил ее как пользователя root update-grub. Во время загрузки вы можете выбрать другое ядро ​​(у вас есть 10 секунд, чтобы нажать любую клавишу, иначе grub продолжит ядро ​​по умолчанию). Ответ с высшим большинством голосов - с 2011 года и, на мой взгляд, безнадежно устарел. Multiarch позволяет устанавливать пакеты библиотек из нескольких архитектур на одном компьютере без особого шума.
4
ответ дан 25 May 2018 в 16:35
  • 1
    Это хороший простой совет, который почти сработал для меня в 14.10 (Utopic) (однако я сделал apt-get install linux-generic:amd64, что не должно быть очень важно для эксперимента)! Если я пройду «спасение», boot, система работает, но X не использует nouveau видеодрайвер и прочее. Если я загружаюсь нормально, запуск запускается в какой-то момент, и система перезагружается. (Но в первый раз я смог успешно загрузиться.) Я не уверен, проблема с видеодрайвером во время «нормального» загрузиться или что-то еще. – imz -- Ivan Zakharyaschev 9 September 2015 в 04:57
  • 2
    Драйвер видео и X не были (статистически) связаны с моими авариями / перезагрузками с ядром amd64. На данный момент это просто загадка - bugs.launchpad.net/ubuntu/+source/upstart/+bug/1495116 . – imz -- Ivan Zakharyaschev 12 September 2015 в 19:28

Эти ответы несколько устарели. Перекрестная сортировка теперь документирована для Debian на вики Debian, но она по-прежнему не рекомендуется.

Установка ядра из другой архитектуры теперь так же проста, как описано здесь, но новый «apt» не будет распознавать пакеты из предыдущей архитектуры, и поэтому все его интерфейсы могут сообщать много разбитых пакеты. Это либо требует изменения всех зависимостей для другой архитектуры, либо возврата apt и dpkg в 32-разрядный.

Таким образом, лучший подход может состоять в том, чтобы сначала сохранить результаты dpkg --get-selections, strip: i386 и загрузить пакет amd64 для каждой из зависимостей в кеше:

apt-get --download-only install perl:amd64 python3:amd64 python3-gi:amd64 xorg:amd64...

В лучшем случае это может быть медленным и трудоемким решением зависимостей.

3
ответ дан 25 May 2018 в 16:35

Crossgrading (обновление до другой архитектуры) еще не поддерживается.

2
ответ дан 25 May 2018 в 16:35

Возможно, когда я столкнусь с одной и той же проблемой, это будет работать, это то, что я планировал сделать:

Получить 64-разрядную версию ОС, установить в раздел, когда полная копия документы и другие материалы из 32-битной установки, когда все будет безопасно скопировано, вы можете отформатировать остальную часть диска и использовать его.

2
ответ дан 25 May 2018 в 16:35

Да, линия внешней архитектуры наиболее важна для установки любых кросс-аркадных пакетов. Но после этого сделайте, как упомянули несколько других пользователей:

sudo apt-get update
sudo apt-get install linux-image:amd64
sudo apt-get install linux-modules:amd64
sudo init 6 #reboot into new kernel
sudo apt-get install apt:amd64
sudo apt-get install ubuntu-desktop:amd64

Это должно было сделать это ...

2
ответ дан 25 May 2018 в 16:35
  • 1
    вы попробовали? это действительно не работает, я получаю проблемы, когда он начинает заменять dpkg и perl своими аналогами amd64 – Janus Troelsen 6 June 2014 в 21:17

Хороший вопрос. У меня была охота вокруг и за исключением истории пользователя, которую вы цитируете, я не могу найти никаких подробностей о том, как это сделать. Вся документация указывает, что он предназначен только для запуска 32-разрядных приложений на уже 64-разрядной ОС.

Однако, если вы хотите поэкспериментировать, вы можете попробовать следующее (полученное из моей ссылки в [1 ])

 echo foreign-architecture amd64 | sudo tee /etc/dpkg/dpkg.cfg.d/multiarch
 sudo apt-get install linux-image:amd64

Я думаю, вам нужно будет начать с ядра amd64, так как 32-битный не сможет запускать любые 64-битные двоичные файлы. Однако 64-разрядный должен запускать 32-битные двоичные файлы (если установлена ​​ia32-libs?).

Если вы установили и загрузили 64-битное ядро, вы можете перейти оттуда, чтобы установить apt: amd64, затем выполните пользовательскую историю, как ранее цитировалось, ubuntu-minimal, ubuntu-desktop и т. д.

После того, как apt: amd64 установлен, я думаю, вы можете удалить линию внешней архитектуры, поскольку вы по существу переключились в этой точке.

Отказ от ответственности: у меня нет 32-битной системы для проверки, так что это все догадки. Удачи!

[1] https://wiki.ubuntu.com/OneiricOcelot/TechnicalOverview/Beta1#Improved_handling_of_32-bit_compatibility_on_amd64_systems

1
ответ дан 25 May 2018 в 16:35

Мой рецепт для Ubuntu 16.04 Xenial, протестированный на недавно установленной 32-разрядной виртуальной машине Ubuntu со стандартным системным и SSH-сервером, но без GUI:

sudo -s
dpkg --get-selections > pkg1
dpkg --add-architecture amd64
apt update
apt install linux-image-generic:amd64 thermald 

(иначе он установит heatd: amd64 и не будет перезагрузить его под 32-разрядным ядром)

reboot

после перезагрузки с 64-битным ядром:

sudo -s
unset LANG
apt install apt:amd64 apt-utils:amd64

type «Да, делайте, как я говорю!» когда его спросят, он будет безопасным

mkdir /tmp/upgrade 
cd /tmp/upgrade
pkgs() { dpkg -l | awk '$4=="'$1'"{print $2}' | awk -F: '{print $1}' | sort -u
}
apt download $(comm -23 <(pkgs i386) <(pkgs amd64))
while ls *amd64*deb
do dpkg -i *amd64*deb
   dpkg -l | awk '$1=="ii" && $4=="amd64" {print $2}' | awk -F: '{print $1}' |
   while read a
   do [ -f ${a}_*amd64*deb ] && rm ${a}_*amd64*deb
   done
done

в цикле выше, мы удалим файлы .deb, которые были успешно установлены и получили статус «ii» в списке dpkg.

нам нужно повторить пробеги dpkg -i, так как это не удается с самой первой попытки

reboot

теперь, как с 64-битным ядром, так и с пользовательским пространством, оставшиеся пакеты i386 можно удалить:

dpkg --purge $(dpkg -l | awk '$4=="i386"{print $2}')

список, который вы сохранили в файле pkgs1, который вы можете использовать для любых ваших дальнейших потребностей.

1
ответ дан 25 May 2018 в 16:35
  • 1
    Это своего рода магия, но это помогло мне сделать переход от 32 до 64 бит через SSH на удаленном ПК. – user271872 25 February 2018 в 01:24

Другие вопросы по тегам:

Похожие вопросы: