Tengo un sistema de 32 bits que se ejecuta en un procesador de 64 bits. ¿Cómo lo convierto a todo-64-bit, sin reinstalar? He visto en alguna parte que es factible como resultado del nuevo marco Multiarch .
36
Tengo un sistema de 32 bits que se ejecuta en un procesador de 64 bits. ¿Cómo lo convierto a todo-64-bit, sin reinstalar? He visto en alguna parte que es factible como resultado del nuevo marco Multiarch .
Respuestas:
TL; DR: es factible, pero complicado. He esbozado una alternativa en la parte inferior.
Ahora la larga descripción , y tómalo con un grano de sal, ya que puede que no haya tomado la mejor ruta:
Es posible, y esto es lo que hice durante las últimas dos noches: hay una entrada wiki que describe la forma de la vieja escuela sin soporte multiarch. Es útil para arreglar paquetes rotos.
Para migrar su sistema base, haga esto :
Algunos de sus paquetes son entonces amd64, pero la mayoría seguirá siendo i386.
apt-get upgradese encargará de algunos paquetes,apt-get -f installreparará algunos de los errores, pero la mayoría de los paquetes seguirán siendo i386. Si desea hacer frente a esto, omita la parte difícil;)El uso
dpkg --get-selections | grep :i386devolverá todos sus paquetes, que aún tendrá que migrar.Mi siguiente idea fue hacer:
Pero resultó ser una mala idea: algunos paquetes no están disponibles en amd64 (por ejemplo, libc6-i686), apt-get se confundirá y se instalarán muchos paquetes en ambas versiones. Se debe hacer mucho trabajo manual en aptitud.
Más dificultades: algunos paquetes esenciales se pueden reemplazar, por lo que siempre tendrá los binarios instalados para la instalación, pero algunos paquetes tendrán que eliminarse e instalarse nuevamente, por ejemplo, tuve este problema con tar. Wgot los paquetes en otro sistema, extraje los paquetes a través
ar p package.deb data.tar.gz | tar zxy luego edité losscparchivos extraídosscp -r ./* root@other_computer:/para que los archivos binarios estén disponibles nuevamente. Enjuague y repita, y losscparchivos ed se sobrescribirán.Lo que haría en su lugar
He hecho lo siguiente, cada vez que cambié de sistema:
Una copia de seguridad
/home,/etc(y tal vez/var,/usr/localalgunos otros archivos que ha cambiado,/root, ..., tu caso es distinto).Obtenga una lista de los paquetes instalados
dpkg --get-selections > packagelisty copie también el archivo resultantepackagelist.Luego realice una reinstalación limpia de Debian, cree todos los usuarios nuevamente, tal vez roles, etc.
Vuelva a instalar todos los paquetes con
dpkg --set-selections < packagelist; apt-get -f install.Copie de nuevo los directorios y archivos respaldados, y ya casi ha terminado.
Una desventaja de ese enfoque: todos sus paquetes, incluidas las bibliotecas, se marcarán como instalados manualmente, por lo que no se desinstalarán, cuando ningún paquete dependa de ellos.
fuente
apt-mark showautopara exportar la lista de instalación automática yapt-mark automarcarlos en la nueva instalación.x86_64y no me importa si los paquetes de mi sistema no usan el procesador de 64 bits de manera óptima? ? También estoy ejecutando un sistema operativo de 32 bits. Supongo que pensé que mi procesador era de 32 bits cuando hice la instalación por primera vez :(Las otras respuestas aquí muestran que si bien esto es teóricamente posible, es muy complejo y probablemente no valga la pena el esfuerzo. Sin embargo, puede hacer una instalación limpia y hacer que el proceso sea relativamente sencillo si mantiene
$HOMEel mismo.El proceso general será
Haga una copia de seguridad de su lista de paquetes instalados y la lista de paquetes instalados automáticamente.
Tenga en cuenta que es posible que también desee eliminar la arquitectura de cualquier nombre de paquete que haya instalado utilizando multiarch :
Si su
/homees una partición separada, solo asegúrese de no formatearla durante el proceso de instalación. Si no está en una partición separada, haga una copia de seguridad que pueda restaurar más tarde:Una vez que haya instalado su nuevo sistema, instale los paquetes faltantes
Restaura tu $ HOME. Copie el archivo tgz y extráigalo en su directorio $ HOME:
También es posible que desee echar un vistazo a las herramientas que ofrece Mint para facilitar esto. Todos deberían ser instalables en Ubuntu también.
fuente
En teoría es posible, pero probablemente traicionero. Debian multiarch en la actualidad admite bibliotecas multiarch, pero no binarios. Entonces ahí está eso.
El sistema comprende principalmente su propia arquitectura
dpkg-architecture(que en realidad es un script perl, pero extrae la información del arco y la muestra), que también afirma ser capaz de configurar la arquitectura.ADVERTENCIA: ¡NO LO HE HECHO NI INTENTADO!
El proceso aproximado sería:
libgcc1)dpkg-architecture -aamd64para cambiar su arco (Nota, puede quejarse de GCC)dpkgy dependencias deapt-gety el núcleo (Nota, puede quejarse MUCHO)apt-getEstos pasos se basan en lo que sé del diseño de Debian que lo ha utilizado casi exclusivamente entre las distribuciones de Linux en los últimos 12 años (incluido el uso
debtakeoveranterior) y el enfoque que adoptaría. Así que considere esto bajo su propio riesgo . Su sistema puede quedar inutilizable en cualquier momento después de intentar el paso 4. Alterno para los pasos 4 y 5 podría serdebbootstrap.Lo que es más importante, le recomiendo probar esto en una máquina virtual antes de hacerlo en cualquier cosa que le interese.
Buena suerte y que la fuerza te acompañe .
fuente
No es una respuesta a la pregunta, pero puede ser difícil actualizar todos los paquetes de x86 a amd64, pero al menos puede instalar fácilmente el paquete del núcleo amd64, que al menos le permitirá ejecutar aplicaciones de 64 bits y máquinas y contenedores virtuales ( que puede ser suficiente para lo que necesitas).
Simplemente instale el paquete amd64 linux-image con
dpkg -i --force-architecture.fuente
--force-architectureno es necesario, y el núcleo amd64 se puede instalar a través de apt en i386.Existen bastantes manuales, pero casi ninguno muestra qué esperar realmente. Estoy escribiendo esto en una computadora portátil Debian Wheezy que acabo de terminar de actualizar de 32 bits a 64 y de hecho funciona.
Seguí estas instrucciones y fueron muy precisas sobre lo que realmente enfrentarás:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
Una recomendación es mantener el sistema encendido durante todo el proceso, no reiniciar a menos que esté seguro de que ha migrado todo y que todo lo que se eliminó se volvió a instalar (especialmente los paquetes esenciales), o no volverá a ejecutar el sistema.
fuente
Siguiendo la idea usando awk , terminé usando:
Tuve que ejecutarlo algunas veces.
dpkg --get-selectionses simplemente una lista alfabética, por lo que los paquetes en la parte superior que requieren paquetes en la parte inferior se pasarán por alto. Si desea ver cuántos se están instalando, hágalodpkg --get-selections | grep amd64 | wc -ldentro delwhilebucle.fuente
Tengo poca experiencia con el asunto, pero creo que está en lo correcto cuando dice que la conversión de 32 a 64 debería ser capaz con el arco múltiple. Sin embargo, sería cauteloso acerca de qué tan bien está soportado este nuevo sistema.
Aquí está uno de los documentos que leí que discutió el asunto, tal vez esto lo ayude: https://wiki.ubuntu.com/MultiarchSpec
Observe las historias de terceros usuarios. Aquí hay otro enlace sobre el mismo tema: https://help.ubuntu.com/community/MultiArch
Aunque podría ser un poco diferente entre Debian y Ubunutu, esta es una característica central. Lo que me imagino que Ubuntu y Debian trabajarían estrechamente para lograr que esta estructura funcione en el terreno antes de que Ubuntu se aleje y haga algo de su agrado.
¡Buena suerte!
fuente