У меня есть 32-битная система, которая работает на 64-битном процессоре. Как мне преобразовать его в полностью 64-битную версию без переустановки? Я видел где-то, что это выполнимо в результате новой платформы Multiarch .
36
У меня есть 32-битная система, которая работает на 64-битном процессоре. Как мне преобразовать его в полностью 64-битную версию без переустановки? Я видел где-то, что это выполнимо в результате новой платформы Multiarch .
Ответы:
TL; DR: это выполнимо, но сложно. Я обрисовал альтернативу внизу.
Теперь длинное описание , и возьмите его с крошкой соли, поскольку я, возможно, не выбрал лучший маршрут:
Это возможно, и вот что я делал последние две ночи: есть запись в вики, описывающая способ старой школы без поддержки мультиархии. Это полезно для исправления сломанных пакетов.
Чтобы перенести вашу базовую систему, сделайте это :
Некоторые из ваших пакетов тогда amd64, но большинство останется i386.
apt-get upgrade
позаботится о некоторых пакетах,apt-get -f install
исправит некоторые ошибки, но большинство пакетов останется i386. Если вы хотите с этим справиться, то пропустите хитрую часть;)Использование
dpkg --get-selections | grep :i386
вернет все ваши пакеты, которые вам все равно придется перенести.Моей следующей идеей было сделать:
Но это оказалось плохой идеей: некоторые пакеты недоступны в amd64 (например, libc6-i686), apt-get будет сбит с толку, и в обеих версиях будет установлено много пакетов. Много ручной работы в способности должно быть сделано.
Больше трудностей: некоторые важные пакеты можно заменить, так что у вас всегда будут установлены двоичные файлы для установки, но некоторые пакеты придется удалить и установить снова, например, у меня была эта проблема с tar. Я собрал пакеты в другой системе, извлек пакеты через
ar p package.deb data.tar.gz | tar zx
и затем отредактировалscp
извлеченные файлы черезscp -r ./* root@other_computer:/
, так что двоичные файлы снова доступны. Промойте и повторите, иscp
редактируемые файлы будут перезаписаны.Что бы я сделал вместо
Когда я переключал системы, я делал следующее:
Резервное копирование
/home
,/etc
(и , возможно/var
,/usr/local
некоторые другие файлы , которые вы изменили,/root
..., YMMV).Получите список установленных пакетов
dpkg --get-selections > packagelist
и скопируйте полученный файлpackagelist
.Затем выполните чистую переустановку Debian, снова создайте всех пользователей, возможно, роли и т. Д.
Переустановите все пакеты с помощью
dpkg --set-selections < packagelist; apt-get -f install
.Скопируйте резервные копии каталогов, файлов, и вы в основном сделали.
Недостаток этого подхода: все ваши пакеты, включая библиотеки, будут помечены как установленные вручную, поэтому они не будут удалены, если от них больше не зависит ни один пакет.
источник
apt-mark showauto
для экспорта автоматически установленного списка иapt-mark auto
пометить их в новой установке.x86_64
, и мне все равно, не будут ли мои системные пакеты оптимально использовать 64-битный процессор? ? Я также использую 32-битную ОС. Я думаю, я думал, что мой процессор был 32-разрядным, когда я впервые сделал установку :(Другие ответы здесь показывают, что, хотя это теоретически возможно, это очень сложно и, вероятно, не стоит усилий. Вы можете, однако, сделать чистую установку и сделать процесс относительно безболезненным, если вы продолжите
$HOME
.Общий процесс будет
Сделайте резервную копию вашего списка установленных пакетов и списка автоматически установленных пакетов.
Обратите внимание, что вы также можете удалить архитектуру из любых имен пакетов, установленных с помощью multiarch :
Если у вас
/home
отдельный раздел, просто не форматируйте его во время процесса установки. Если он не находится в отдельном разделе, создайте резервную копию, которую можно восстановить позже:После того, как вы установили новую систему, установите недостающие пакеты
Восстановите свой $ HOME. Скопируйте файл tgz и распакуйте его в каталог $ HOME:
Вы также можете взглянуть на инструменты, которые предоставляет Mint, чтобы сделать это проще. Все они должны быть установлены на Ubuntu.
источник
Теоретически это возможно, но, вероятно, предательски. В настоящее время многоархивация Debian поддерживает многоархивовые библиотеки, но не двоичные файлы. Вот и все.
Система в первую очередь понимает свою собственную архитектуру
dpkg-architecture
(которая на самом деле является сценарием Perl, но она извлекает информацию об архитектуре и отображает ее), которая также утверждает, что может устанавливать архитектуру.ВНИМАНИЕ: Я НЕ СДЕЛАЛ ЭТОГО, НИКОГДА НЕ ПЫТАЛСЯ ЭТОГО !!!
Грубый процесс будет:
libgcc1
)dpkg-architecture -aamd64
для сдвига вашей арки (обратите внимание, он может жаловаться на GCC)dpkg
и зависимостейapt-get
и ядра (обратите внимание, что может появиться много)apt-get
Эти шаги основаны на том, что я знаю о дизайне Debian, который использовал его почти исключительно в дистрибутивах Linux за последние 12 лет (в том числе и
debtakeover
раньше), и о подходе, который я выбрал бы. Так что обдумайте это на свой страх и риск . Ваша система может стать непригодной для использования в любое время после выполнения шага 4. Может быть альтернативой шагам 4 и 5debbootstrap
.Самое главное, я настоятельно рекомендую попробовать это на ВМ, прежде чем делать это на чем-либо, что вас волнует.
Удачи, и да пребудет с тобой Сила .
источник
Не ответ на вопрос, но может быть сложно обновить все пакеты с x86 до amd64, но вы можете, по крайней мере, легко установить пакет ядра amd64, который по крайней мере позволит вам запускать 64-битные приложения, а также виртуальные машины и контейнеры ( чего может хватить на то что нужно).
Просто установите пакет amd64 linux-image с помощью
dpkg -i --force-architecture
.источник
--force-architecture
не требуется, и ядро amd64 можно установить через apt на i386.Существует немало руководств, но вряд ли можно увидеть, чего на самом деле ожидать. Я пишу это на ноутбуке Debian Wheezy, который я только что закончил обновлять с 32-разрядной до 64-й версии, и он действительно работает.
Я следовал этим инструкциям, и они были очень точны в том, с чем вы столкнетесь:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
Рекомендуется поддерживать работу системы в течение всего процесса, не перезагружаться, если вы не уверены, что перенесли все и что все удаленное было установлено снова (особенно необходимые пакеты), иначе вы не запустите систему снова.
источник
Следуя идее использования awk , я использовал:
Я должен был запустить его несколько раз.
dpkg --get-selections
это просто алфавитный список, поэтому пакеты вверху, для которых требуются пакеты внизу, будут пропущены. Если вы хотите посмотреть, сколько из них устанавливается, сделайте этоdpkg --get-selections | grep amd64 | wc -l
внутриwhile
цикла.источник
У меня мало опыта в этом вопросе, но я верю, что вы правы, когда говорите, что конвертация с 32 на 64 должна быть возможна с использованием нескольких арок. Я буду осторожен с тем, насколько хорошо поддерживается эта новая система.
Вот один из документов, которые я прочитал, в которых обсуждался этот вопрос, возможно, это вам поможет: https://wiki.ubuntu.com/MultiarchSpec
Обратите внимание на третьи истории пользователей. Вот еще одна ссылка на ту же тему: https://help.ubuntu.com/community/MultiArch
Даже если между Debian и Ubunutu это может немного отличаться, это ключевая особенность. Я полагаю, что Ubuntu и Debian будут тесно сотрудничать, чтобы заставить эту структуру функционировать на месте, прежде чем Ubuntu отойдет и сделает что-то по своему вкусу.
Удачи!
источник