Eu tenho um sistema de 32 bits que roda em um processador de 64 bits. Como faço para convertê-lo em 64 bits, sem reinstalar? Eu já vi em algum lugar que é possível como resultado do novo framework Multiarch .
36
Eu tenho um sistema de 32 bits que roda em um processador de 64 bits. Como faço para convertê-lo em 64 bits, sem reinstalar? Eu já vi em algum lugar que é possível como resultado do novo framework Multiarch .
Respostas:
TL; DR: É factível, mas complicado. Eu descrevi uma alternativa na parte inferior.
Agora, a descrição longa e leve-a com um grão de sal, pois talvez eu não tenha tomado o melhor caminho:
É possível, e aqui está o que eu fiz nas últimas duas noites: Há uma entrada no wiki que descreve o estilo da velha escola sem o suporte a multiarcas. É útil para corrigir pacotes quebrados.
Para migrar seu sistema básico, faça o seguinte :
Alguns de seus pacotes são então amd64, mas a maioria permanece i386.
apt-get upgrade
cuidará de alguns pacotes,apt-get -f install
reparará alguns erros, mas ainda assim a maioria dos pacotes permanecerá i386. Se você quiser lidar com isso, pule a parte complicada;)Usar
dpkg --get-selections | grep :i386
retornará todos os seus pacotes, que você ainda precisará migrar.Minha próxima idéia era fazer:
Mas acabou sendo uma péssima idéia: alguns pacotes não estão disponíveis no amd64 (por exemplo, libc6-i686), o apt-get ficará confuso e muitos pacotes serão instalados nas duas versões. Muito trabalho manual no aptitude deve ser feito.
Mais dificuldades: alguns pacotes essenciais podem ser substituídos, para que você sempre tenha os binários instalados para instalação, mas alguns pacotes terão que ser removidos e instalados novamente, por exemplo, eu tive esse problema com o tar. Esqueci os pacotes em outro sistema, extraí os pacotes
ar p package.deb data.tar.gz | tar zx
e editei osscp
arquivos extraídosscp -r ./* root@other_computer:/
, para que os binários estejam disponíveis novamente. Enxágue e repita e osscp
arquivos editados serão substituídos.O que eu faria
Fiz o seguinte, sempre que troquei de sistema:
Fazer backup
/home
,/etc
(e talvez/var
,/usr/local
, alguns outros arquivos que foram alterados,/root
, ..., YMMV).Obtenha uma lista de pacotes instalados
dpkg --get-selections > packagelist
e copie também o arquivo resultantepackagelist
.Em seguida, faça uma reinstalação limpa do Debian, crie todos os usuários novamente, talvez funções, etc.
Reinstale todos os pacotes com
dpkg --set-selections < packagelist; apt-get -f install
.Copie de volta os diretórios, arquivos e backups, e você estará pronto.
Uma desvantagem dessa abordagem: todos os seus pacotes, incluindo bibliotecas, serão marcados como instalados manualmente, para que não sejam desinstalados, quando nenhum pacote mais depender deles.
fonte
apt-mark showauto
para exportar a lista de instalação automática eapt-mark auto
marcá-los na nova instalação.x86_64
e não me importo se meus pacotes de sistema não estão usando o processador de 64 bits de maneira ideal ? Também estou executando um sistema operacional de 32 bits. Eu acho que eu pensei que o meu processador foi de 32-bit quando eu fiz primeiro a instalar :(As outras respostas aqui mostram que, embora isso seja teoricamente possível, é muito complexo e provavelmente não vale o esforço. No entanto, você pode fazer uma instalação limpa e tornar o processo relativamente indolor, se você continuar
$HOME
igual.O processo geral será
Faça um backup da sua lista de pacotes instalados e da lista de pacotes instalados automaticamente.
Observe que você também pode remover a arquitetura de qualquer nome de pacote que você instalou usando o multiarch :
Se você
/home
é uma partição separada, apenas certifique-se de não formatá-la durante o processo de instalação. Se não estiver em uma partição separada, faça um backup do qual você possa restaurar posteriormente:Depois de instalar seu novo sistema, instale os pacotes ausentes
Restaure o seu $ HOME. Copie o arquivo tgz e extraia-o no diretório $ HOME:
Você também pode querer dar uma olhada nas ferramentas que o Mint fornece para facilitar isso. Todos devem ser instaláveis no Ubuntu também.
fonte
É teoricamente possível, mas provavelmente traiçoeiro. O Debian multiarch no momento suporta bibliotecas multiarch, mas não binários. Então tem isso.
O sistema entende principalmente sua própria arquitetura
dpkg-architecture
(que na verdade é um script perl, mas extrai as informações do arco e as exibe), que também afirma poder definir a arquitetura.AVISO: EU NÃO O FIZ NEM NEM MESMO TENTOU !!!
O processo aproximado seria:
libgcc1
)dpkg-architecture -aamd64
para mudar seu arco (observe que pode reclamar sobre o GCC)dpkg
e das dependênciasapt-get
o kernel (observe que pode reclamar MUITO)apt-get
Essas etapas são baseadas no que eu sei sobre o design do Debian ter usado quase exclusivamente entre as distribuições Linux nos últimos 12 anos (incluindo as que foram usadas
debtakeover
anteriormente) e a abordagem que eu adotaria. Portanto, considere isso por sua conta e risco . Seu sistema pode ficar inutilizável a qualquer momento após a tentativa da etapa 4. Pode ser a alternativa para as etapas 4 e 5debbootstrap
.Mais importante, sugiro tentar isso em uma VM antes de fazer qualquer coisa com a qual você se preocupe.
Boa sorte, e que a força esteja com você .
fonte
Não é uma resposta para a pergunta, mas pode ser difícil atualizar todos os pacotes do x86 para o amd64, mas é possível instalar pelo menos facilmente o pacote do kernel amd64, o que permitirá pelo menos executar aplicativos de 64 bits e máquinas e contêineres virtuais ( o que pode ser suficiente para o que você precisa).
Basta instalar o pacote amd64 linux-image com
dpkg -i --force-architecture
.fonte
--force-architecture
não é necessário, e o kernel amd64 pode ser instalado via apt no i386.Existem alguns manuais por aí, mas quase nenhum mostra o que realmente esperar. Estou escrevendo isso em um laptop Debian Wheezy que acabei de atualizar de 32 bits para 64 e realmente funciona.
Segui estas instruções e elas foram realmente precisas sobre o que você realmente enfrentará:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
Uma recomendação é manter o sistema energizado durante todo o processo, não reinicialize, a menos que você tenha certeza de que migrou tudo e que tudo o que foi removido foi instalado novamente (especialmente os pacotes essenciais), ou não será possível executar o sistema novamente.
fonte
Seguindo a ideia usando o awk , acabei usando:
Eu tive que executá-lo algumas vezes.
dpkg --get-selections
é simplesmente uma lista alfabética; portanto, os pacotes na parte superior que exigem pacotes na parte inferior serão ignorados. Se você quiser assistir quantas estão sendo instaladas, façadpkg --get-selections | grep amd64 | wc -l
dentro dowhile
loop.fonte
Tenho pouca experiência com o assunto, mas acredito que você está correto quando diz que a conversão de 32 para 64 deve ser capaz com o multi-arco. Eu seria cauteloso quanto ao quão bem esse novo sistema é suportado.
Aqui está um dos documentos que li que discutiram o assunto, talvez isso ajude você: https://wiki.ubuntu.com/MultiarchSpec
Observe a terceira história de usuário. Aqui está outro link sobre o mesmo tópico: https://help.ubuntu.com/community/MultiArch
Embora possa ser um pouco diferente entre o Debian e o Ubunutu, esse é um recurso essencial. Imagino que o Ubuntu e o Debian trabalhem em estreita colaboração para que essa estrutura funcione antes que o Ubuntu se afaste e faça algo do seu gosto.
Boa sorte!
fonte