Tengo una instalación de Ubuntu de 32 bits ejecutándose en hardware de 64 bits. Ahora que se ha implementado el arco múltiple , me gustaría cambiar a 64 bits sin tener que reinstalar el sistema operativo.
Esta es una de las historias de usuarios abordadas por la especificación :
Shawn instaló su sistema usando la versión de Ubuntu de 32 bits, pero su hardware es de 64 bits y quiere cambiar. Instala manualmente las versiones amd64 de dpkg y apt, reemplaza las versiones i386 y cambia la arquitectura que se usa por defecto; luego instala el paquete amd64 ubuntu-minimal; luego instala el paquete amd64 ubuntu-desktop. Con el tiempo, los paquetes i386 restantes se reemplazan automáticamente en la actualización.
Sin embargo, cuando trato de seguir las instrucciones allí, no puedo encontrar ninguna versión de dpkg o apt de 64 bits.
¿Esta historia de usuario se implementó de una manera diferente en la especificación final, o necesito hacer algo diferente?
En resumen, ¿cómo puedo cambiar mi instalación de 32 bits a 64 bits?
Respuestas:
Tal enfoque es muy complicado, y es poco probable que todos los paquetes sean la
amd64
versión en lugar de lai386
versión. Solo los paquetes que realmente reciben actualizaciones probablemente cambiarán en la arquitectura, y probablemente solo si ningún otro paquete que no se actualiza dependerá de sui386
arquitectura. Dado que algunos paquetes no recibirán ninguna actualización durante todo el ciclo de soporte de su versión de Ubuntu, es probable que nunca tenga unamd64
sistema completo que utilice dicha técnica. Además, ciertamente no hay apoyo oficial para tal enfoque.En su lugar, le recomendamos que reemplace su sistema Ubuntu existente con una nueva instalación de 64 bits.
Sin embargo, si desea intentar esta técnica, deberá descargar manualmente los
.deb
archivos paradpkg
yapt
. Puede encontrarlosdpkg
en Ubuntu yapt
en las páginas de Ubuntu en Launchpad: expanda la última versión en "The Oneiric Ocelot" que está marcada como lanzamiento, seguridad y / o actualizaciones (pero probablemente no desee una versión marcada únicamente propuesto y / o backports, si alguna vez hay uno). Luego descargue los.deb
archivos marcadosamd64
. Específicamente, los archivos que querrá son: este paradpkg
(y los otros enumerados también, si tiene esos paquetes instalados) y esto y esto y esto y estoy esto paraapt
.Antes de hacer algo con estos archivos, debe asegurarse de hacer una copia de seguridad de todos los documentos importantes en su sistema Ubuntu instalado y cualquier otro archivo importante (por ejemplo, música, libros electrónicos, videos), porque es bastante probable que intentar esta técnica resulte mal. y deja tu sistema Ubuntu completamente inutilizable.
Puede instalar todos estos paquetes colocándolos en una carpeta que no contenga nada más (suponga que se llama a la carpeta
debs
y está dentro de suDownloads
directorio), y luego ejecute este comando:Por supuesto, una vez que los haya instalado, en realidad no se ejecutarán, porque sus ejecutables son de 64 bits y su sistema Ubuntu de 32 bits está ejecutando un núcleo de 32 bits (que solo ejecutará ejecutables de 32 bits). De hecho, es posible que ni siquiera terminen de instalarse, ya que pueden tener scripts posteriores a la instalación que invocan sus ejecutables de 64 bits no ejecutables.
Hay varias formas de intentar instalar un núcleo de 64 bits en un sistema de 32 bits, pero todas son extremadamente complicadas, por lo que le recomiendo que arranque desde un CD en vivo Oneiric de 64 bits (que a su vez ejecuta un disco de 64 bits kernel), inicie sesión en el sistema Ubuntu instalado y use el recientemente instalado 64-bit
apt
ydpkg
para instalar un kernel de 64-bit.Aquí hay instrucciones específicas para hacerlo ... pero no tome esto como que estoy diciendo que funcionará. No he intentado esto. (Me conecté a los sistemas Ubuntu instalados desde CD en vivo y realicé la gestión de paquetes y otras operaciones, pero no he intentado las operaciones de arquitectura cruzada sugeridas aquí).
En su sistema Ubuntu instalado, abra una ventana de Terminal ( Ctrl+ Alt+ T) y ejecútelo
mount | grep ' on / '
(pegándolo en el Terminal y presionando enter). Deberías ver algo así/dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. La parte que le interesa es el nombre del dispositivo anteson
(en este ejemplo, es/dev/sda2
). Recuerda eso o escríbelo.El paso 1 le dio el nombre del dispositivo de la
/
partición. Si tiene una/boot
partición separada , también necesitará saber el nombre del dispositivo para eso. Entonces, en ese caso, corremount | grep ' on /boot '
. Verás algo así/dev/sda1 on /boot type ext2 (rw)
. Recuerde o escriba esto también.Arranque desde un CD en vivo Oneiric amd64 (es decir, 64 bits) y seleccione "Probar Ubuntu" en lugar de "Instalar Ubuntu".
Vaya a un navegador web y asegúrese de que la conectividad a Internet sea completamente funcional. Si no es así, configúrelo.
Abra una ventana de Terminal y ejecute
sudo mount /dev/sda2 /mnt
(reemplace/dev/sda2
con el nombre del dispositivo que obtuvo en el paso 1, si es diferente).Si su sistema instalado tiene una
/boot
partición separada , ejecutesudo mount /dev/sda1 /mnt/boot
(reemplace/dev/sda1
con el nombre del dispositivo que obtuvo en el paso 2, si es diferente).Ahora, ejecute estos comandos para hacer chroot en su sistema instalado:
Ejecute
ping -c 4 launchpad.net
para ver si la conectividad a Internet funciona completamente desde dentro del chroot. Estás esperando algo como esto:Si, en cambio, no pudo transmitir o recibir paquetes, entonces tendrá que configurar la conectividad a Internet en el chroot. Para hacerlo, ejecute estos comandos (para salir del chroot, copie los archivos de configuración relevantes del sistema de CD en vivo en el chroot y vuelva a ingresar el chroot):
Si bien generalmente debe detener este proceso si hay un error, no se preocupe si el primero y / o el segundo de esos cuatro comandos fallan, siempre que la forma específica en que falla es diciéndole que
/mnt/etc/resolv.conf
(o/mnt/etc/hosts
) no existe .El chroot vuelve a entrar y vuelve a intentarlo:
Ejecute estos comandos para que su entorno chrooteado esté completamente listo para usar:
Si no ha instalado los
.deb
archivos para las versiones de 64 bits dedpkg
yapt
, hágalo ahora. Si los instaló pero hubo errores de configuración, ejecutedpkg --configure -a
para corregirlos. (Con suerte, eso funcionará ... podría ser mejor esperar para intentar instalarlos hasta que esté en el entorno de CD en vivo, en caso de que la instalación de 64 bitsdpkg
mientras se inicia en el sistema instalado dejedpkg
en un estado inutilizable).Con las versiones de 64 bits
dpkg
eapt
instaladas, suponiendo que instalen automáticamente paquetes de 64 bits, ahora puede eliminar todos los núcleos de 32 bits e instalar un núcleo de 64 bits. Para eliminar sus núcleos de 32 bits, ejecutedpkg -l | grep linux-
. Esto enumera los paquetes instalados que comienzan conlinux-
. Que le interesan más específicamente en paquetes que comienzan comolinux-generic
,linux-image
,linux-server
, y / olinux-headers
. Elimine estos archivos conapt-get purge ...
donde...
se reemplaza con una lista separada por espacios de los paquetes que está eliminando.Ahora reinstale los paquetes que eliminó. (En realidad, para los paquetes que contienen números de versión en el nombre del paquete, como por ejemplo
linux-image-3.0.0-13-generic
, solo necesita instalar los últimos nombres de paquete versionados). Haga esto ejecutandoapt-get install ...
donde...
se reemplaza con una lista separada por espacios de los paquetes que está instalando .Actualice la configuración del cargador de arranque, desmonte algunos dispositivos y deje el chroot:
Si corriste
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
y no falló, ahora corresudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.Si corriste
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
y no falló, ahora corresudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.Si su sistema instalado tiene una
/boot
partición separada , desmonte eso:sudo umount /mnt/boot
Desmonta la
/
partición de tu sistema instalado :sudo umount /mnt
Salga de la ventana Terminal (ejecutar
exit
), luego reinicie (o apague) el sistema de CD en vivo y arranque en el sistema instalado.Vea si el sistema es utilizable y ejecuta un núcleo de 64 bits (
uname -m
debería decir que la arquitectura lo esx86_64
).Es posible que haya paquetes adicionales que necesite instalar, como
ia32_libs
y / o la versión de 64 bitslibc6
, para que esto funcione. Para algunos de ellos, es posible que se le informe que los necesita al intentar instalar la versión de 64 bits dedpkg
y / oapt
. Para otros, es posible que no esté informado.(Las instrucciones anteriores para realizar el chrooting y operar en el entorno chroot se basan en gran parte en este procedimiento relacionado pero diferente y también en algunas publicaciones mías de Launchpad Answers , especialmente # 6 aquí y # 6 aquí . Y un agradecimiento especial a Cesium por señalar que los archivos ejecutables
dpkg
y de 64 bitsapt
no se ejecutarán en un sistema que ejecute un núcleo de 32 bits).fuente
apt
ydpkg
todavía son de 32 bits y (presumiblemente) se negarán a instalar un paquete de kernel de 64 bits. (Construir el núcleo desde la fuente y usar la compilación cruzada funcionaría, pero esto es muy complicado y no quiero recomendarlo. Estoy seguro de que hay una manera mejor y más fácil. Si lo sabe, siéntase libre para editar mi o tu publicación o comentar al respecto.)Como se indicó anteriormente, hice:
Funcionó. Puedo ejecutar mi tierra de usuario de 32 bits con kernel de 64 bits, en Ubuntu 12.04.
fuente
sudo dpkg --add-architecture amd64
en su lugar. Te gritará si lo haces de otra manera. Necesitaba hacer esto para poder pasar a una instalación de 64 bits desde una (anteriormente) de 32 bits y funcionó exactamente como se esperaba sin problemas.linux-image-generic:amd64
Ubuntu 16.04. Funcionó bien para, incluso sin los dos últimos comandos.Aunque la pregunta es similar a ¿Es posible "actualizar" de una instalación de 32 bits a una de 64 bits? (Si no lo has leído antes, te animo a que lo pruebes. La respuesta siempre que sea buena). También te recomiendo leer los siguientes enlaces:
Para un mejor rendimiento, ¿debo instalar 32 bits o 64 bits?
¿Cómo puedo cambiar una instalación de 32 bits a una de 64 bits?
¿Cuáles son las diferencias entre 32 bits y 64 bits, y cuál debo elegir?
¿Es posible? Sí
¿Es fácil: NO!
Si su problema es con la memoria, entonces debe saber que Ubuntu 32 Bit puede leer más de 4 GB de RAM (hasta 64 GB). Entonces, usar la última versión de Ubuntu 32 Bit con una computadora que tenga una arquitectura de 32 Bit o 64 Bit y poner más RAM no será un problema. Simplemente leerá la RAM adicional y funcionará.
fuente
Estas respuestas están algo desactualizadas. La clasificación cruzada ahora está documentada para Debian en la wiki de Debian , pero aún no se recomienda.
Instalar un kernel desde una arquitectura diferente ahora es tan fácil como se describe allí, pero el nuevo 'apt' no reconocerá los paquetes de una arquitectura anterior, por lo que todos sus front-end pueden informar muchos paquetes rotos. Esto requiere cambiar todas las dependencias a la otra arquitectura, o revertir apt y dpkg a 32 bits.
Entonces, el mejor enfoque puede ser primero guardar los resultados de
dpkg --get-selections
, strip: i386 de eso, y descargar un paquete amd64 para cada una de las dependencias en la caché:En el mejor de los casos, es probable que sea lento y lento resolver las dependencias.
fuente
Estas instrucciones hacen que su sistema arranque con un núcleo de 64 bits pero no cambia la mayoría de los programas de usuario.
Después de actualizar mi sistema con CPU de 64 bits, también quería instalar un kernel de 64 bits en mi Ubuntu 14.04.2 de 32 bits (nombre en clave: Trusty). Para hacer esto, ingresé los siguientes comandos como usuario root :
Notas:
Esto podría eliminar su núcleo de 32 bits como confiable, de forma predeterminada, se entrega con un núcleo actualizado (el núcleo de utopic), consulte las Notas de la versión 14.04 . En este caso, su núcleo actual entra en conflicto con el núcleo de 64 bits que se va a instalar y, por lo tanto, se elimina. Si no le gusta esta idea, es posible que desee probar el antiguo paquete de kernel de 64 bits "linux-generic-lts-trusty: amd64".
El comando "--add-architecure" es esencial. Sin él, el sistema de paquetes no admite paquetes de diferentes arquitecturas, consulte Multiarch-HowTo
Para ver qué
apt-get
le hará a su sistema, ejecútelo con las opciones-Vs
que habilitan el "modo de simulación detallado". Esto imprimirá todos los paquetes que se instalarán y eliminarán.Si su sistema arranca usando el nuevo núcleo depende de la
grub
configuración. Como usuario root , ejecuteupdate-grub
para actualizar grub e imprima la configuración de arranque actual. La primera imagen de la lista se iniciará por defecto.Para seleccionar una imagen del núcleo diferente, me quita la línea
GRUB_HIDDEN_TIMEOUT=0
de/etc/default/grub
y corrió como usuario rootupdate-grub
. En el momento del arranque, ahora puede seleccionar un núcleo diferente (tiene 10 segundos para presionar cualquier tecla; de lo contrario, grub continuará con el núcleo predeterminado).La respuesta con la mayor cantidad de votos es de 2011 y, en mi opinión, está desactualizada irremediablemente. Multiarch le permite instalar paquetes de biblioteca de múltiples arquitecturas en la misma máquina sin mucha dificultad.
fuente
apt-get install linux-generic:amd64
lo que no debe ser muy importante para el experimento). Si utilizo la opción de arranque de "rescate", el sistema se ejecuta, pero X no usa elnouveau
controlador de video y demás. Si inicio normalmente, el inicio se rompe en algún momento y el sistema se reinicia. (Pero la primera vez, pude arrancar con éxito). No estoy seguro de si el problema es con el controlador de video durante el arranque "normal" o algo más.Quizás, como me enfrento al mismo problema, esto funcionará, es lo que estaba planeando hacer:
Obtenga una versión de 64 bits del sistema operativo, instálela en una partición, cuando complete la copia de los documentos y otras cosas de la instalación de 32 bits, cuando todo esté copiado de manera segura, puede formatear el resto de la unidad y usarla.
fuente
Sí, la línea de arquitectura extranjera es definitivamente vital para instalar CUALQUIER paquete de arcos cruzados. Pero después de eso, haga lo que otros usuarios mencionaron:
Eso debería hacerlo ...
fuente
Mi receta para Ubuntu 16.04 Xenial, probado en Ubuntu VM de 32 bits recién instalado con sistema estándar y servidor SSH pero sin GUI:
(de lo contrario, instalaría thermald: amd64 y no podría reiniciarlo en un kernel de 32 bits)
después de reiniciar con kernel de 64 bits:
escribe "Sí, haz lo que te digo" cuando se le pregunte, va a ser seguro
En el bucle anterior, eliminamos los archivos .deb que se han instalado correctamente y obtuvieron el estado 'ii' en la lista dpkg.
necesitamos repetir
dpkg -i
carreras, ya que no tiene éxito desde el primer intentoahora, con el kernel de 64 bits y el espacio de usuario, los paquetes i386 restantes se pueden eliminar:
la lista que ha guardado en un
pkgs1
archivo que puede usar para cualquier otra necesidad.fuente
Buena pregunta. He tenido una búsqueda y aparte de la historia de usuario que cita, no puedo encontrar ningún detalle sobre cómo hacer esto. Toda la documentación indica que es solo para ejecutar aplicaciones de 32 bits en un sistema operativo ya de 64 bits.
Sin embargo, si está dispuesto a experimentar, puede intentar lo siguiente (derivado de mi enlace en [1])
Creo que tendrá que comenzar con un núcleo amd64, ya que el de 32 bits no podrá ejecutar ningún binario de 64 bits. Sin embargo, el de 64 bits debe ejecutar binarios de 32 bits (si está instalado ia32-libs?).
Si obtiene el núcleo de 64 bits instalado y arrancado, puede ir desde allí para instalar apt: amd64, luego siga la historia del usuario como se citó anteriormente, ubuntu-minimal, ubuntu-desktop, etc.
Después de instalar apt: amd64, creo que puede eliminar la línea de arquitectura foránea ya que esencialmente ha cambiado en ese punto.
Descargo de responsabilidad: no tengo un sistema de 32 bits para probar, así que todo esto es conjetura. ¡Buena suerte!
[1] https://wiki.ubuntu.com/OneiricOcelot/TechnicalOverview/Beta1#Improved_handling_of_32-bit_compatibility_on_amd64_systems
fuente
La clasificación cruzada (actualización a una arquitectura diferente) aún no es compatible.
fuente