Если я изменил свой Ubuntu на 32bit, могу ли я изменить его на 64 бит? [dубликат]

У меня установлена ​​32-разрядная установка Ubuntu на 64-разрядном оборудовании. Теперь, когда была реализована многоэкранная версия, я хотел бы переключиться на 64-разрядную без необходимости переустановки ОС.

Это одна из multi-arch реализована :

Шон установил свою систему, используя 32-битную версию Ubuntu, но его аппаратное обеспечение - 64-битное, и он хочет переключиться. Он вручную устанавливает версии dpkg и apt amd64, заменяя версии i386 и изменяя, какая архитектура используется по умолчанию; затем он устанавливает пакет amd64 ubuntu-минимальный; затем он устанавливает пакет amd64 ubuntu-desktop. Со временем оставшиеся пакеты i386 автоматически заменяются при обновлении.

Однако, пытаясь следовать инструкциям там, я не могу найти 64-разрядную версию dpkg или apt.

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

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

16 ответов

Хороший вопрос. У меня была охота вокруг и за исключением истории пользователя, которую вы цитируете, я не могу найти никаких подробностей о том, как это сделать. Вся документация указывает, что он предназначен только для запуска 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
ответ дан 18 July 2018 в 10:11

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

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

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

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

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

Легко: НЕТ!

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

6
ответ дан 18 July 2018 в 10:11

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

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

2
ответ дан 18 July 2018 в 10:11

Эти инструкции заставляют вашу систему загружаться с 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
ответ дан 18 July 2018 в 10:11

Эти ответы несколько устарели. Перекрестная сортировка теперь документирована для 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
ответ дан 18 July 2018 в 10:11

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

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
ответ дан 18 July 2018 в 10:11

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

2
ответ дан 18 July 2018 в 10:11

Мой рецепт для 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
ответ дан 18 July 2018 в 10:11

Хороший вопрос. У меня была охота вокруг и за исключением истории пользователя, которую вы цитируете, я не могу найти никаких подробностей о том, как это сделать. Вся документация указывает, что он предназначен только для запуска 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
ответ дан 24 July 2018 в 19:31

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

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

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

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

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

Легко: НЕТ!

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

6
ответ дан 24 July 2018 в 19:31
  • 1
    Будут ли эти двоичные файлы работать под 32-битным ядром, Элиа? – Caesium 23 November 2011 в 01:55
  • 2
    @Caesium Хороший звонок. Конечно нет. Я бы отредактировал свое сообщение, чтобы указать, как запустить 64-битное ядро ​​... за исключением того, что я понятия не имею, как установить 64-битный пакет ядра в 32-разрядной системе Ubuntu (работает на 64-битном оборудовании, конечно), когда apt и dpkg все еще 32-битные и будут (предположительно) отказываться от установки 64-битного пакета ядра. (Построение ядра из исходного кода и использование кросс-компиляции работало бы, но это очень сложно, и я не хочу рекомендовать его. Я уверен, что есть лучший, более простой способ. Если вы это знаете, пожалуйста, не стесняйтесь для редактирования моего или вашего сообщения или комментариев об этом.) – Eliah Kagan 23 November 2011 в 01:59
  • 3
    @Caesium На самом деле, я думаю, что я знаю, как установить 64-битное ядро. Я отредактирую свой пост в ближайшее время, чтобы отразить это. Как только я это сделаю, если вы чувствуете, что моя предлагаемая техника будет работать, пожалуйста, не стесняйтесь копировать и / или перефразировать ее в свой ответ ... или, альтернативно, пока как информация в вашем ответе, которая отсутствует в моей и информации в моем ответе, который не у вас сохранился, вы могли бы объединить наши ответы в один ответ. (Это может быть ваш ответ - все в порядке со мной. Вы отправили сообщение еще до того, как я это сделал. Тогда я удалю свой ответ.) – Eliah Kagan 23 November 2011 в 02:02
  • 4
    @ Редактирование каузии; Я с нетерпением жду ваших комментариев. – Eliah Kagan 23 November 2011 в 02:58
  • 5
    Ничего себе, хорошая работа :) В этот момент вы приложили гораздо больше усилий, чем я, поэтому я не мечтал бы переписать свой ответ, а ваш должен остаться за кредит. Это отходит от первоначальной цели использования технологии многократного использования, но мне будет интересно узнать, работает ли она тем не менее :) Угадай, что нам придется ждать оригинального плаката :) – Caesium 23 November 2011 в 03:03

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

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

2
ответ дан 24 July 2018 в 19:31
  • 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

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

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

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

Примечания:

это может удалить свой 32-битное ядро, как верный - по умолчанию поставляется с обновленным ядром (ядром из утопические), ознакомиться с 14.04-релизе. В этом случае ваши текущие конфликты ядра с 64-битным ядром к установке и, следовательно, удаляется. Если вам не нравится эта идея, вы могли бы хотеть попробовать более старые 64-разрядных ядра "линукс-универсальный-лц-верный:для amd64" вместо. В "- добавить-конспектом команда" имеет важное значение. Без него система пакет не поддерживает пакеты для разных архитектур, см. Мультиархитектурный-Howto, чтобы увидеть, что apt-get будет делать для вашей системы, запустить его с помощью опции -Vs, которая позволяет "многословный режим моделирования". Это выведет все пакеты были установлены и удалены. Есть ли у вас система загружается с новым ядром зависит от grub конфигурации. Как пользователь root, запустить [F5], чтобы сделать обновление жратвы и печать текущей конфигурации загрузки. Первое изображение в списке будет грузиться по умолчанию. Чтобы выбрать другой образ ядра, я удалил строку GRUB_HIDDEN_TIMEOUT=0 от /etc/default/grub и побежал как пользователь root update-grub. Во время загрузки, теперь вы можете выбрать другое ядро (у вас есть 10 секунд нажмите любую клавишу, иначе жратвы будет продолжать с ядром по умолчанию). Ответ с самого верха голосов от 2011 и безнадежно устарел на мой взгляд. Мультиархитектура позволяет устанавливать пакеты библиотеки из нескольких архитектур на одной машине без особых церемоний.
4
ответ дан 24 July 2018 в 19:31
  • 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
ответ дан 24 July 2018 в 19:31

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

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
ответ дан 24 July 2018 в 19:31
  • 1
    вы попробовали? это действительно не работает, я получаю проблемы, когда он начинает заменять dpkg и perl своими аналогами amd64 – Janus Troelsen 6 June 2014 в 21:17

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

2
ответ дан 24 July 2018 в 19:31

Мой рецепт для 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
ответ дан 24 July 2018 в 19:31
  • 1
    Это своего рода магия, но это помогло мне сделать переход от 32 до 64 бит через SSH на удаленном ПК. – user271872 25 February 2018 в 01:24

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

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